Overview
API V3
Our most recent API is V3, which is has its own API Explorer. If you’re new to the Travis CI API, you should be using API V3.
The API V2 described on this page will be deprecated sometime in 2018.
API V2.1
API V2.1 is identical to API V2 except for the following changes:
- For public repositories, unauthenticated requests receive an HTTP 200 or an HTTP 404 error in some cases like for repository caches or settings.
- For private repositories, unauthenticated requests receive an HTTP 401 or 404 error.
- For private repositories, authenticated requests by users that do not have permission to view the repository receive an HTTP 400 error or HTTP 200 for empty responses.
Previous behavior for V2 is that these requests receive an 401 error.
A similar pattern of HTTP response codes applies to other endpoints such us /builds
, /branches
, /jobs
and /requests
.
To use API V2.1 set the Accept
header of your API request to application/vnd.travis-ci.2.1+json
.
Making Requests
GET / HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/vnd.travis-ci.2.1+json
Host: api.travis-ci.org
GET / HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/vnd.travis-ci.2.1+json
Authorization: token "YOUR TRAVIS ACCESS TOKEN"
Host: api.travis-ci.com
GET /api HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/vnd.travis-ci.2.1+json
Authorization: token "YOUR TRAVIS ACCESS TOKEN"
Host: travis.example.com
$ travis raw /
{"hello"=>"world"}
$ travis raw / --pro
{"hello"=>"world"}
$ travis raw / --api-endpoint https://travis.example.com/api
{"hello"=>"world"}
require 'travis'
# talk to travis-ci.org via client object
client = Travis::Client.new
repository = client.repo('travis-ci/travis.rb')
# talk to travis-ci.org via Travis namespace
repository = Travis::Repository.find('travis-ci/travis.rb')
# talk to travis-ci.com via client object
client = Travis::Client.new('https://api.travis-ci.com')
client.access_token = 'YOUR TRAVIS ACCESS TOKEN'
repository = client.repo('travis-pro/billing')
# talk to travis-ci.com via Travis::Pro namespace
Travis::Pro.access_token = 'YOUR TRAVIS ACCESS TOKEN'
repository = Travis::Pro::Repository.find('travis-pro/billing')
# talk to travis.example.com via client object
client = Travis::Client.new('https://travis.example.com/api')
client.access_token = 'YOUR TRAVIS ACCESS TOKEN'
repository = client.repo('my/repo')
# talk to travis.example.com via custom namespace
My = Travis::Client::Namespaces.new('https://travis.example.com/api')
My.access_token = 'YOUR TRAVIS ACCESS TOKEN'
My::Repository.find('my/repo')
The first thing you need to know is what API URL endpoint to use:
- Travis CI for open source: For open source projects built on travis-ci.org, use
https://api.travis-ci.org
. - Travis CI for private projects: For private projects built on travis-ci.com, use
https://api.travis-ci.com
. - Travis CI Enterprise: For projects running on a custom setup, use
https://travis.example.com/api
(where you replace travis.example.com with the domain Travis CI is running on).
When you write your own Travis CI client, please keep the following in mind:
- Always set the User-Agent header. This header is not required right now, but will be in the near future. Assuming your client is called “My Client”, and its current version is 1.0.0, a good value would be
MyClient/1.0.0
. For our command line client running on OS X 10.9 on Ruby 2.1.1, it might look like this:Travis/1.6.8 (Mac OS X 10.9.2 like Darwin; Ruby 2.1.1; RubyGems 2.0.14) Faraday/0.8.9 Typhoeus/0.6.7
. - Always set the Accept header to
application/vnd.travis-ci.2.1+json
to make sure that you get results from the V2.1 API. See also the note about API V2.1
Client libraries will usually set these headers automatically.
External APIs
GET /config HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/vnd.travis-ci.2.1+json
Host: api.travis-ci.org
HTTP/1.1 200 OK
Content-Type: application/json
{
"config": {
"host": "travis-ci.org",
"pusher": { "key": "5df8ac576dcccf4fd076" },
"github": {
"api_url": "https://api.github.com",
"scopes": [
"read:org", "user:email", "repo_deployment",
"repo:status", "write:repo_hook"
]
}
}
}
$ travis raw /config
{"config"=>
{"host"=>"travis-ci.org",
"pusher"=>{"key"=>"5df8ac576dcccf4fd076"},
"github"=>
{"api_url"=>"https://api.github.com",
"scopes"=>
["read:org",
"user:email",
"repo_deployment",
"repo:status",
"write:repo_hook"]}}}
require 'travis'
client = Travis::Client.new
client.config
# => {"host"=>"travis-ci.org",
# "pusher"=>{"key"=>"5df8ac576dcccf4fd076"},
# "github"=>
# {"api_url"=>"https://api.github.com",
# "scopes"=>
# ["read:org",
# "user:email",
# "repo_deployment",
# "repo:status",
# "write:repo_hook"]}}
Travis CI integrates with external services, some of which your client library might want to interface with directly. Most prominently, it uses GitHub as source for users, organizations and repositories, and Pusher for live streaming logs.
You can ask the API for the connection details to these services by loading the config
endpoint.
This includes, amongst other things:
- The GitHub API endpoint (this might be a GitHub enterprise endpoint) and the GitHub scopes currently required by Travis CI. These are the scopes you should use when generating a temporary GitHub token for authentication.
- The Pusher application key. If the setup is running behind a firewall and uses Slanger, it will also include the Slanger URL.
Authentication
GET /users HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/vnd.travis-ci.2.1+json
Host: api.travis-ci.org
Authorization: token "YOUR TRAVIS ACCESS TOKEN"
$ travis whoami -t "YOUR TRAVIS ACCESS TOKEN"
require 'travis'
# against the Travis namespace
Travis.access_token = 'YOUR TRAVIS ACCESS TOKEN'
Travis::User.current
# against a client object
client = Travis::Client.new(access_token: 'YOUR TRAVIS ACCESS TOKEN')
client.user
To authenticate against Travis CI, you need an API access token.
You can retrieve a token by using a GitHub token to prove who you are. In the future, we are planning to add a proper OAuth handshake for third party applications.
It is also possible to get your API token from your Travis CI profile page for public repositories or private repositories.
With a GitHub token
POST /auth/github HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/vnd.travis-ci.2.1+json
Host: api.travis-ci.org
Content-Type: application/json
Content-Length: 37
{"github_token":"YOUR GITHUB TOKEN"}
HTTP/1.1 200 OK
Content-Type: application/json
{"access_token":"YOUR TRAVIS ACCESS TOKEN"}
$ travis login --github-token "YOUR GITHUB TOKEN"
Successfully logged in!
$ travis token
Your access token is YOUR TRAVIS ACCESS TOKEN
require 'travis'
# against the Travis namespace
Travis.github_auth(token)
# against a client object
client = Travis::Client.new
client.github_auth(token)
If you have a GitHub token, you can use the GitHub authentication endpoint to exchange it for an access token. The Travis API server will not store the token or use it for anything else than verifying the user account.
Note that therefore the API cannot be used to create new user accounts. The user will have to log in at least once via the web interface before interfacing with the API by other means.
Creating a temporary GitHub token
POST /authorizations HTTP/1.1
Host: api.github.com
Content-Type: application/json
Authorization: Basic ...
{
"scopes": [
"read:org", "user:email", "repo_deployment",
"repo:status", "write:repo_hook"
],
"note": "temporary token to auth against travis"
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": 1,
"url": "https://api.github.com/authorizations/1",
"scopes": [
"read:org", "user:email", "repo_deployment",
"repo:status", "write:repo_hook"
],
"token": "YOUR GITHUB TOKEN",
"note": "temporary token to auth against travis"
}
POST /auth/github HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/vnd.travis-ci.2.1+json
Host: api.travis-ci.org
Content-Type: application/json
Content-Length: 37
{"github_token":"YOUR GITHUB TOKEN"}
HTTP/1.1 200 OK
Content-Type: application/json
{"access_token":"YOUR TRAVIS ACCESS TOKEN"}
DELETE /authorizations/1 HTTP/1.1
Host: api.github.com
Authorization: Basic ...
$ travis login --auto
Successfully logged in!
$ travis token
Your access token is YOUR TRAVIS ACCESS TOKEN
require 'travis'
require 'travis/tools/github'
# drop_token will make the token a temporary one
github = Travis::Tools::Github.new(drop_token: true) do |g|
g.ask_login = -> { print("GitHub login: "); gets }
g.ask_password = -> { print("Password: "); gets }
g.ask_otp = -> { print("Two-factor token: "); gets }
end
github.with_token do |token|
Travis.github_auth(token)
end
Travis.access_token # => "YOUR TRAVIS ACCESS TOKEN"
Since Travis CI will not store the GitHub token handed to it for authentication, it is possible to generate a temporary GitHub token and remove it again after the authentication handshake.
To create and delete the GitHub token, you can either use the GitHub web interface or automate it via the GitHub API.
Make sure your GitHub token has the scopes required by Travis CI.
If you automate this process, authentication will become a handshake consisting of three requests:
- Create a GitHub token via the GitHub API, store GitHub token and URL.
- Use the
/auth/github
endpoint to exchange it for an access token. Store the access token. - Delete the GitHub token via the GitHub API.
Some client libraries will automate this handshake for you.
GitHub OAuth handshake
Triggering an OAuth handshake between GitHub and Travis CI:
log in
Running the OAuth handshake in an iframe:

You can also trigger a full OAuth handshake between Travis CI and GitHub by opening /auth/handshake
in a web browser. The endpoint takes an optional redirect_uri
query parameter, which takes a URL the web browser will end up on if the handshake is successful.
There is an alternative version of this that will try to run the handshake in a hidden iframe and using window.postMessage
to hand the token to the website embedding the iframe. This endpoint will only work for whitelisted websites.
Entities
Accounts
GET /accounts HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/vnd.travis-ci.2.1+json
Host: api.travis-ci.org
Authorization: token "YOUR TRAVIS ACCESS TOKEN"
HTTP/1.1 200 OK
Content-Type: application/json
{
"accounts" : [
{
"repos_count" : 167,
"name" : "Konstantin Haase",
"type" : "user",
"id" : 267,
"login" : "rkh"
},
{
"repos_count" : 70,
"name" : "Travis CI",
"type" : "organization",
"id" : 87,
"login" : "travis-ci"
}
]
}
$ travis accounts
rkh (Konstantin Haase): subscribed, 167 repositories
travis-ci (Travis CI): subscribed, 70 repositories
require 'travis'
Travis.access_token = 'YOUR TRAVIS ACCESS TOKEN'
Travis.accounts.each do |account|
puts "#{account.login} has #{account.repos_count}"
end
A user might have access to multiple accounts. This is usually the account corresponding to the user directly and one account per GitHub organization.
Attributes
| Attribute | Description |
|---|---|
| id | user or organization id |
| name | account name on GitHub |
| login | account login on GitHub |
| type | user or organization |
| repos_count | number of repositories |
| subscribed | whether or not the account has a valid subscription |
The subscribed
attribute is only available on Travis Pro.
List accounts
GET /accounts
| Parameter | Default | Description |
|---|---|---|
| all | false | whether or not to include accounts the user does not have admin access to |
This request always needs to be authenticated.
Branches
GET /repos/rails/rails/branches HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/vnd.travis-ci.2.1+json
Host: api.travis-ci.org
HTTP/1.1 200 OK
Content-Type: application/json
{
"branches": [
{
"id": 22554234,
"repository_id": 891,
"commit_id": 6534402,
"number": "15184",
"config": {},
"state": "created",
"started_at": "2014-04-08T00:17:34Z",
"finished_at": "2014-04-08T00:48:59Z",
"duration": 30546,
"job_ids": [],
"pull_request": false
}
]
}
$ travis branches -r rails/rails
v4.1.0: #15184 created Dont encourage aliases now that …
master: #15183 created Dont abbreviate that which needs…
4-1-0: #15183 created Dont encourage aliases now that …
4-1-stable: #15185 created Merge branch '4-1-0' into 4-1-st…
adequaterecord: #15158 passed wrap the literal value before ha…
require 'travis'
repository = Travis::Repository.find('rails/rails')
repository.branches
# => {"v4.1.0" => #<Travis::Client::Build: rails/rails#15184>,
# "master" => #<Travis::Client::Build: rails/rails#15183>,
# "4-1-0" => #<Travis::Client::Build: rails/rails#15183>,
# "4-1-stable" => #<Travis::Client::Build: rails/rails#15185>,
# "adequaterecord" => #<Travis::Client::Build: rails/rails#15158>,
# "4-0-stable" => #<Travis::Client::Build: rails/rails#15143>}
The branches API can be used to get information about the latest build on a given branch.
Attributes
See builds.
List Branches
This will list the latest 25 branches.

}
]
}
$ travis raw /broadcasts
{"broadcasts"=>[{"id"=>451, "message"=>"This is a broadcast!"}]}
require 'travis'
Travis::Broadcast.current.each do |broadcast|
puts broadcast.message
end
Attributes
| Attribute | Description |
|---|---|
| id | broadcast id |
| message | broadcast message |
List Broadcasts
GET /broadcasts
This request always needs to be authenticated.
Builds
GET /repos/sinatra/sinatra/builds HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/vnd.travis-ci.2.1+json
Host: api.travis-ci.org
HTTP/1.1 200 OK
Content-Type: application/json
{
"builds": [
{
"commit_id": 6534711,
"config": { },
"duration": 2648,
"finished_at": "2014-04-08T19:52:56Z",
"id": 22555277,
"job_ids": [22555278, 22555279, 22555280, 22555281],
"number": "784",
"pull_request": true,
"pull_request_number": "1912",
"pull_request_title": "Example PR",
"repository_id": 82,
"started_at": "2014-04-08T19:37:44Z",
"state": "failed"
}
],
"jobs": [ ],
"commits": [ ]
}
$ travis history
...
$ travis show 15 # show build #15
...
$ travis restart 15
...
$ travis cancel 15
...
require 'travis'
Travis.access_token = 'YOUR TRAVIS ACCESS TOKEN'
repository = Travis::Repository.find('my/repo')
repository.each_build do |build|
# restart all the builds
build.restart
end
Attributes
| Attribute | Description |
|---|---|
| id | build id |
| repository_id | repository id |
| commit_id | commit id |
| number | build number |
| pull_request | true or false |
| pull_request_title | PR title if pull_request is true |
| pull_request_number | PR number if pull_request is true |
| config | build config (secure values and ssh key removed) |
| state | build state |
| started_at | time the build was started |
| finished_at | time the build finished |
| duration | build duration |
| job_ids | list of job ids in the build matrix |
Note that duration
might not correspond to finished_at - started_at
if the build was restarted at a later point.
List Builds
GET /builds
| Parameter | Default | Description |
|---|---|---|
| ids | list of build ids to fetch | |
| repository_id | repository id the build belongs to | |
| slug | repository slug the build belongs to | |
| number | filter by build number, requires slug or repository_id | |
| after_number | list build after a given build number (use for pagination), requires slug or repository_id | |
| event_type | limit build to given event type (push or pull_request ) |
You have to supply either ids
, repository_id
or slug
.
GET /repos/{repository.id}/builds
| Parameter | Default | Description |
|---|---|---|
| number | filter by build number | |
| after_number | list build after a given build number (use for pagination) | |
| event_type | limit build to given event type (push or pull_request ) |
GET /repos/{+repository.slug}/builds
| Parameter | Default | Description |
|---|---|---|
| number | filter by build number | |
| after_number | list build after a given build number (use for pagination) | |
| event_type | limit build to given event type (push or pull_request ) |
Show Build
GET /builds/{build.id}
GET /repos/{repository.id}/builds/{build.id}
GET /repos/{+repository.slug}/builds/{build.id}
Cancel Build
POST /builds/{build.id}/cancel
This request always needs to be authenticated.
Restart Build
POST /builds/{build.id}/restart
This request always needs to be authenticated.
Caches
GET /repos/travis-pro/billing/caches HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/vnd.travis-ci.2.1+json
Authorization: token YOUR TRAVIS ACCESS TOKEN
Host: api.travis-ci.com
HTTP/1.1 200 OK
Content-Type: application/json
{
"caches": [
{
"repository_id": 51007,
"size": 103677795,
"slug": "cache--rvm-2.0.0--gemfile-Gemfile",
"branch": "master",
"last_modified": "2014-03-06T16:19:49Z"
}
]
}
$ travis cache -r travis-pro/billing
On branch master:
cache--rvm-2.0.0--gemfile-Gemfile last modified: 2014-03-06 11:19:49 size: 98.87 MiB
On branch mm-ruby-2.1:
cache--rvm-2.0.0--gemfile-Gemfile last modified: 2013-12-28 09:42:21 size: 98.87 MiB
cache--rvm-2.1.0--gemfile-Gemfile last modified: 2013-12-28 09:42:21 size: 88.02 MiB
Overall size of above caches: 371.08 MiB
$ travis cache -r travis-pro/billing --delete --branch mm-ruby-2.1
require 'travis'
repository = Travis::Repository.find('travis-pro/billing')
repository.caches.each do |cache|
# delete all caches!
cache.delete if cache.branch == 'mm-ruby-2.1'
end
# or in a single request
repository.delete_caches(branch: 'mm-ruby-2.1')
Attributes
| Attribute | Description |
|---|---|
| repository_id | id of the repository the cache belongs to |
| size | compressed cache size in bytes |
| slug | cache slug (generated from env) |
| branch | branch the cache is for |
| last_modified | last time the cache was updated |
List caches
GET /repos/{repository.id}/caches
GET /repos/{+repository.slug}/caches
| Parameter | Default | Description |
|---|---|---|
| branch | limit listed caches to those on given branch | |
| match | limit listed caches to those with slug containing the given value |
This request always needs to be authenticated.
Delete caches
DELETE /repos/{repository.id}/caches
DELETE /repos/{+repository.slug}/caches
| Parameter | Default | Description |
|---|---|---|
| branch | only delete caches on given branch | |
| match | only delete caches with slug containing the given value |
This request always needs to be authenticated.
Commits
GET /repos/sinatra/sinatra/builds HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/vnd.travis-ci.2.1+json
Host: api.travis-ci.org
HTTP/1.1 200 OK
Content-Type: application/json
{
"builds": [ ],
"jobs": [ ],
"commits": [
{
"id": 1873023,
"sha": "a18f211f6f921affd1ecd8c18691b40d9948aae5",
"branch": "master",
"message": "Merge pull request #25 from henrikhodne/add-responses-to-documentation\n\nAdd responses to documentation",
"committed_at": "2013-04-15T09:44:31Z",
"author_name": "Henrik Hodne",
"author_email"<EMAIL_ADDRESS>"committer_name": "Henrik Hodne",
"committer_email"<EMAIL_ADDRESS>"compare_url": "https://github.com/travis-ci/travis-api/compare/0f31ff4fb6aa...a18f211f6f92"
}
]
}
$ travis history -r sinatra/sinatra
#784 failed: master Merge pull request #861 from kant/patch-1
#783 passed: v1.4.5 v1.4.5
#782 passed: master v1.4.5
require 'travis'
repository = Travis::Repository.find('my/repo')
repository.each_build do |build|
puts build.commit.message
end
There is no API endpoint for resolving commits, however commit data might be included in other API responses, like builds or jobs.
Attributes
| Attribute | Description |
|---|---|
| id | commit id |
| sha | commit sha |
| branch | branch the commit is on |
| message | commit message |
| committed_at | commit date |
| author_name | author name |
| author_email | author email |
| committer_name | committer name |
| committer_email | committer email |
| compare_url | link to diff on GitHub |
Hooks
PUT /hooks HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/vnd.travis-ci.2.1+json
Authorization: token YOUR TRAVIS ACCESS TOKEN
Host: api.travis-ci.org
Content-Type: application/json
{
"hook": {
"id": 42,
"active": true
}
}
$ travis enable -r my/repo
require 'travis'
Travis.access_token = 'YOUR TRAVIS ACCESS TOKEN'
Travis.hooks.each { |hook| hook.enable }
Attributes
See repository.
List Hooks
GET /hooks
This request always needs to be authenticated.
Enable/Disable Hook
PUT /hooks
| Parameter | Default | Description |
|---|---|---|
| hook[id] | id of the hook/repository | |
| hook[active] | false | whether to turn hook on (true) or off (false) |
PUT /hooks/{hook.id}
| Parameter | Default | Description |
|---|---|---|
| hook[active] | false | whether to turn hook on (true) or off (false) |
This request always needs to be authenticated.
Jobs
POST /jobs/42/restart HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/vnd.travis-ci.2.1+json
Authorization: token YOUR TRAVIS ACCESS TOKEN
Host: api.travis-ci.org
$ travis restart 1.2 -r my/repo
require 'travis'
Travis.access_token = 'YOUR TRAVIS ACCESS TOKEN'
Travis.repos('my/repo').last_build.jobs.each do |job|
job.restart if job.failed?
end
Attributes
| Attribute | Description |
|---|---|
| id | job id |
| build_id | build id |
| repository_id | repository id |
| commit_id | commit id |
| log_id | log id |
| number | job number |
| config | job config (secure values and ssh key removed) |
| state | job state |
| started_at | time the job was started |
| finished_at | time the job finished |
| queue | job queue |
| allow_failure | whether or not job state influences build state |
Fetch Job
GET /jobs/{job.id}
Fetch multiple jobs
| Parameter | Default | Description |
|---|---|---|
| ids | list of job ids | |
| state | job state to filter by | |
| queue | job queue to filter by |
You need to provide exactly one of the above parameters.
If you provide state
or queue
, a maximum of 250 jobs will be returned.
Cancel Job
POST /jobs/{job.id}/cancel
This request always needs to be authenticated.
Restart Job
POST /jobs/{job.id}/restart
This request always needs to be authenticated.
Logs
GET /jobs/42/log HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: text/plain
Host: api.travis-ci.org
HTTP/1.1 200 OK
Content-Type text/plain
Using worker: ...
$ travis logs
... logs ...
require 'travis'
rails = Travis::Repository.find('rails/rails')
job = rails.last_build.jobs.first
# this will live stream if the job is currently running
job.log.body do |part|
print part
end
Attributes
| Attribute | Description |
|---|---|
| id | log id |
| job_id | job id |
| body | log body |
Chunked Attributes
You can retrieve the chunked attributes instead of the normal attributes by adding the attribute chunked=true
to the mime-type specified in the Accept
header.
| Attribute | Description |
|---|---|
| id | log id |
| job_id | job id |
| parts | log parts |
The parts
will be an array of JSON objects with the following attributes:
| Attribute | Description |
|---|---|
| number | part number |
| content | part content |
Fetching a Log
GET /logs/{log.id}
Fetching Logs as plain text
GET /jobs/{job.id}/logs
This might be necessary if the log has been archived, in which case it will result in a redirect.
Streaming Logs
To stream the logs, you will have to subscribe to the channel for the job the log belongs to on Pusher (channel is job-{job.id}
) and listen for job:log
events. The payload will have the same format as parts have in the chunked attributes API payloads.
Permissions
GET /users/permissions HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/vnd.travis-ci.2.1+json
Authorization: token YOUR TRAVIS ACCESS TOKEN
Host: api.travis-ci.org
HTTP/1.1 200 OK
Content-Type: application/json
{
"permissions": [1, 2, 3],
"admin": [1, 2],
"pull": [],
"push": [3]
}
$ travis repos
require 'travis'
Travis.access_token = 'YOUR TRAVIS ACCESS TOKEN'
Travis.user.push_access.each do |repo|
puts "has push access to #{repo.slug}"
end
The permissions endpoint will return arrays of repository ids:
| Key | ids for |
|---|---|
| permissions | repositories the user has access to |
| admin | repositories the user has admin access to |
| pull | repositories the user has pull access to |
| push | repositories the user has push access to |
The pull access list is only relevant for private projects.
Fetch Permissions
GET /users/permissions
This request always needs to be authenticated.
Repository Keys
GET /repos/sinatra/sinatra/key HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/vnd.travis-ci.2.1+json
Authorization: token YOUR TRAVIS ACCESS TOKEN
Host: api.travis-ci.org
HTTP/1.1 200 OK
Content-Type: application/json
{
"key": "-----BEGIN RSA PUBLIC KEY-----\\nMIGJAoGBAOcx131amMqIzm5+FbZz+DhIgSDbFzjKKpzaN5UWVCrLSc57z64xxTV6\\nkaOTZmjCWz6WpaPkFZY+czfL7lmuZ/Y6UNm0vupvdZ6t27SytFFGd1/RJlAe89tu\\nGcIrC1vtEvQu2frMLvHqFylnGd5Gy64qkQT4KRhMsfZctX4z5VzTAgMBAAE=\\n-----END RSA PUBLIC KEY-----\\n",
"fingerprint": "ef:39:56:6e:2a:09:a2:10:2e:b5:39:ac:3d:3e:e1:05"
}
$ travis pubkey -r travis-ci/travis-api
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCOmOkC6MYRH1w2ib3AIC00GNwmgr8ch3mNHZ16x6cvSMjc6cURZt9Hav6gz03P5+9e5Vw1ztm3hvPR+IJsyOV/CSsYf1Cgboj6ZJ7tr3xOJXcqcMVfiGiG7Km6/psRdn0jrjTpU/qcru8Wx3zbQEf5NuXQyMVHmnl8/5w0WPV/Uw==
$ travis pubkey --pem -r travis-ci/travis-api
-----BEGIN RSA PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCOmOkC6MYRH1w2ib3AIC00GNwm
gr8ch3mNHZ16x6cvSMjc6cURZt9Hav6gz03P5+9e5Vw1ztm3hvPR+IJsyOV/CSsY
f1Cgboj6ZJ7tr3xOJXcqcMVfiGiG7Km6/psRdn0jrjTpU/qcru8Wx3zbQEf5NuXQ
yMVHmnl8/5w0WPV/UwIDAQAB
-----END RSA PUBLIC KEY-----
$ travis pubkey --fingerprint -r travis-ci/travis-api
99:66:93:03:41:0b:f1:f7:61:83:16:61:fa:47:c0:8f
require 'travis'
repo = Travis::Repository.find('travis-ci/travis-api')
puts "SSH format: ", repo.key.to_ssh
puts "PEM format: ", repo.key.to_s
puts "Fingerprint: ", repo.key.fingerprint
puts repository.encrypt("example")
| Attribute | Description |
|---|---|
| key | public key |
| fingerprint | fingerprint for the public key |
This key can be used to encrypt (but not decrypt) secure env vars.
Fetch a Public Key
GET /repos/{repository.id}/key
GET /repos/{+repository.slug}/key
Generate a Public Key
POST /repos/{repository.id}/key
POST /repos/{+repository.slug}/key
This will invalidate the current key, thus also rendering all encrypted variables invalid.
This request always needs to be authenticated.
Repositories
GET /repos/sinatra/sinatra HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/vnd.travis-ci.2.1+json
Authorization: token YOUR TRAVIS ACCESS TOKEN
Host: api.travis-ci.org
HTTP/1.1 200 OK
Content-Type: application/json
{
"repo": {
"id": 82,
"slug": "sinatra/sinatra",
"description": "Classy web-development dressed in a DSL",
"last_build_id": 23436881,
"last_build_number": "792",
"last_build_state": "passed",
"last_build_duration": 2542,
"last_build_started_at": "2014-04-21T15:27:14Z",
"last_build_finished_at": "2014-04-21T15:40:04Z",
"active": "true"
}
}
$ travis show -r travis-ci/travis-api
...
require 'travis'
repos = Travis::Repository.find_all(owner_name: 'sinatra')
repos.each do |repo|
puts repo.slug
end
Attributes
| Attribute | Description |
|---|---|
| id | repository id |
| slug | repository slug |
| description | description on github |
| last_build_id | build id of the last build |
| last_build_number | build number of the last build |
| last_build_state | build state of the last build |
| last_build_duration | build duration of the last build |
| last_build_started_at | build started at of the last build |
| last_build_finished_at | build finished at of the last build |
| active | repository’s active status |
Fetch Repository
GET /repos/{repository.id}
GET /repos/{+repository.slug}
Find Repositories
| Parameter | Default | Description |
|---|---|---|
| ids | list of repository ids to fetch, cannot be combined with other parameters | |
| member | filter by user that has access to it (github login) | |
| owner_name | filter by owner name (first segment of slug) | |
| slug | filter by slug | |
| search | filter by search term | |
| active | false |
if true , will only return repositories that are enabled |
If no parameters are given, a list or repositories with recent activity is returned.

}
}
$ travis requests -r my/repo
...
require 'travis'
Travis::Repository.find('sinatra/sinatra').requests.each do |request|
puts "#{request.commit.sha}: #{request.result}"
end
Requests can be used to see if and why a GitHub event has or has not triggered a new build.
Attributes
| Attribute | Description |
|---|---|
| id | request id |
| commit_id | commit id |
| repository_id | repository id |
| created_at | created at |
| owner_id | owner id |
| owner_type | owner type ("User" or "Organization" ) |
| event_type | event type ("push" or "pull_request" ) |
| base_commit | base commit for pull requests |
| head_commit | head commit for pull requests |
| result | "accepted" , "rejected" or null |
| message | human readable message explaining why event has been rejected |
| pull_request | true or false |
| pull_request_number | pull request number |
| pull_request_title | pull request title |
| branch | branch commit is on |
| tag | tag if commit has been tagged |
Show Request
GET /requests/{request.id}
List Requests
GET /requests
| Parameter | Default | Description |
|---|---|---|
| repository_id | repository id the requests belong to | |
| slug | repository slug the requests belong to | |
| limit | 25 | maximum number of requests to return (cannot be larger than 100) |
| older_than | list requests before older_than (with older_than being a request id) |
You have to either provide repository_id
or slug
.
Settings: General
GET /repos/82/settings HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/vnd.travis-ci.2.1+json
Authorization: token YOUR TRAVIS ACCESS TOKEN
Host: api.travis-ci.org
HTTP/1.1 200 OK
Content-Type: application/json
{
"settings": {
"builds_only_with_travis_yml": true,
"build_pushes": true,
"build_pull_requests": true,
"maximum_number_of_builds": 0
}
}
$ travis settings
Settings for travis-ci/travis-api:
[-] builds_only_with_travis_yml Only run builds with a .travis.yml
[+] build_pushes Build pushes
[+] build_pull_requests Build pull requests
0 maximum_number_of_builds Maximum number of concurrent builds
$ travis settings build_pull_requests --enable
require 'travis'
Travis.access_token = 'YOUR TRAVIS ACCESS TOKEN'
repo = Travis::Repository.find('my/repo')
repo.settings.build_pull_requests = false
repo.settings.save
Attributes
| Attribute | Description |
|---|---|
| builds_only_with_travis_yml | “builds only with .travis.yml” setting (true or false ) |
| build_pushes | “build pushes” setting (true or false ) |
| build_pull_requests | “build pull requests” setting (true or false ) |
| maximum_number_of_builds | “maximum number of concurrent builds” setting (integer) |
Retrieve Settings
GET /repos/{repository.id}/settings
This request always needs to be authenticated.
Update Settings
PATCH /repos/{repository.id}/settings
| Parameter | Default | Description |
|---|---|---|
| settings | {} |
Hash map of settings that should be updated and their new values (see Attributes) |
This request always needs to be authenticated.
Settings: Environment Variables
GET /settings/env_vars?repository_id=124920 HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/vnd.travis-ci.2.1+json
Authorization: token YOUR TRAVIS ACCESS TOKEN
Host: api.travis-ci.org
HTTP/1.1 200 OK
Content-Type: application/json
{
"env_vars":[
{
"id": "018e66f2-cd3a-4295-aa1d-018fe9aa0fb4",
"name": "example",
"value": "foobar",
"public": true,
"repository_id": 124920
},
{
"id": "ec9423da-9658-4cd6-b282-fd0e5f6ed2df",
"name": "secret_example",
"public": false,
"repository_id": 124920
}
]
}
$ travis env list
example=foobar
secret_example=[secure]
require 'travis'
Travis.access_token = 'YOUR TRAVIS ACCESS TOKEN'
repo = Travis::Repository.find('my/repo')
repo.env_vars['foo'] = bar
Attributes
| Attribute | Description |
|---|---|
| id | env var id |
| repository_id | repository id |
| name | env var name (exported) |
| value | env var value (exported, only included if public is true) |
| public | whether or not value is public |
List Variables
GET /repos/settings/env_vars?repository_id={repository.id}
This request always needs to be authenticated.
Fetch Variable
GET /repos/settings/env_vars/{env_var.id}?repository_id={repository.id}
This request always needs to be authenticated.
Add Variable
POST /repos/settings/env_vars?repository_id={repository.id}
| Parameter | Default | Description |
|---|---|---|
| env_var | Hash map of env var variable (see below) | |
| env_var.name | Name of the new env var (string) | |
| env_var.value | Value of the new env var (string) | |
| env_var.public | false | whether or not to display the value |
This request always needs to be authenticated.
Update Variable
PATCH /repos/settings/env_vars/{env_var.id}
| Parameter | Default | Description |
|---|---|---|
| env_var | Hash map of env var variable (see below) | |
| env_var.name | current value | Name of the new env var (string) |
| env_var.value | current value | Value of the new env var (string) |
| env_var.public | current value | whether or not to display the value |
This request always needs to be authenticated.
Delete Variable
DELETE /repos/settings/env_vars/{env_var.id}
This request always needs to be authenticated.
Settings: SSH Key
GET /settings/ssh_key/124920 HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/vnd.travis-ci.2.1+json
Authorization: token YOUR TRAVIS ACCESS TOKEN
Host: api.travis-ci.com
HTTP/1.1 200 OK
Content-Type: application/json
{
"ssh_key": {
"description": "my custom key",
"fingerprint": "99:66:93:03:41:0b:f1:f7:61:83:16:61:fa:47:c0:8f"
}
}
$ travis sshkey
No custom SSH key installed.
require 'travis/pro'
Travis::Pro.access_token = 'YOUR TRAVIS ACCESS TOKEN'
puts Travis::Pro::Repository.find('my/repo').ssh_key.description
Attributes
| Attribute | Description |
|---|---|
| id | ssh key id (corresponds to repository id) |
| description | key description |
| fingerprint | key fingerprint |
Fetch Key
GET /settings/ssh_key/#{ssh_key.id}
This request always needs to be authenticated.
Update or Create Key
PATCH /settings/ssh_key/#{ssh_key.id}
| Parameter | Default | Description |
|---|---|---|
| ssh_key | Hash map of ssh key data (see below) | |
| ssh_key.description | current value or empty | key description |
| ssh_key.value | private key (required) |
This request always needs to be authenticated.
Delete Key
DELETE /settings/ssh_key/#{ssh_key.id}
This request always needs to be authenticated.
Users
GET /users/ HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/vnd.travis-ci.2.1+json
Authorization: token YOUR TRAVIS ACCESS TOKEN
Host: api.travis-ci.org
HTTP/1.1 200 OK
Content-Type: application/json
{
"user": {
"id": 267,
"name": "Konstantin Haase",
"login": "rkh",
"email"<EMAIL_ADDRESS>"gravatar_id": "5c2b452f6eea4a6d84c105ebd971d2a4",
"is_syncing": false,
"synced_at": "2014-02-27T18:53:43Z",
"correct_scopes": false,
"created_at": "2011-03-30T16:25:21Z"
}
}
$ travis whoami
You are rkh (Konstantin Haase)
$ travis sync
synchronizing: ... done
require 'travis'
Travis.access_token = 'YOUR TRAVIS ACCESS TOKEN'
puts Travis.user.name
Travis.user.sync
Attributes
| Attribute | Description |
|---|---|
| id | user id |
| login | user login on github |
| name | user name on github |
| primary email address on github | |
| gravatar_id | avatarid |
| is_syncing | whether or not user account is currently being synced |
| synced_at | last synced at |
| correct_scopes | whether or not github token has the correct scopes |
| channels | pusher channels for this user |
Show User
GET /users/
GET /users/{user.id}
This request always needs to be authenticated.
Sync Users
POST /users/sync
Triggers a new sync with GitHub. Might return status 409
if the user is currently syncing.
This request always needs to be authenticated.
Other Endpoints
Linting
PUT /lint/ HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/vnd.travis-ci.2.1+json
Host: api.travis-ci.org
Content-Type: text/yaml
language: ruby
jdk: default
HTTP/1.1 200 OK
Content-Type: application/json
{
"lint": {
"warnings": [
{
"key": ["jdk"],
"message": "specified jdk, but ruby does not include jruby"
}
]
}
}
$ travis lint example.yml
Warnings for example.yml:
[x] dropping jdk section: specified jdk, but ruby does not include jruby
require 'travis'
content = <<-YAML
language: ruby
jdk: default
YAML
Travis.lint(content).warnings.each do |warning|
puts "%p: %s" % [warning.key, warning.message]
end
POST /lint
| Parameter | Default | Description |
|---|---|---|
| content | content of the .travis.yml |
PUT /lint
This is an alternative endpoint to the POST
with parameter, to make it work well with tools like curl
(curl -T .travis.yml api.travis-ci.org/lint
). The request body can contain the YAML file directly.
API Clients
There are a few API clients out there you can use for interacting with the Travis API, rather than manually triggering HTTP requests and parsing the responses.
Official
The following clients are maintained by the Travis CI team:
- travis.rb: Command line client and Ruby library
- travis-web: Web interface and JavaScript library, using Ember.js
- travis-sso: Single-Sign-On Rack middleware for Travis CI applications
Web Browsers
API requests using CORS:

With jQuery:

JSONP

When writing an in-browser client, you have to circumvent the browser’s same origin policy. Generally, we offer two different approaches for this: Cross-Origin Resource Sharing (aka CORS) and JSONP. If you don’t have any good reason for using JSONP, we recommend you use CORS.
Cross-Origin Resource Sharing
All API resources set appropriate headers to allow Cross-Origin requests. Be aware that on Internet Explorer you might have to use a different interface to send these requests.
In contrast to JSONP, CORS does not lead to any execution of untrusted code.
Most JavaScript frameworks, like jQuery, take care of CORS requests for you under the hood, so you can just do a normal ajax request.
Our current setup allows the headers Content-Type
, Authorization
, Accept
and the HTTP methods HEAD
, GET
, POST
, PATCH
, PUT
, DELETE
.
JSONP
You can disable the same origin policy by treating the response as JavaScript.
Supply a callback
parameter to use this.
This has the potential of code injection, use with caution.
Third Party
Besides the official clients, there is a range of third party client available, amongst these:
- PHP API Clients Travis Client: Asynchronous first PHP client library
- PHP Travis Client: PHP client library
- Travis Node.js: Node.js client library
- travis-api-wrapper: Asynchronous Node.js wrapper
- travis-ci: Thin Node.js wrapper
- TravisMiner: Ruby library for mining the Travis API
- TravisPy: Python library trying to closely mimic the official Ruby client


WHEN:
August 2015 - December 2015
WHAT:
Independent Study
WHERE:
Wellesley College, MA, USA
TOOLS:
SPSS, BrainVision Analyzer, BrainVision Recorder
Awarded Wellesley College Student Library Award for Independent Study.
Study aimed to investigate a potential frontal and parietal EEG asymmetry profile for irritability. Self-reported measures of irritability and baseline EEG levels were assessed in undergraduates. To elicit irritability experimentally, participants performed an attention-based task (Affective Posner) under conditions of frustration and non-frustration.
We hypothesized the following asymmetry profiles for irritability:
(a) Greater relative left frontal activity, reflective of the relationship between frontal asymmetry and anger, and
(b) Greater relative right frontal activity, reflective of the relationship between parietal asymmetry and hyperarousal.


Basics¶
Mapping DAML types to Python types
DAML type |
Python type |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
records |
|
variants |
|
Some examples
The examples below are valid for the following DAML:
data Rectangle = Rectangle with
length: Decimal
width: Decimal
data Expr a = Num a
| Product (Expr a) (Expr a)
| Sum (Expr a) (Expr a)
template CalculateRequest
with
requester: Party
computer: Party
expression: Expr Decimal
template CalculateResponse
with
requester: Party
computer: Party
value: Decimal


Rectangles
#
Name
Color
Width
Height
Link to rectangle
Button to delete rectangle
Add new rectangle
Name:
Color:
Width (pixels):
Height (pixels):
List of valid CSS colors


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 1
Preheat the oven to 200C/400F/Gas 6.
For the roast chicken, rub the chicken with olive oil, salt and freshly ground black pepper.
Heat an ovenproof frying pan, place the chicken into the pan skin-side down and fry for five minutes, or until golden-brown. Turn over the chicken, then place the pan into the oven and roast for ten minutes, or until the chicken is cooked through - check that the juices run clear when pierced with a skewer. Remove from the oven and keep warm.
For the gravy, place the baby chicken carcass into a hot ovenproof frying pan with a drizzle of olive oil and fry on all sides until browned. Place the frying pan into the oven and roast the carcass for ten minutes.
Remove the pan from the oven and discard the carcass. Add the red wine to the pan and place over a high heat. Stir well with a wooden spoon to scrape up the bits from the bottom of the pan. Add the balsamic vinegar and water and simmer for 6-7 minutes, or until the gravy has reduced by half. Season well with salt and freshly ground black pepper, add the butter and stir.
For the roast potatoes, boil the new potatoes in salted water for ten minutes. Drain well, then grate the skin of the potatoes slightly to make rough edges.
Heat the butter and olive oil in an ovenproof frying pan. Add the potatoes, season well with salt and freshly ground black pepper and fry on all sides until turning golden-brown. Place in the oven and roast for five minutes. Remove from the oven and keep warm.
For the stuffing, mix the breadcrumbs, herbs and salt and freshly ground black pepper together in a bowl. Add the egg white and stir to combine. Roll the mixture into balls.
Heat the butter in a frying pan, add the stuffing balls and fry over a gentle heat until golden-brown on all sides.
For the sautéed spinach, heat the butter in a frying pan, add the spinach and a splash of boiling water and stir for one minute. Season well with salt and freshly ground black pepper and stir. Drain off the excess water.
To serve, pile the spinach onto a serving plate and top with the roast chicken.


The Creators
My partner and I are currently embarking on our respective hair journey’s. We are trying to find out what is best for our hair’s health and growth. Many people, especially those of afro descent, don’t understand their hair and the care that it needs
The Struggle
Many spend so much time and money going down the wrong hair care path because they only have the word of their hair stylist or someone who may not have the same hair type.
There is a lack of natrual and ethnic hair platform on the current internet. Going on a hair journey, especially alone, is something that is very difficult and requires guidance.
The two of us wanted to create this website to serve as a light in a dark tunnel. We want to provide an organized and informational hair care platform where people can keep track of their hair care journey’s and find information relevant to their hair specifically.


climate change refugia management Climate species physical United areas Change conservation resource States {border-style ecological Global processes px;} refugial resources #ffffff;} America [], climatic future Fig Sciences Ecol (e.g., actions data habitat populations Environmental example, Biol. Ecology National buffered identified local potential regional ./j.-...x Table adaptation biodiversity changes contemporary important persistence refugium U.S. change. environmental managing models spatial water Refugia Science Step University based characteristics examples habitats high identify include locations px; range refugia. sites step valued {font-family Biology CA, Life Managing approaches consider effective font-size identifying including large managers need projected refugia, Conservation Department Ecology: Millar Service, act approach capacity century conditions double; ecosystem extreme groundwater key low manage protect regions resources. species. steps temperature time variability vulnerability Berry Biogeogr. Biol Dobrowski Earth Forest Morelli New Potential Williams border-color border-width change: concept connectivity conserving critical deep distribution diversity focus framework genetic geographic historical hydrologic increase indicate limited long-term managed multiple networks objectives opportunities persisted prioritize protection resources, responses riparian solid; strategy stream suggest temperatures thermal topographic uncertainty use used warming {font-style {font-weight ./j.biocon... ./journal.pone. California, Change. Conserv. Environ. Flint However, Keppel Lundquist Maintain Moreover, Paleoecology Park Science. Sierra Similarly, USDA Wardell-Johnson area bold buffering change, circles cold-water common courier; current cycle designated dispersal ecological, edge effects em; enable exposure face factors fish future. goals habitats, highly human idea impacts increases increasing increasingly influence landscapes like loss management. map mapping meadow modeling mountain non-native ongoing particular past planning protected provide pt;} relevant remain review scale scenarios socio-cultural sources specific strategies suitable support trout vegetation vulnerable warm


Instructions:
Total no. of Questions:
Start Quiz
Next
Quiz Result
Total Question
Attempt
Correct
Wrong
Percentage
Your total score
Try Again
Go to home
BACK


--- layout: layout-container name: School Entity Reference title: School Entity Reference order: 60 published: true showInNav: true back_to_top: true showBreadcrumbs: true ---


Modules
| data.spells_unused | The below spells were pulled straight from Possession, so may need some tweaking to work correctly. |
| gamelogic | |
| input | |
| jumper.core.bheap | A light implementation of `binary heaps`. |
| jumper.core.heuristics | Heuristics for the search algorithm. |
| jumper.core.node | The node class. |
| jumper.core.path | The path class. |
| jumper.grid | The grid class API. |
| jumper.pathfinder | The pathfinder class API. |
| lib.serialize | Serialize an object into a source code string. |
| mapgen | |
| output | |
| util | Random utility functions |
Scripts
| jumper.search.astar | `A-star` algorithm. |
| jumper.search.bfs | `Breadth-First Search` algorithm. |
| jumper.search.dfs | `Depth First Search` algorithm. |
| jumper.search.dijkstra | `Dijkstra` algorithm. |
| jumper.search.jps | `Jump Point Search` algorithm. |
Classes
| Condition | |
| Creature | |
| Effect | |
| Faction | |
| Feature | |
| Item | |
| Map | |
| Projectile | |
| ranged_attack | |
| Service | |
| Spell | |
| Store |


Luigi is our god. From the death stare to the T pose that got characters like sonic,eggman, peter griffin, pikachu, and even mario to start this. Even actual humans started T posing it has truly made an inmpact on our lives more about our god will be spread out through the page and at the end (you may also call luigi little green bean or the green flash please don't call him other wise or else...legend has it he will death stare your soul into death like Medusa).


Public Member Functions | |
Constructors and Destructor | |
| Wrapper4InputSource (InputSource *const inputSource, const bool adoptFlag=true, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager) | |
| Constructor. | |
| virtual | ~Wrapper4InputSource () |
| Destructor. | |
Virtual input source interface | |
| virtual const XMLCh * | getStringData () const |
| This wrapper doesn't support string data. | |
| virtual InputSource * | getByteStream () const |
| Makes the byte stream for this input source. | |
Getter methods | |
| virtual const XMLCh * | getEncoding () const |
| An input source can be set to force the parser to assume a particular encoding for the data that input source represents, via the setEncoding() method. | |
| const XMLCh * | getPublicId () const |
| Get the public identifier for this input source. | |
| const XMLCh * | getSystemId () const |
| Get the system identifier for this input source. | |
| const XMLCh * | getBaseURI () const |
| Get the base URI to be used for resolving relative URIs to absolute URIs. | |
| bool | getIssueFatalErrorIfNotFound () const |
| Get the flag that indicates if the parser should issue fatal error if this input source is not found. | |
Setter methods | |
| virtual void | setStringData (const XMLCh *data) |
| This wrapper only exposes the given InputSource, no setting allowed. | |
| virtual void | setByteStream (InputSource *stream) |
| This wrapper only exposes the given InputSource, no setting allowed. | |
| void | setEncoding (const XMLCh *const encodingStr) |
| Set the encoding which will be required for use with the XML text read via a stream opened by this input source. | |
| void | setPublicId (const XMLCh *const publicId) |
| Set the public identifier for this input source. | |
| void | setSystemId (const XMLCh *const systemId) |
| Set the system identifier for this input source. | |
| void | setBaseURI (const XMLCh *const baseURI) |
| Set the base URI to be used for resolving relative URIs to absolute URIs. | |
| void | setIssueFatalErrorIfNotFound (bool flag) |
| Indicates if the parser should issue fatal error if this input source is not found. | |
| void | release () |
| Called to indicate that this DOMInputSource is no longer in use and that the implementation may relinquish any resources associated with it. |
| Wrapper4InputSource::Wrapper4InputSource | ( | InputSource *const | inputSource, | |
| const bool | adoptFlag = true , |
|||
| MemoryManager *const | manager = XMLPlatformUtils::fgMemoryManager | |||
| ) |
Constructor.
Wrap a SAX InputSource and make it behave like a DOMLSInput. By default, the wrapper will adopt the SAX InputSource that is wrapped.
| inputSource | The SAX InputSource to be wrapped | |
| adoptFlag | Indicates if the wrapper should adopt the wrapped SAX InputSource. Default is true. | |
| manager | The MemoryManager to use to allocate objects |
| virtual Wrapper4InputSource::~Wrapper4InputSource | ( | ) | [virtual] |
Destructor.
| const XMLCh * Wrapper4InputSource::getStringData | ( | ) | const [virtual] |
| virtual InputSource* Wrapper4InputSource::getByteStream | ( | ) | const [virtual] |
Makes the byte stream for this input source.
The function will call the makeStream of the wrapped input source. The returned stream becomes the parser's property.
Implements DOMLSInput.
| virtual const XMLCh* Wrapper4InputSource::getEncoding | ( | ) | const [virtual] |
An input source can be set to force the parser to assume a particular encoding for the data that input source represents, via the setEncoding() method.
This method will delegate to the wrapped input source to return name of the encoding that is to be forced. If the encoding has never been forced, it returns a null pointer.
Implements DOMLSInput.
| const XMLCh* Wrapper4InputSource::getPublicId | ( | ) | const [virtual] |
Get the public identifier for this input source.
Delegated to the wrapped input source object.
Implements DOMLSInput.
| const XMLCh* Wrapper4InputSource::getSystemId | ( | ) | const [virtual] |
Get the system identifier for this input source.
Delegated to the wrapped input source object.
If the system ID is a URL, it will be fully resolved.
Implements DOMLSInput.
| const XMLCh * Wrapper4InputSource::getBaseURI | ( | ) | const [virtual] |
Get the base URI to be used for resolving relative URIs to absolute URIs.
If the baseURI is itself a relative URI, the behavior is implementation dependent. Delegated to the wrapped intput source object.
Implements DOMLSInput.
| bool Wrapper4InputSource::getIssueFatalErrorIfNotFound | ( | ) | const [virtual] |
Get the flag that indicates if the parser should issue fatal error if this input source is not found.
Delegated to the wrapped input source object.
Implements DOMLSInput.
| void Wrapper4InputSource::setStringData | ( | const XMLCh * | data | ) | [virtual] |
| void Wrapper4InputSource::setByteStream | ( | InputSource * | stream | ) | [virtual] |
| void Wrapper4InputSource::setEncoding | ( | const XMLCh *const | encodingStr | ) | [virtual] |
Set the encoding which will be required for use with the XML text read via a stream opened by this input source.
This will update the wrapped input source object.
This is usually not set, allowing the encoding to be sensed in the usual XML way. However, in some cases, the encoding in the file is known to be incorrect because of intermediate transcoding, for instance encapsulation within a MIME document.
| encodingStr | The name of the encoding to force. |
Implements DOMLSInput.
| void Wrapper4InputSource::setPublicId | ( | const XMLCh *const | publicId | ) | [virtual] |
Set the public identifier for this input source.
This will update the wrapped input source object.
The public identifier is always optional: if the application writer includes one, it will be provided as part of the location information.
| publicId | The public identifier as a string. |
Implements DOMLSInput.
| void Wrapper4InputSource::setSystemId | ( | const XMLCh *const | systemId | ) | [virtual] |
Set the system identifier for this input source.
This will update the wrapped input source object.
The system id is always required. The public id may be used to map to another system id, but the system id must always be present as a fall back.
If the system ID is a URL, it must be fully resolved.
| systemId | The system identifier as a string. |
Implements DOMLSInput.
| void Wrapper4InputSource::setBaseURI | ( | const XMLCh *const | baseURI | ) | [virtual] |
Set the base URI to be used for resolving relative URIs to absolute URIs.
If the baseURI is itself a relative URI, the behavior is implementation dependent. This will update the wrapped input source object.
| baseURI | The base URI. |
Implements DOMLSInput.
| void Wrapper4InputSource::setIssueFatalErrorIfNotFound | ( | bool | flag | ) | [virtual] |
Indicates if the parser should issue fatal error if this input source is not found.
If set to false, the parser issue warning message instead. This will update the wrapped input source object.
| flag | True if the parser should issue fatal error if this input source is not found. If set to false, the parser issue warning message instead. (Default: true) |
Implements DOMLSInput.
| void Wrapper4InputSource::release | ( | ) | [virtual] |
Called to indicate that this DOMInputSource is no longer in use and that the implementation may relinquish any resources associated with it.
Access to a released object will lead to unexpected result.
Implements DOMLSInput.


--- layout: post title: Accidents date: '2002-09-25T15:28:00-04:00' tags: - '2002' tumblr_url: http://poetry.liabogoev.com/post/913859383/accidents ---
Accidents can happen
Though they are unpleasant
They can happen to a king
or a common peasant
Sometimes they are fatal
Sometimes they are not
Sometimes it can be replaced
Sometimes it can be bought
Sometimes it can be hurtful,
Physical I mean
As big as an elephant
as small as a bean
Who will care?
we are all here together
to bear what we can bear


Configure Services
-
Manage Power BI
Connect to your organization's PowerBI account so you can load reports, dashboards, or dashboard tiles into your Fathym dashboards.
-
Stream Real-Time Data
Connect to an Azure Service Bus Topic or CloudAMQP to stream real-time device data into your dashboards.
Data Applications
-
Manage Applications
Applications come with a shareable URL and can have multiple dashboards. Apply themes to manage the look/feel of your application.
User Management
-
Invite Users
Send invites to new users so they can register and view your Applications and Dashboards.
-
Manage Users
Edit/Delete users. Grant users access to new Applications.
-
Manage Roles
Fathym uses roles to control what users can and cannot do within your account.


{% extends "global/Page.html" %} {% load staticfiles otree_tags %} {% block title %} Welcome {% endblock %} {% block content %}
Welcome and thank you for participating in this experiment. This experiment consists of seven stages that will take place over {{ days }} days. You will begin by completing the first five stages today which will take approximately 20 minutes. Do this after reading the instructions. These stages are mandatory and you will be automatically excluded if you do not complete them. You will have until tomorrow at 10:00am to make your decisions in the first five stages. After, you will move to the sixth stage. You can make your first choice in stage six tomorrow. Subsequently you will participate in one round of stage six every day. You will have until the 10:00am the following day to make your decisions. Your decisions in this stage will take a few minutes each day.
You will be paid at the end of this experiment. Your payment will be the sum of what you earn in each stage. Every 10 points that you earn will be turned into €1. The amount you earn will depend partly on your choices, partly on the choices of the other participants, and partly on chance. You will be paid directly on your PayPal account so that none of the other participants will know how much you earned. Additional instructions about your earnings will follow.
If you do not finish your choices today or you miss {{ inactive_threshold }} decisions during the experiment you will be automatically and permanently excluded from the experiment. If you are excluded you will not be paid.
At the end of the experiment, {{ num_subjects_win }} people who successfully complete it will be randomly selected to win a bonus. This bonus multiplies the earnings of those people by {{ win_multiplier }}. This means that the randomly selected people can earn up to €100 for their decision in addition to the rest of their payoffs.
Once you click 'Next' on a screen you will not be able to go back to the previous screen so please read the instructions carefully. However, we will show you relevant instructions throughout the experiment. If you have any questions during the experiment contact {{ email }}. When you are ready to proceed, click 'Next' below.


The Best Bargains From Steam's Singles Day Sale
by Alex WalkerSingles Day is the biggest shopping day of the year, and while it's not as popular in Australia more online stores and marketplaces are starting to get on board. And naturally, so is Steam.
Just over 6,600 games are on sale on Steam right now, with some of Steam's most favoured games at least 50 percent off. You can view a full list of discounts via the Sales tab at Steamdb.info, or through the Steam client/site/mobile app, but if you want a quicker breakdown here's a list of some of the best games under $25.
- The Witcher 3: GOTY Edition: $23.69
- Euro Truck Simulator 2: $7.23
- Hotline Miami: $3.62
- The Wolf Among Us: $9.18
- Don't Starve Together: $8.60
- Life is Strange Seaosn 1: $5.79
- Celeste: $14.47
- STEINS;GATE: $17.18
- Danganronpa: Trigger Happy Havoc: $11.58
- Trine 2 Complete Story: $14.47
- Danganronpa 2: Goodbye Despair: $11.58
- INSIDE: $14.47
- The Talos Principle: $8.54
- Downwell: $2.25
- GRIS: $11.97
- Hidden Folks: $5.75
- Shadow Tactics: Blades of the Shogun: $14.48
- XCOM: $9.98
- TIS-100: $4.97
- Mafia 2: $9.98
- Skullgirls: $4.35
- Dying Light: $19.36
- Epistory Typing Chronicles: $7.52
- STEINS;GATE 0: $19.98
- Fox Hime Zero: $1.18
- American Truck Simulator: $7.23
- Speedrunners: $5.99
- Supreme Commander Gold Edition: $5.79
- Deus Ex GOTY: $1.39
- Call of Duty: World at War: $14.97
- Life is Strange Before the Storm: $4.49
- Rise of the Tomb Raider: $13.49
- Vampire The Masquerade Bloodlines: $14.97
- SHENZHEN I/O: $10.75
- Hitman Blood Money: $3.48
- Into the Breach: $10.75
- Hacknet: $2.90
- Serious Sam HD: $3.22
- Oxenfree: $7.25
- Yoku's Island Express: $7.23
- Insurgency: $5.37
- Sins of a Solar Empire Rebellion: $14.23
- Mark of the Ninja Remastered: $14.47
- Max Payne 2: $5.24
- The Red Strings Club: $10.75
- Helldivers Dive Harder Edition: $14.47
- Invisible, Inc: $7.23
- Genital Jousting: $3.08
- Dropsy: $3.62
- Oddworld Abe's Exoddus: $1.12
- SpaceChem: $3.62
- GTA: The Trilogy: $13.49
- Mortal Kombat Komplete Edition: $7.23
- Lara Croft and the Guardian of Light: $2.09
- Goat Simulator: $3.62
- The Witcher 2: Assassins Of Kings: $4.07
- Uplink: $2.90
- Tricky Towers: $7.31
- Immortal Redneck: $14.47
- Broken Sword: Director's Cut: $4.25
- Darkest Dungeon: $10.78
- The Longest Journey + Dreamfall: $14.38
- Marc Ecko's Getting Up: Contents Under Pressure: $5.37
- Katamari Damacy Reroll: $14.47
- FRAMED Collection: $7.25
- The Book of Unwritten Tales 2: $10.73
- Garfield Kart: $1.50
- Lara Croft GO: $3.48
- Geometry Wars: Retro Evolved: $3.35
- Iconoclasts: $11.58
- Sid Meier's Colonization (Classic): $2.98
- Evoland 2: $13.99
- Oddworld: New 'n' Tasty: $7.23
Plenty on offer if you need something fresh to play, especially something short before, say, Pokemon Sword & Shield or Jedi: Fallen Order comes out. I'm a big fan of The Red Strings Club, but FRAMED is a must play if you still haven't grabbed it, Invisible Inc. is a great turn-based tactics game, and Shadow Tactics is a Shogun-era modern Commandos. If you need something a bit longer, firing up The Witcher 2 on a new PC or laptop today would look real good, and seeing STEINS;GATE fall in price is nice for people who love their VNs.
The full list can be viewed through the Steam client or the official website.


--- layout: archive title: Zulip Chat Archive permalink: /stream/144837-PR-reviews/topic/.231926.20seminorms.html ---
@Jean Lo asked at https://github.com/leanprover-community/mathlib/pull/1926/files#diff-d195d790a435985b1cbbef26bfcac1edR158:
-- TODO: this section contains lemmas all named like `seminorm_lemma`, -- mimicking e.g. `norm_sub_rev`. Immediately after there is a -- namespace `seminorm`, which contains the definition `seminorm.ball` -- and related lemmas named `seminorm.property_ball`, mimicking -- `metric.ball` and `metric.bounded_ball`. What is the -- convention/rationale?
Can someone explain?
My guess is that historically we used more X_Y
names, and have trended over time to putting declarations in namespaces. I prefer this.
Of course, if putting a declaration in a namespace enables projection notation, one should essentially always do this.
The naming guide doesn't seem to be prescriptive on this issue. It does say "We generally restrict the use of dots to inductive types. So, for example, we use: dvd_intro
...
"
It seems that the naming guide should be updated.
One thing to consider is whether the namespace will or should be open
ed. If the names become ambiguous (to a human) without the namespace, they should probably be protected
or written with underscore instead
I generally find the more deeply nested parts of mathlib more difficult to use, so I try to keep the namespaces rather flat, but that's just my preference. In particular, once you have enough to globally pick out the area of maths you don't need to namespace anymore; it's not a file hierarchy so things like algebra.linear_algebra.vector_space.basis
are completely unnecessary (to give an exaggerated example)
Hi, I've just gotten back to working on this — sorry for the absence, and thanks for looking at it!
Thinking about what's been said above about whether names become ambiguous, I feel like it might actually make sense to keep the names as they are now: I think the lemmas will become confusing if they were without their underscore-prefix; on the other hand seminorm.ball
has the seminorm as the explicit first argument, so I imagine the user can reasonably open the namespace and write ball p x r
and not be confused. Does that sound reasonable?
(I'm currently making an effort to get this up to date and into a state that's ready for review / merging, but mathlib has moved to 3.5.1 in the meantime and I will first have to spend some time building lean again, so it might be a few days before the WIP label can be gone. Hope that's okay & sorry for the delay.)
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


aria2 recognizes the following environment variables.
http_proxy [http://][USER:PASSWORD@]HOST[:PORT]
--http-proxy
overrides this value.https_proxy [http://][USER:PASSWORD@]HOST[:PORT]
--https-proxy
overrides this value.ftp_proxy [http://][USER:PASSWORD@]HOST[:PORT]
--ftp-proxy
overrides this value.all_proxy [http://][USER:PASSWORD@]HOST[:PORT]
--all-proxy
overrides this value.注意
Although aria2 accepts ftp://
and https://
scheme in proxy URI, it
simply assumes that http://
is specified and does not change its
behavior based on the specified scheme.
no_proxy [DOMAIN,...]
--no-proxy
overrides this value.


We would love to work on an ios app but right now we can't. I'm sorry and we hope this will change soon. You can check this page to see if anything changes. Or follow us on twitter 🐦
We would love to work on an ios app but right now we can't. I'm sorry and we hope this will change soon. You can check this page to see if anything changes. Or follow us on twitter 🐦


DIGIT Utility
Digit41 is an entirely open source project in which anyone can use the code and token to suit their needs.
--- layout: default title: DIGIT Utility permalink: /digit-utility ---
Digit41 is an entirely open source project in which anyone can use the code and token to suit their needs.
DIGIT is an ERC-20 token used to access and power decentralized services in the Digit41 Network and application.
Digit41 is an entirely open source project in which anyone can use the code and token to suit their needs.
With DIGIT, we create a Users as Stakeholders network, allowing the behaviour of the network and its software, to become aligned with the interests of its Users.
Access your favourite DApps or find
new ones by DDir without leaving
your wallet.
Access your favourite DApps or find
new ones by DDir without leaving
your wallet.
Create your own DUser on the
blockchain, the DUser is a
permanent ENS subdomain that can
be searched in any Wallets and
Web3 Browsers to find out your
profile information such as wallet
addresses, avatar, Twitter and Github.
Registering a new [yourname].digit41.eth
costs 1 DIGIT with no expiration time.


Case study
How European Social Fund support helped young apprentices get globally recognised industry qualifications.
| Location | Cornwall |
| ESF funding | ESF Convergence and Skills Funding Agency |
| ESF target group | Young people |
The first group of aeronautical engineering apprentices to be trained in conjunction with Newquay Cornwall Airport have graduated after a 2-year programme. They all now work with aviation maintenance companies in Cornwall and elsewhere in the UK and Europe.
Resource Group provided the training, working with its aviation maintenance training division LRTT Ltd at their engineering training centre at Cotswold Airport in Gloucestershire.
The core apprenticeship was funded through the SEMTA National Apprenticeship Agreement with the Skills Funding Agency with additional support from ESF Convergence. The total ESF funding was £164,000 which included the travel and accommodation costs for the participants’ stay at the Cotswolds Airport training centre.
LRTT is an approved maintenance training organisation and their young apprentices have received globally recognised industry qualifications. After the 2-year programme, the apprentices completed an advanced apprenticeship in aeronautical engineering and are now qualified to certify maintenance tasks on commercial aircraft.
The apprenticeship programme started with 23 days’ on site training at Newquay Cornwall Airport. The remainder of the 8 months training took place at LRTT’s purpose-built, state of the art training centre at Cotswold Airport. This was followed by 16 months’ vocational work experience coordinated by Resource Group.
Resource Group has worked with large aircraft maintenance organisations across Europe for the past 20 years and is well positioned to support Newquay Cornwall Airport in the placement of apprentices within these maintenance organisations.
The young people were recruited through an open event at Kingsley Village, Cornwall at which Resource Group and LRTT explained their apprenticeship scheme. Those interested were invited to submit their CVs and successful candidates were selected from a shortlist following interviews and a series of tests.
One of the qualified apprentices, Peter Jardine, is employed by Resource Group and works at British International Helicopters, based at Newquay Cornwall Airport. He said:
An apprenticeship in aircraft engineering will be hard work but the rewards of a career that you enjoy will be worth it. I wanted an apprenticeship as it is the best form of training in that you learn whilst you work, gain qualifications and get paid to do so.
Compared to school friends I think that my career has progressed equally as well as those who are self-employed and those who have graduate level jobs.
Mirelle Bourne also works for British International Helicopters at Newquay Cornwall Airport. She added:
Aircraft engineering is a very interesting, worthwhile career and an apprenticeship is a fantastic way to get into the industry. This was particularly attractive because it offered a comprehensive introduction to the industry with no previous knowledge or experience required.
My career has been accelerated by this apprenticeship and given me a good start in the industry, and it has been done a in a shorter space of time than attending university, and still giving me scope to progress and enhance my career in the future in many ways.
Mark Yeoman, Head of ESF Convergence Communication, said:
This project, aided by ESF Convergence investment, shows the value of apprenticeships – top quality training guided by real business needs, with great employment and career development opportunities. And the successful partnership between the international firm LRTT and NfET shows the true power of collaborative working.
Newquay for Excellence Training (NFET) provided the link between LRTT Ltd and ESF Convergence. Gill Moore, Director, said:
We were delighted to have played a part in bringing together the expertise and funding, in order to offer this fantastic opportunity to local young people. With the ongoing Aero Hub developments at Newquay Cornwall Airport, we hope that other organisations will follow our lead and recognise that strong partnerships have mutual benefits, but more importantly they can really change lives.
Ian Fitzpatrick, Managing Director of LRTT said:
I’m very pleased to announce another highly capable group of individuals have completed our apprenticeship scheme and will become the next generation of engineers to bolster the industry’s workforce. The government’s drive towards apprenticeship schemes means young people are choosing to train with LRTT rather than attending costly university courses. We’re proud to offer a recognisable alternative and I wish all of these recent graduates the very best in their new careers.
Richard Thomasson, Airport Operations Manager, Newquay Cornwall Airport, said:
We’re delighted to have been part of this project further enhancing the wider benefits of the Aerohub by giving the platform for Cornwall’s future generation to work within the aerospace sector. We’re delighted to note the achievements of the apprentices and wish them the very best for the future.
Read more about the European Social Fund 2007 to 2013
Published: 9 May 2014


Show changelog Hide changelog | Source code & bug tracker | Rate in Chrome Web Store
Page to open when icon is clicked:
Auto-close notification after seconds (0 to keep open)
Update from server every minutes if tab is closed (minimum 5)
(secure HTTPS must be disabled inThe Old Reader settings)
(Chrome Sync must be enabled for extensions)


Before the European Election, Facebook and other companies promised to the EU Commision they will self-regulate to reduce the possibility of electoral exploits. Journalist obtain and published the communication between the European Commission and Facebook, when the institution demanded clarifiction on the impact of algorithms. The company claim to offer more transparency by introducing a new tool, called: Why am I seeing this post? We argue this answer do not provide more control, nor more transparency, here's why:


User Info
Name: {username}
Age: {age}
Biography: {bio}
Favorite Food: {food}
Location (State): {local}
Edit Info


|
University of Washington
(2013 - 2015)
Bach of Comp Science
|
|
CSE 311 - Foundations of Computing I
|
Logic, Proofs, Mod Arithmetic, Graphs, State machines
|
|
CSE 312 - Foundations of Computing II
|
Probability, Variance, Distributions, CLT, MLE
|
|
CSE 331 - Software Design and Impl
|
Java, Error Handling, Testing, Documentation, Design Patterns
|
|
CSE 332 - Data Abstractions
|
Big-O, Sorting, Hashing, Trees, Multi-Threading
|
|
CSE 333 - Systems Programming
|
C/C++, Pointers, Mem Mgmt, STL, Threads, Network Protocols
|
|
CSE 341 - Programming Languages
|
SML/Racket/Ruby, Environment scopes, Recursion
|
|
CSE 351 - Hardware-Software Interface
|
Memory, Cache, Addressing, x86-64 Assembly, Stack, Structures
|
|
CSE 352 - Hardware Design and Impl
|
CMOS gates, Adders, Multiplexers, Verilog, Processor Design
|
|
CSE 390 - Linux Bash
|
Shell Scripting, Permissions, Remote access, Reg Expressions
|
|
CSE 440 - Human Computer Interface
|
Prototyping, Design research, Mockup, Critique, Usability
|
|
CSE 446 - Machine Learning
|
Decision Trees, Bayesian Learning, Neural networks, SVM
|
|
CSE 451 - Operating Systems
|
Kernel, Concurrency, Scheduling, Virtual memory, File systems
|
|
CSE 466 - Embedded Systems
|
ARM Cortex, SPI, I2C, ADC, DAC, DMA, Interupts, Digital Filters,
|
|
CSE 484 - Computer Security
|
Buffer overflow attacks, Crypto-Attacks, Certificates, Cryptography
|
|
CSE 205 - Analog Signal Conditioning
|
Power equations, Op-Amps, Analog Filters, Nyquist, Signal Sampling
|
|
AMATH 201 - Scientific Computing
|
Matlab, Eigens, Iterative Methods, Curve fitting, Diff Eq, FFT, SVD
|
|
MATH 308 - Matrix Algebra
|
Linear Systems, Eigens, Base, Dimension, Projections, Least square
|
|
|
|
Bellevue College
(2010 - 2013)
Assoc in Arts and Sciences
|
|
MATH 151 - Calculus I
|
Limits, Derivatives, Integrals
|
|
MATH 152 - Calculus II
|
Integration, Fundamental Theorem, Application, Antiderivatives
|
|
MATH 153 - Calculus III
|
Sequences, Series, Analytic Geometry, Vectors
|
|
MATH 154 - Calculus IV
|
Multi-variable Integrals, 3D surfaces, Curvature
|
|
CS 210 - Fundamentals of CS I
|
Java, Programming Structure, Design, Style
|
|
CS 211 - Fundamentals of CS II
|
Java, Inheritance, Data Types, GUI, Error Handling
|
|
PHYS 121 - Engineering Physics I
|
Motion, Work, Energy, Gravity, Rotation, Kinematics
|
|
PHYS 122 - Engineering Physics II
|
Electrostatics, Current, Magnetism, Maxwell equations
|
|
ENGL 235 - Technical Writing
|
Technical Writing Style, Diagrams, Flow of Work
|
|
ART 154 - Digital Photography
|
Digital Cameras, Photoshop, Layers, Masks, Transforms
|
|
CMST 210 - Interpersonal Commun.
|
Language, Non-verbal, Perception, Conflict Management
|
|


Safe Advertising
All advertising is strictly family-safe with no popups. Anti-virus and malware servers are scanning the adverts 24/7.
Advertisers
Pay for real visitors on your website, our comprehensive fraud filters ensures high quality traffic. Campaigns start at only $5.
Low Minimum Payout
You are required to earn only $5 before you will be paid. We can pay all users via their PayPal or Payoneer.
Statistics
Detailed statistics are provided per link. Allowing you at a glance see the amount you've earned, referring URLs and countries.
API
Easy-to-use API that allows your website, widget or app to create an AdF.ly link instantly and securely.
Website Scripts
We offer a selection of simple to install scripts, now you can easily get paid for every visitor who comes to your website.


---
layout: page
title: Game Design Projects
---
Note: These projects are provided AS-IS and the authors (and the professor) disclaims all warranties with regard to this software including all implied warranties of merchantability and fitness. Basically, use at your own risk.
Fall 2019:
These projects run in your browser, but require javascript to be enabled.
Blob Witch - Mason Baird, Jon Gorel, Matt Manoly, Derek Parkinson
Shark Girl and Lava Boy - Christopher Brown, Renae Rohde, Patrick Romero, Maddie White
The Next Experiment - Destiny Adams, Carly Good, Zoe Lambert, Jim Toledo
Nightmare's End - Ali Yar Khan, Hannah Roe, Zach Taylor, Whitney Trovinger
Octopus Game - Mark McGrail, Ned Sherman, Nick True, Derek Windahl
Fall 2017:
These projects run in your browser, but require javascript to be enabled.
Carnie Castle - Perry Gordon, Tyler Jones, Alex Proctor, Harrison Ratcliffe
Monopoly Tower - Jerome Burley, Tommie Day, Olivia Lyons, Micah Rubin
Negation - Kyle Brewington, Josh Cheseman, Sinclair Fuh, Brendan Rollins
Viral - Madeleine Boies, John DeMey, Drew Merryman, Michael Russell, Michael von der Lippe


See how the winds are affecting bushfire conditions around the country
by https://www.abc.net.au/news/colin-gourlay/5359172Story Lab By Colin Gourlay, Simon Elvery, Ben Spraggon, and Joshua Byrd
Strong and changeable winds can have a huge impact on how bushfires start and spread and how firefighters are able to try and contain them. See what the winds are doing now in the areas around the country that are being impacted by bushfires.
This map only shows wind — for the latest updates on bushfires, visit these websites: QLD RFS, NSW RFS and Emergency WA.
Queensland
New South Wales
Western Australia
So what am I looking at?
Each arrow represents a reading from a weather station. The length of the arrow and the colour represents the wind speed, and the arrow flows in the direction of the wind.
These observations have been taken from the Bureau of Meteorology's real-time system. Further information can be found at About Latest Weather Observations.


The authorization repository readme
file contains documentation on the key concepts around authorization in the Owin Framework. It is strongly
recommended that you read it before using this assembly.
This package provides an implementation of the IAuthorizationData interface.
To make this implementation available to other packages that need this interface you just need to add
the NuGet package to the project - that's it, there is nothing else to do.
This package persists authorization data using the Prius ORM. You will need to create a database
and configure Prius within your application for this to work. The source code for this project
includes an SQL folder containing the SQL scrips you need to create the database.
Default Configuration
The configuration below is the configuration you will get by default if you do not provide
a configuration for this package.
{
"owinFramework": {
"authorization": {
"data": {
"priusMasterRepository": "Authorization",
"priusReadonlyReplicaRepository": "Authorization",
"defaultGroup": "sys.users",
"administratorGroup": "sys.admins",
"anonymousGroup": "",
}
}
}
}
Configuration notes
-
The priusMasterRepository is the name of a repository configured within Prius. This repository
will be used for all queries that modify data.
-
The priusReadonlyReplicaRepository is the name of a repository configured within Prius. This repository
will be used for all queries that do not modify data.
-
The defaultGroup is the code name of an authorization group whose permissions
should be assigned to any user that is identified but was not specifically assigned to any group. This
is typically for public users who have created an account on your website.
-
The administratorGroup is the code name of an authorization group whose
users can do anything in the system. All permission checking is bypassed for these users.
-
The anonymousGroup is the code name of an authorization group whose
permissions apply to users that were not identified. This is typically users who have not
logged into your website.
Related Projects


I created the image using Adobe Illustrator. I first created a good focal point and an interesting crop on my work. After I have placed everything where I wanted, I started to breakdown my illustrations in to simplified shapes. After I simplified the shapes, I started to add in line work to provide more details on some of my shapes, for example, the body of the “aliens” and the body of the telescope. I then started to add colors - my color palette for my illustration is blue and orange because I felt that the blue portrays the idea of science and space very well and not only does the orange provide a great contrast against the blue but also portrays a great atmosphere for an “alien planet”. I also made sure that the shades of color I have chosen are more darker because most of Jeffrey Pelo’s color palette are dark shades of different colors with added neutral colors to balance it out.
I used Jeffrey Pelo’s illustrations as my guide to follow his style. I made sure to use great curves and use gestalt patterns. All my shapes were strategically placed to flow seamlessly from one to the other and they were also specifically aligned. All of the shapes are in two dimensions but I have added an extra value to the shapes of the aliens to provide depth just like Jeffrey Pelo has done for the shapes of the animals and humans. The hands on the aliens are big but the feet are small. I have also added a grunge texture on my background shapes to provide that added depth and value, just as Jeffrey Pelo has in his work.


Windows
Startup Programs and Services: To configure startup programs and services, run "msconfig
".
Snipping Tool: Screen-capture tool which is great for snipping a portion of screen, available in Windows Vista/7. It is a replacement for the print-screen key, which you have little controls.
Quick Launch Bar: I personally find the Quick-launch Bar (next to the START button) useful.
To add (or restore) quick-launch bar: Right-click on an open area of the taskbar ⇒ Uncheck "Lock the taskbar" ⇒
Again, Right-click on an open area of the taskbar and choose "Toolbars", "New Toolbar". ⇒ In the Folder box: Paste the following path:
"%appdata%\Microsoft\Internet Explorer\Quick Launch
" and click "Select Folder" ⇒ Right-click on the "Quick Launch" dotted lines and uncheck “Show Text” and “Show Title” ⇒ Move it to your desired location ⇒ Check the “Lock the taskbar”.
How to Remove File Associations in Windows 7: Launch Register Editor (regedit
), look for key "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts
". Find and delete the association.
Windows' Registry: [TODO]
Backing Up Your System: [TODO]
"shell:folder-name"
Starting from Windows 7, you can issue shell command to open certain special folders (on explorer) directly from the start menu, or run dialog box, in the form:
shell:folder-name // or explorer shell:folder-name // This form can be issued from CMD shell
The frequently-used folders are:
shell:startup
// Program startup folder for current user
// @ C:\Users\puser\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
shell:common startup
// Program startup folder for all users
// @ C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
shell:ControlPanelFolder
// Controol Panel
shell:desktop
// Desktop for the current user @ "C:\Users\User-Name\Desktop"
shell:ProgramFiles
// Program Files @ "C:\Program Files"
shell:recent
// Recent items @ "C:\Users\User-Name\AppData\Roaming\Microsoft\Windows\Recent"
// ... more ...
The folder-name is NOT case sensitive (as the Windows common convention). The folder names are listed at registry location: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\FolderDescriptions
.
Reference: "Windows 7: Shell Command" @ http://www.sevenforums.com/tutorials/4941-shell-command.html.
Where is the Program Start up folder for Windows 8? See above note.
"run" Command
Starting from Windows 7, you can issue many commands directly from "run" dialog box, or CMD shell. The common-used are:
// Control Panel Control Panel: control Devices and Printers: control printers Folders Options: control folders Administrative Tools: control admintools Task Scheduler: control schedtasks System Properties: control sysdm.cpl // Administrative Group Policy Editor: gpedit.msc Computer Management: compmgmt.msc Event Viewer: eventvwr.msc Local Users and Groups: lusrmgr.msc Performance Monitor: perfmon.msc Device Manager: devmgmt.msc Disk Management: diskmgmt.msc Services: services.msc Windows Management Infrastructure: wmimgmt.msc Registry Editor: regedit or regedt32 Microsoft Management Console: mmc Resoure Monitor: resmon System Configuration Utility: msconfig Task Manager: taskmgr // Programs Calculator: calc Command Prompt: cmd Notepad: notepad Snipping Tool: snippingtool Windows Explorer: explorer (Windows+E) Internet Explorer: iexplore Windows PowerShell: powershell Logs out of Windows: logoff
Note: The ".msc
" files are knwon as It is the Microsoft Management Console Snap-in Control File, like "services.msc
" (Local Services), "devmgmt.msc
" (Device Manager). They are opened using Microsoft Management Console ("mmc.exe
").
Reference: "A List of Run Commands for Windows 7" @ http://www.sevenforums.com/tutorials/5966-run-commands-windows-7-a.html.
CMD (Command Prompt) Shortcut Keys
CMD is such as important tool for programmers. It is critical to know the short-cut keys.
// Command History F3: retrieve last commmand Up/Down (or F5): retrieve previous commands from the history F7: list previous commands with command numbers Alt-F7: clear command history F8: autofill from the previous commands // Miscellaneous ESC: erase current line Tab: Autofills matching file or folder names in current directory. Repeat to cycle through all matching names in current directory. // Others F9: Prompts you to "Enter command number" from command history. F2: Prompts you to copy characters from previously ran command(??)
Windows Logo Shortcut Keys
Windows Key: opens/closes START menu Windows + D: Desktop (toggle) Windows + E (or explorer): Explorer Windows + F: Find (Search) Windows + L: Locks current Account Windows + P: Projector Windows + R: Run Windows + T: Toggles thru programs in taskbar. Press Enter to open the selected Ctrl + Windows + T: same as above, but backward Windows + Left|Right Arrow: Docks/undocks current active window to the left/right side of the screen Windows + Up|Down Arrow: maximum/restore current active window Windows + +|-: zoom in/out (via Magnifier) Windows + =: opens Magnifier
Launch "Local Services"
Type "services.msc
" in run or from CMD shell.
How to run as program as Administrator (Command "runas")?
runas /user:administor program-name // From "run" or "cmd" // For example, runas /user:root cmd
What is the "Power Shell"?
[TODO]
Process Explorer and Process Monitor
Download from:
- Process Explorer: http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
- Process Monitor: http://technet.microsoft.com/en-sg/sysinternals/bb896645.aspx
[TODO]
Windows Maintenance
Paging: Control Panel ⇒ System ⇒ Advanced System settings ⇒ Advanced ⇒ Performance ⇒ Advanced ⇒ VM ⇒ twice the RAM size.
Defrag Hard Disk: select drive (from explorer) ⇒ right-click ⇒ properties.
Rebuild Index: Control Panel ⇒ Indexing option.
Repair OS and System Files:
// Launch cmd (admin) > chkdsk /r/f c: // Check Disk // /r: (recover) Locates bad sectors and recovers readable information // /f: (fix) Fixes errors on the disk > dism /online /cleanup-image /restorehealth // Check for component store corruption, // records the corruption to the log file, // and FIXES (/restorehealth) the image corruption // using Windows Update (/online). > sfc /scannow // /scannow: Scans the integrity of all protected Windows system files and // replaces incorrect corrupted, changed/modified, or damaged versions // with the correct versions if possible.
Notes:
- DISM (Deployment Image Servicing and Management) is a command-line tool that can be used to service a Windows image or to prepare a Windows Preinstallation Environment (Windows PE) image (for Windows 8).
- SFC (System File Checker).
Word
Selecting Columns of Texts: Hold the "alt
" key, you can use mouse to select columns of texts.
Format Painter: One of the most useful feature for formatting your word documents. Suppose that you wish to apply the same format of a paragraph or a character to another part of the document. Select the texts, push "Format Painter" (at the leftmost "Home" menu), and paste over the texts to be formatted. This is similar to copy/paste but copying the format instead of texts. The "Format Painter" icon looks like copy too and is usually group together with cut/copy/paste icons.
Table Formula: You can use formula such as sum for WinWord's table just like excel. Under "Table Tools" ⇒ Layout ⇒ Data ⇒ Fomula. The columns are named a, b, c, ... from left to right. The rows are named 1, 2, 3, ... from top to bottom. The address of the top-left table cell is a1. For example, sum(a1,a5)
returns the sum of cell a1 and a5; sum(a1:b3)
returns the sum of cells a1, a2, a3, b1, b2 and b3.
Sytles and Templates: [TODO]
FireFox
How to locate your Firefox Profile Folder & Technical Information?
From "Firefox" icon ⇒ Help ⇒ Troubleshooting Information ⇒ Profile folder ⇒ Show Folder.
The profile folder can be referenced via environment variable %APPDATA%
, i.e., "%APPDATA%\Mozilla\Firefox\Profiles\xxxxxx.default
".
Spell Check on Form Input Data?
Firefox support on-the-fly spell check on form data input (but form data input only). Right-click on input ⇒ Check Spelling. You can also choose the language dictionary.
To enable Spell Check, goto "Options" ⇒ Advanced ⇒ General ⇒ Browsing ⇒ Check "Check my spelling as I type".
Where is the Psrsonal Dictionary for Spell Check?
The personal dictionary is kept in "persdict.dat
" in the profile folder, with one customed word per line.
about:xxx
- Issue URL "
about:config
" to view the firefox configuration. - Issue URL "
about:cache
" to view the cache. - Issue URL "
about:plugins
" to view the plugins.
How to set the default page of new tab to blank page?
Type "about:config
". Search for "browser.newtab.url
" preference and change the url from "about:newtab
" to "about:blank
". Alternately, you can change it to "about:home
" for the Firefox Google home page, or type in your preferred home page.
Adobe Acrobat
How to find out the font used in a PDF document?
- Open the PDF document using Adobe Acrobat Professional.
- Goto "Tools" menu ⇒ Advanced Editing ⇒ Select "TouchUp Text Tool" ⇒ Select a block of text and highlight selected word ⇒ Right-click to choose "Properties" ⇒ Information on the font will be displayed.
To enable smooth scrolling: View ⇒ Page Display ⇒ Enable Scrolling.
Dreamweaver
Creating a Code Snippet:
- Show the "Snippets" panel: From "Window" menu ⇒ "Snippets" (or "Snippets" tab on the right panel).
- Create a folder for your snippets: right-click on "Name" panel ⇒ New Folder ⇒
MySnippets
. - Create your snippet: Let us create a snippet to underline selected texts by wrapping a style

and
around the selected texts. Right-click on "Name" panel ⇒ "New Snippet" ⇒ In "Name" field, enter a name, e.g., underline ⇒ In "Snippet Type", you may choose "Wrap selection" (for applying markup to selected texts) or "Insert block" (for inserting codes/texts). For our example, we select "Wrap selection" ⇒ In "Insert Before", enter
⇒ In "Insert After", enter
⇒ OK. Move the snippet to your snippet folderMySnippets
. - Assign keyboard shortcut to your snippet: Right-click on the snippet name ⇒ "Edit Keyboard Shortcuts" ⇒ In "Commands", choose "Snippet" ⇒ Press the desired Key ⇒ Click "Change" to override the existing keyboard shortcut.
- I personably like to configure Ctrl-1, Ctrl-2,... for my common tasks. They were pre-configured for

,

,... To remove the pre-configuration, select "Edit" ⇒ "Keyboard Shortcuts..." ⇒ In "Commands", select "Menu Commands" ⇒ Format ⇒ Paragraph format ⇒ Heading 1 ⇒ delete.
Customizing Keyword Shortcuts: Use "Edit" ⇒ "Keyboard Shortcuts".
Example: To remove "ctrl-3" for "Format, Paragraph Format, Heading 3": "Edit" ⇒ "Keyboard Shortcuts" ⇒ "Menu Commands" ⇒ "Format" ⇒ "Heading 3" ⇒ Select the shortcut key ⇒ Click "-" to remove.
Display Orphaned Files and Broken Files: From "Site" menu ⇒ "Advanced" ⇒ "Recreate Site Cache" ⇒ "Check Links Sitewide" ⇒ In the output, choose "Show Orphaned Files" to display the orphaned files; choose "Show Broken Links" to display broken links.
Creating a Local Site and Synchronize with the Server:
- From "Site" menu ⇒ "New Site..." ⇒ Choose the "Advanced" tab.
- Fill in the "local Info"
- Fill in the "Remote Info" (the server)
- You can also use menu "Manage Site..." to configure a Dreamweaver site.
- To transfer local site to the server, From "Files" ⇒ "Connect to remote host" ⇒ "Synchronize".
How to Exclude some Files/Folders from Synchronize with Remote Site
Right-click on the file/folder in the "Files" menu ⇒ Cloaking ⇒ Cloak.
Split Windows Horizontally (for CS6)
Choose "View" menu, uncheck "Split Vertically".
Looking for Tips
I use dreamweaver to write this web site. BUT, I am certainly not a dreamweaver power user. I am still looking for answers for these questions. Let me know if you have a solution.
- How to do on-the-fly spell and grammar check, with errors highlighted while typing, just like Word?
- How to compress and optimal images for web display to save the bandwidth, just like Powerpoint? I am also looking for a lightweight image editor that can do the simple and basic image operations such as cropping. Any suggestion?
- What is the easier way to replace
'>'
,'<'
,'"'
and'&'
, with their escape sequences?
AcuStudio-Conference 6 for Video Recording
You need to run "as administrator" for recording video (to access the devices?!); but you can run as a normal user for editing and publishing video.
One-touch Recording
- Setting up:
- Start acuStudio-Conference ⇒ Options ⇒ Settings ⇒ Audio/Video Settings (under Recording mode) ⇒ Check "Single Video Input".
- Select "Single Video Input" (under Audio/Video Settings) ⇒ Under "Video Source", check "Screen" and choose "Screen Size" ⇒ Under "Audio Source", check "Audio device".
- Select "One-touch recording" (under "Recording Mode"), check "Prompt to pause recording" and "Prompt to stop recording" ⇒ Take note of the hot-key: F6 for Start/Pause, F7 for Stop.
- To enable one-touch recording, select "Options" menu ⇒ click "One-touch recording".
- Recording: Open the ppt slide in full-screen. Press F6 to start recording. A message appears indicating the start of recording. Press F6 again to pause. Press F7 to stop recording.
Normal Recording
(I prefer One-touch Recording. There is no reason to use the normal recording mode?!)
Select the Normal Recording mode: From "Options" menu ⇒ click "Normal Recording".
To start recording: Select "AcuSTUDIO" menu ⇒ click "QuickStart Recording" ⇒ Check "Video" and select "Screen Director..." ⇒ In "Screen Size", select "Screen Size" ⇒ Press the OK button ⇒ To start recording, push the record (red) button ⇒ To stop recording, press Shift-Escape.
Editing Video
Open the video file (.acm) to be edited ⇒ Play the video by pushing the "Preview" button ⇒ Note down the "start time" and "end time" of the video segment to be trimmed away.
Play the video again ⇒ Push the "Trim" button to start trimming, and "Trim" button again to stop trimming ⇒ In the trimming dialog, adjust the start time and end time for trimming ⇒ push the OK button.
Publishing the Video to Blackboard
- Login to the Blackboard and select the course ⇒ Tools ⇒ AcuStudio ⇒ AcuStudio starts.
- In AcuStudio, open the video file to be published ⇒ File ⇒ Publish ⇒ Network ⇒ Select the destination folder.
- In Blackboard, go to the destination folder, "edit" the video to make the video available.
Blackboard
Create an Assignment (Instructor)
In "Assignment" (or any area), Click "Assignments" ⇒ "Assignment". You can provide the description or attach a file. Set the "Point Possible" and "Due Date".
Submit an Assignment (Students)
Prepare the submission in one single file, e.g., Zip-up all source code (.java
), or a pdf file.
Go to the "Assignment", open the appropriate assignment ⇒ "Attach" the file ⇒ "Submit". Wait for the online acknowledgement.
Grading Assignment (Instructor)
[TODO]


Add Logo
Bill to:
INVOICE
Date:
Payment Terms:
Due Date:
Balance Due:
$
15.00
Item
Quantity
Unit Price
Amount
0
$
New Item
Subtotal:
50
$
Tax(
$
/%):
$
%
Discount(
$
/%):
$
%
Shipping(
$
):
Total:
50
$
Amount Paid(
$
):
Notes:
Terms:
Currency:
Send Invoice
Download Invoice
File Type:
PDF
PNG
HTML
Download
To:
From:
Subject:
Invoice from
Message:
Invoice Attached
(CAPTCHA HERE)
Send!


Developers
Behind the scenes
Developer 1
Coding
Digital Portfolio
Developer 2
Coding
Digital Portfolio
Developer 3
Coding
Digital Portfolio
Developer 4
Coding
Digital Portfolio
Developer 5
Coding
Digital Portfolio


☰ Menu
...
Gruha
Finding the best homes for you
About
Gruha is an attempt to make property searching easy and efficient in times, when we are able to find only a handful
of homes on the internet, and are not so satisfied with the options available. Not a conventional place, where you will
deal with traditional brokers and loose excess money in commissions. In the cities of our services, we will try to cover each
and every place, conduct surveys on the interntional guidlines, and list down the best places, to help you find your ideal homes.
The Concept
Searching Algorithms are heavily used today in all types of websites and mobile applications, due to the increasing demand
and heavy use of search features. It becomes easy for us to find what we require at that point of time. Binary Searching Algorithm
and Hash Functions are such important concepts which form the base of this. These can be performed as both arrays and trees(Binary Search Tree),
which also points to the concept of graphs.
In this website too, Binary Search Algorithm will be used in the searching of values by price. In the categories below, you will get
directed to individual pages. There, you will need to enter the price expected in the search bar. The instructions are given in the page regarding
entering the values, with the range available.


What happens if one of the scores is an order of magnitude higher than the rest? What if one is zero? Try it
Try removing the true from the watch function above and see what happens. Why does this happen? To learn more read about the objectEquality parameter of the $watch function.