This page contains a series of web audio benchmark tests. The tests are run in an OfflineAudioContext, where an AudioBufferSourceNode is used as baseline to feed data into the test. To get more accurate results, each test is run multiple times and the min duration is chosen (here's why). The results are given in microseconds per second of processed audio data and node, so lower is faster. A value of 1000000 means realtime processing speed.
For accurate results:
| TEST | μs | MIN | Q1 | MEDIAN | Q3 | MAX | MEAN | STDDEV |
|---|


Incremental Refresh Enabled Example Connector
Ready to generate some data for incremental refreshing?
Enter in the number of rows to be added incrementally in the box below.
To add more rows of data you will need to ):
Select Tableau's data menu
Select your data source name
Then select incremental refresh from extract menu.
Also we recommend that you also use the Simulator.html to load this sample. In the simulator you can hit the incremental refresh button.
Number of row to add on every Refresh:


Have you enabled RCS chat in Google Messages?
Source: Joe Maring / Android Central
Yesterday, November 14, was an exciting day for the state of messaging on Android. At long last, Google flipped the switch and began rolling out its RCS chat functionality for everyone in the U.S. — regardless of what phone or carrier you have.
RCS brings a heap of features to the Google Messages app, including typing indicators, better group chats, high-quality photo sharing, and more.
Looking through the AC forums, its rollout has a lot of people talking.
msm0511 11-14-2019 12:31 PM I've been using the hack that enabled it, but this is great news! Reply
gernerttl 11-14-2019 06:02 PM Holy RCS Batman! I'm RCS enabled! I opted into the Google Messages Beta program and installed the beta version. When I opened it, it enabled RCS. P.S. I'm Verizon with the Verizon Note 10+ 5G. Reply
iFortWorth 11-14-2019 12:20 PM And it should be noted it's a rollout. But Google is starting this immediately. Reply
Now, we want to hear from you! Have you enabled RCS chat in Google Messages?


Simon Says
H I G H S C O R E S
Name
Score
1.
2.
3.
4.
5.
Close
Reset
SIMON SAYS
Version 1.1
Simon Says
Copyright © 2013-2016
Esdras Lopez
All rights reserved.
TURN INFO
MOVES


| Comments: |
Rage states: Low = 1-24, Medium = 25-49, High = 50
Many rage states and charm populations still missing Darkest Chocolate Bunny proc rate currently set to 33% |
| Comments: | Please report inaccurate minimum luck values here |
| Comments: | Labyrinth/Minotaur/Treasure Seeker Base & Compass Magnet Charm proc rates currently set to 50% |
| Comments: | Assumptions that were made when narrowing down populations can be found here |
| Comments: | Please report inaccurate minimum luck values (particularly for Storm Dragons) here |
| Comments: | 'Crew' and 'Ringleaders' sublocations use placeholder attraction data (since each Wanted Poster is different) |
| Comments: |
Salt level is believed to be logarithmically related to Grub & Scarab power values
The current formulas are approximations based on data from tehhowch |
| Comments: |
Many power and eff values are still missing or speculative
Event mouse data is liable to change on a yearly basis Refer to this spreadsheet for the latest research Simple placeholder ARs are used: 100% / number of mice |
| Comments: |
Eff values for Stormsurge, Bruticus, Corkataur, and Emberstone are currently set to 600% (Kalor at 900%)
Please report incorrect minimum luck values or drastically inaccurate catch rates |
| Comments: |
Chesla's Revenge proc rate currently set to 12.5%
Sandcastle Shard Trap not implemented since its Amp% effect depends on current & max levels |
| Comments: | Pirate Crew attraction rates will vary depending on your current manifest |
| Comments: | Eff values for Soldier of the Shade & Bulwark of Ascent are still speculative |
| Comments: |
Speculative Effs: Cloud Miner, Scarlet Revenger, & Wardens
Placeholder ARs: Wardens, Paragons, & Richard |
| ATTENTION: |
Catch Rate and Minimum Luck formulas have been updated Please refer to the README for more information (Sep 2020) |
| Location: | |
| Sublocation: | |
| Floor Type: | |
| Cheese: | |
| Charm: | |
| Empowered: | |
| Ballista Level: | |
| Cannon Level: | |
| Salt Level: | |
| Highest Umbra Floor: | |
| Lucky Golden Shield: | |
| Riftstalker Codex: | |
| Bonus Power %: | |
| Bonus Luck: | |
| Rank: | |
| Denture Filter: | |
| Sample Size Score: |
N/A
|
| Link to this setup |
Number of rows to display (fewer = faster):
50<PHONE_NUMBER> All- Please Wait...
- Loading...


Personal Info
First name:
Last name:
E-Mail Address:
Phone Number:
Sulley Address:
Submit Form
Survey Questions - Which Video Game Character Are You?
My favorite type of food is:
American
Italian
Chinese
Other
My favorite leisure activity is:
Video Games
Watching TV
Outdoor Activities(includes sports)
Other
What I plan to do with my degree:
Something not related to web design
Front End Web Design
Back End Wed Design
Nothing
Submit Survey


interface DksLanguageListener
Droid Kotlin Speech Language Receiver
class DksLanguageReceiver : BroadcastReceiver


final
fields with initializers and transient
fields are considered unnecessary to copy.
Example:
class Point {
private int x;
private int y;
Point(int x, int y) {
this.x = x;
this.y = y;
}
Point(Point other) {
// fields x and y are not initialized
}
}
New in 2018.1


i remember seeing a human archer but i can't find it anymore can someone give me the link or give a quick example of a level 30 one?
Could you be a bit more specific on what you want? Do you want a build with sneak attack? Some spellcasting (maybe with Zen Archery)? Plain ranged Fighter? _________________ Wave upon wave of demented avengers marched cheerfully out of obscurity into the dream...
zen archery would be nice so then i can do cleric/monk type thing. no restrictions other than no red dragon disciple
Fighter/Cleric/CoT zen archery build type can work quite well as well.
i still some help on finding a human archer


SVG in border-image
It's essentially the same graphical symbol in all examples. What varies
is the units used and the way the SVG viewport is set up.
| result |
expected (modolu blurriness) |
viewBox |
SVG has size |
SVG units |
border-image slices |
|
|
"0 0 50 50" |
width="100" height="100" |
percentage |
30% |
|
|
[none] |
width="100" height="100" |
percentage |
30% |
|
|
"0 0 50 50" |
[none] |
percentage |
30% |
|
|
[none] |
[none] |
percentage |
30% |
|
|
"0 0 50 50" |
width="100" height="100" |
[none] |
30% |
|
|
[none] |
width="100" height="100" |
[none] |
30% |
|
|
"0 0 50 50" |
[none] |
[none] |
30% |
|
|
[none] |
[none] |
[none] |
30% |
|
|
"0 0 50 50" |
width="100" height="100" |
percentage |
30 |
|
|
[none] |
width="100" height="100" |
percentage |
30 |
|
|
"0 0 50 50" |
[none] |
percentage |
30 |
|
|
[none] |
[none] |
percentage |
30 |
|
|
"0 0 50 50" |
width="100" height="100" |
[none] |
30 |
|
|
[none] |
width="100" height="100" |
[none] |
30 |
|
|
"0 0 50 50" |
[none] |
[none] |
30 |
|
|
[none] |
[none] |
[none] |
30 |


This document describes the API used for the Reminders webservice example. All URLs below are relative and should be prefixed with http://localhost:8080/reminders/api.
Whenever the service returns a 400 Bad Request, the body of the response will contain one or more error names. See the corresponding domain rules to find out what exactly went wrong. The generic JSON error means that either your input was invalid JSON or you supplied a value of an incorrect type for one of the fields.
This resource is meant to facilitate implementing client-side login by allowing you to check your credentials before attempting to authenticate a request with them.
To do so, use the POST /credentials command.
This command expects input similar to:
{ "username" : "superuser", "password" : "supersecret" }
This command returns 200 OK along with an array of roles for the given username, or 400 Bad Request if the input was invalid.
This command obviously does not require authentication.
"user"
and "administrator"
.To create a new user account, use the POST /users command.
This command expects input similar to:
{ "username" : "superuser", "fullName" : "Super User", "password" : "supersecret", "roles" : ["administrator"] }
Note that fullName
is optional and that roles
is currently ignored and defaults to ["user"]
.
This command returns 201 Created upon success or 400 Bad Request if the input was invalid.
This command currently does not require authentication (anyone can create a user account).
To list all users, use the GET /users command.
This command should return 200 OK with a body similar to:
[ { "username" : "superuser", "fullName" : "Super User" }, { "username" : "someuser", "fullName" : "John Doe" } ]
As fullName
is optional, it will not be included if it is not known.
This command does not require authentication (user information is public).
To request user information, use the GET /users/{username} command.
This command returns 200 OK with a body similar to:
{ "username" : "someuser", "fullName" : "John Doe", "roles" : ["user"] }
or 404 Not Found if there is no user with the given username.
As fullName
is optional, it will not be included if it is not known.
This command does not require authentication (user information is public).
To update user information, use the PUT /users/{username} command.
This command expects input similar to:
{ "fullName" : "Jane Doe", "password" : "evenmoresupersecret", "roles" : ["admin"] }
All fields are optional. You only need to specify those fields you wish to change.
You can clear a user's full name by setting it to null
.
This command returns 204 No Content upon success, 400 Bad Request if the input was invalid or 404 Not Found if there is no user with the given username.
This command requires authentication. You need to supply either admin credentials or credentials for the user with the specified username. This command returns 403 Forbidden if you fail to do so. Only admins are allowed to change roles.
To delete a user account, use the DELETE /users/{username} command.
This command returns 204 No Content upon success or 404 Not Found if there is no user with the given username.
This command requires authentication. You need to supply either admin credentials or credentials for the user with the specified username. This command returns 403 Forbidden if you fail to do so.
To request a profile picture, use the GET /users/{username}/picture command.
This command returns 200 OK and a PNG image or 404 Not Found if there is no user with the given username.
This command does not require authentication (user information is public).
To update a profile picture, use the PUT /users/{username}/picture command.
This command expects a PNG or JPEG image as input.
This command returns 204 No Content upon success, 400 Bad Request if the image was larger than the allowed maximum or 404 Not Found if there is no user with the given username.
This command requires authentication. You need to supply either admin credentials or credentials for the user with the specified username. This command returns 403 Forbidden if you fail to do so.
To delete a profile picture and revert back to the default profile picture, use the DELETE /users/{username}/picture command.
This command returns 204 No Content upon success or 404 Not Found if there is no user with the given username.
This command requires authentication. You need to supply either admin credentials or credentials for the user with the specified username. This command returns 403 Forbidden if you fail to do so.
To create a new list, use the POST /lists command.
This command expects input similar to:
{ "title" : "Work", "owner" : "someuser" }
You usually don't need to specify owner
. If you don't, the username you used for authentication will be used.
This command returns 201 Created upon success or 400 Bad Request if the input was invalid.
This command requires authentication. You need to supply either admin or user credentials. This command returns 403 Forbidden if you fail to do so. Only admins can create lists for users other than themselves.
To get an overview of all your lists, use the GET /lists command.
This command should return 200 OK with a body similar to:
[ { "id" : 1, "title" : "Work", "size" : 3 }, { "id" : 2, "title" : "Notes", "size" : 0 } ]
This command requires authentication. You need to supply either admin or user credentials. This command returns 403 Forbidden if you fail to do so.
To request list information, use the GET /lists/{listid} command.
This command returns 200 OK with a body similar to:
{ "id" : 1, "owner" : "someuser", "title" : "Work", "size" : 3 }
or 404 Not Found if there is no list with the given id.
This command requires authentication. You need to supply either admin credentials or credentials for the user who owns the list. This command returns 403 Forbidden if you fail to do so.
To update list information, use the PUT /lists/{listid} command.
This command expects input similar to:
{ "title" : "Home", "owner" : "someotheruser" }
All fields are optional. You only need to specify those fields you wish to change.
This command returns 204 No Content upon success, 400 Bad Request if the input was invalid or 404 Not Found if there is no list with the given id or if you specified an unknown username.
This command requires authentication. You need to supply either admin credentials or credentials for the user who owns the list. This command returns 403 Forbidden if you fail to do so. Only admins can change the owner of a list.
To delete a list, use the DELETE /lists/{listid} command.
This command returns 204 No Content upon success or 404 Not Found if there is no list with the given id.
This command requires authentication. You need to supply either admin credentials or credentials for the user who owns the list. This command returns 403 Forbidden if you fail to do so.
To request all reminders in a list, use the GET /lists/{listid}/reminders command.
This command returns 200 OK with a body similar to:
[ { "id" : 1, "title" : "Write some code", "date" :<PHONE_NUMBER>000 } ]
or 404 Not Found if there is no list with the given id.
As date
is optional, it will not be included if it is not known.
This command requires authentication. You need to supply either admin credentials or credentials for the user who owns the list. This command returns 403 Forbidden if you fail to do so.
To add a new reminder to a list, use the POST /lists/{listid}/reminders command.
This command expects input similar to:
{ "title" : "Write even more code", "date" :<PHONE_NUMBER>000, "location" : { "latitude" : 50.1, "longitude" : 2.74 } }
The reminder will be added to the list with the given id. Both date
and location
are optional.
This command returns 201 Created upon success, 400 Bad Request if the input was invalid or 404 Not Found if there is no list with the given id.
This command requires authentication. You need to supply either admin credentials or credentials for the user who owns the list. This command returns 403 Forbidden if you fail to do so.
To request reminder information, use the GET /lists/{listid}/reminders/{reminderid} command.
This command returns 200 OK with a body similar to:
{ "id" : 2, "title" : "Write even more code", "date" :<PHONE_NUMBER>000, "location" : { "latitude" : 50.1, "longitude" : 2.74 }, "image" : false }
or 404 Not Found if there is no list with the given id or if there is no reminder with the given id in this list.
As date
and location
are optional, they will not be included if they are not known. image
indicates
whether or not this reminder has an image attached.
This command requires authentication. You need to supply either admin credentials or credentials for the user who owns the list. This command returns 403 Forbidden if you fail to do so.
To update reminder information, use the PUT /lists/{listid}/reminders/{reminderid} command.
This command expects input similar to:
{ "list" : 1, "title" : "Delete some code", "date" :<PHONE_NUMBER>001, "location" : { "latitude" : 50.2, "longitude" : 2.73 } }
All fields are optional. You only need to specify those fields you wish to change. As date
and location
are optional,
they can be cleared by setting them to null
.
This command returns 204 No Content upon success, 400 Bad Request if the input was invalid or 404 Not Found if there is no list with the given id or if there is no reminder with the given id in this list.
This command requires authentication. You need to supply either admin credentials or credentials for the user who owns the list. This command returns 403 Forbidden if you fail to do so. Only admins are allowed to move reminders between lists of different owners.
To delete a reminder, use the DELETE /lists/{listid}/reminders/{reminderid} command.
This command returns 204 No Content upon success or 404 Not Found if there is no list with the given id or if there is no reminder with the given id in this list.
This command requires authentication. You need to supply either admin credentials or credentials for the user who owns the list. This command returns 403 Forbidden if you fail to do so.
To request the image attached to a reminder, use the GET /lists/{listid}/reminders/{reminderid}/image command.
This command returns 200 OK and a JPEG image or 404 Not Found if there is no list with the given id, if there is no reminder with the given id in this list or if this reminder does not have an image attached.
This command requires authentication. You need to supply either admin credentials or credentials for the user who owns the list. This command returns 403 Forbidden if you fail to do so.
To update the image attached to a reminder, use the PUT /lists/{listid}/reminders/{reminderid}/image command.
This command expects JPEG image as input.
This command returns 204 No Content upon success, 400 Bad Request if the image was larger than the allowed maximum or 404 Not Found if there is no list with the given id or if there is no reminder with the given id in this list.
This command requires authentication. You need to supply either admin credentials or credentials for the user who owns the list. This command returns 403 Forbidden if you fail to do so.
To delete the image attached to a reminder, use the DELETE /lists/{listid}/reminders/{reminderid}/image command.
This command returns 204 No Content upon success or 404 Not Found if there is no list with the given id, if there is no reminder with the given id in this list or if this reminder does not have an image attached.
This command requires authentication. You need to supply either admin credentials or credentials for the user who owns the list. This command returns 403 Forbidden if you fail to do so.


Scansite 4 Web Service
- Introduction
- Definitions
- Usage-Example
- Basic Functions
- Scansite Functions
- Scan a protein for motifs using a protein accession
- Scan a protein for motifs using a protein sequence
- Search a sequence database for a Scansite motif
- Search a sequence database for a sequence pattern
- Scan a protein for evolutionary conserved phosphorylation sites
- Predict cellular localization of a protein
- Errors
1. Introduction
Welcome to the Scansite 3 webservice. This page gives you instructions about how to access the most important Scansite 3 features programmatically.
The RESTful interface allows you to run most features using a URI in which you specify the desired parameters. Many parameters that are needed are restricted, which means that only specific values are allowed. Please read the Defintions-section for further information. The results of all services are well-formed and valid XML-files.
[Go to top]2. Definitions
In the following sections some abbreviations and quantifiers will be used for defining parameters. The meaning of these is explained here:
| [ANY] | Any value |
| [DEC] | Numbers with decimal point are allowed |
| [DS] | Only dataSource's nicknames as returned by the dataSources-service are permitted. |
| [M] | Only one motif nickname as returned by the motifDefinitions-service is permitted. |
| [MC] | Only a motif class as returned by the motifClasses-service is permitted. |
| [MS] | Only motif nicknames as returned by the motifDefinitions-service are permitted. If you choose to enter more than one motif nickname, separate the nicks by a tilde ('~'). |
| [NP] | Only a number in the range [0-3] is allowed. |
| [NUM] | Integer value |
| [OC] | Only organism classes as returned by the organismClasses-service are permitted. |
| [P] | A valid protein accession is needed here. You can use the proteinExists-service to find out whether a protein exists in our database. |
| [SEQ] | Only a protein sequence is permitted. |
| [ST] | Only stringency values as returned by the stringencyValues-service are permitted. |
| ? | Optional parameter. If you find this quantifier, the value
of the parameter ( ie. the right-hand-side of the equals-sign '=')
can be left blank. In general, if no quantifiers are given, parameters are mandatory! |
| .. | This web-page's base-URI. All Services will be an
extension of this pages URI (without any index.html). For example,
if this pages URI is https://scansite4.mit.edu/webservice/,
then ".." is equivalent to this URI and the organismClasses-service can be
accessed using this URI: https://scansite4.mit.edu/webservice/organismclasses This convention has been chosen to easier fit the services' URIs described below on your screen. |
3. Usage-Example
In order to make it easier to understand how valid Scansite3-webservice URIs are put together this section will walk you through the steps that are required to run a Scansite feature using the example of scanning a protein (VAV_HUMAN) from a public protein database (SwissProt) for mammalian motifs with the highest possible stringency.
- First of all, decide what you want to do and take a look at the instructions provided below. In the case of this example, the proteinScan-feature is what we want.
- The instructions for how to prepare a service-URI contain a couple of highlighted hyperlinks that refer to definitions above. These variable parts of the URI have to be defined in the next steps. Here, this includes [P], [DS], [MC], [MS]?, and [ST].
- Each of the links you find in service-definitions have
different meanings: Some allow you to enter whatever you want and
they will still work, others allow only input from a specific set
of options which you usually can obtain by using one of the basic webservice functions.
Illustrating this, [P] means that you have to enter a protein accession value that exists in Scansite3's database, and [DS] requires a valid Scansite3 dataSource-definition. But how do you know which proteins and dataSources are valid? This can be achieved by using the dataSources- and proteinExists-function for dataSources and proteins, respectively.
The dataSources-service at ../dataSources returns an XML-file that looks something like this:Knowing that the protein accession you are interested in is from SwissProt, you can go to the next step and check if the accession is available in Scansite3's mirror of SwissProt. For this, run the proteinExists-service with the nickname that is defined for Swissprot (swissprot), and the accession you are interested in (VAV_HUMAN) by accessing ../proteinExists/accession=vav_human/datasourceNickname=swissprot . You will receive a boolean result, containing the value true if the protein exists, and false if it does not exist. Luckily, the protein exists in Scansite3's mirror of Swissprot, and you see:<dataSources> <!-- ... --> <dataSource> <name>SwissProt</name> <nickName>swissprot</nickName> <!-- ... --> </dataSource> <!-- ... --> </dataSources>
<booleanResult> <isSuccess>true</isSuccess> </booleanResult>
The motifClasses- (for [MC]), stringencyValues- ([ST]), and motifDefinitions-services ([MS]) all work in a similar manner. Please note that the question mark after [MS] indicates that this parameter is optional. This means that if you want to look for all motifs of a given motif class, just do not enter any value for[MS]. If you want to check for a set of specific motifs, use the motif-nicknames (as returned by the motifDefinitions-service) you are interested in, separated by tildes (~), e.g. Lck_Kin~Shc_SH2~Cdc2_Kin .
Following through with these instructions, we end up with the following values for our wildcards:WildCard Value [P] VAV_HUMAN [DS] swissprot [MC] MAMMALIAN [MS]? (nothing, we want to look for all mammalian motifs) [ST] High - Having gathered all the information in the preceding step, you are now ready to run the actual proteinScan-service. Putting together this pieces of information we create the URI ../proteinScan/accession=VAV_HUMAN/datasourceNickname=swissprot/motifClass=MAMMALIAN/motifNicknames=/stringencyValue=High .
- The result is an XML-file like this:
<proteinScanResult> <predictedSite> <motifName>Casein Kinase 2</motifName> <motifNickName>Casn_Kin2</motifNickName> <score>0.3786</score> <site>S135</site> <siteSequence>PFPTEEEsVGDEDIY</siteSequence> </predictedSite> <!-- ... --> <proteinName>VAV_HUMAN</proteinName> <proteinSequence> MELWRQCTHWLIQCRV<!-- ... --> </proteinSequence> </proteinScanResult>
It includes a list of all the predicted sites, along with the protein sequence, the sites' positions, scores, sequences and matching motifs.
The workflow-pattern described here can easily be applied to all other Scansite3-features and hopefully helps you using this and other Scansite3 webservices.
[Go to top]4. Basic functions
- Query valid stringency values:
URL:../stringency
Demonstrate:../stringency
- Query valid dataSources and
their nicknames:
URL:../datasources
Demonstrate:../datasources
- Query valid motif classes:
URL:../motifclasses
Demonstrate:../motifclasses
- Query valid organism
classes:
URL:../organismclasses
Demonstrate:../organismclasses
- Query valid motifs, their group,
classes and nicknames:
URL:../motifdefinitions/motifclass=[MC]
Example:../motifdefinitions/motifclass=YEAST ../motifdefinitions/motifclass=MAMMALIAN
- Check if a protein exists in
one of our database mirrors:
URL:../proteinexists/identifier=[ANY]/dsshortname=[DS]
Example:../proteinexists/identifier=vav_mouse/dsshortname=swissprot
5. Scansite functions
Please note that in the following definitions line breaks are used to format long URIs in a prettier way. Line breaks are indicated using a backslash ('\'). Wherever there is a backslash, just imagine there is no whitespace at all and the URI is just continued on the same line.- Scan a protein for motifs using
a protein identifier:
URL:../proteinscan/identifier=[P]/dsshortname=[DS]?/motifclass=[MC]?/motifshortnames=[MS]?/stringency=[ST]?/referenceproteome=[Vertebrata | Yeast]?
Optional parameters:- motifshortnames
- referenceproteome
Examples:- ../proteinscan/identifier=vav_human/dsshortname=swissprot/motifclass=YEAST/stringency=High - ../proteinscan/identifier=vav_human/dsshortname=swissprot/motifclass=YEAST/motifshortnames=/stringency=High - ../proteinscan/identifier=vav_human/dsshortname=swissprot/motifclass=MAMMALIAN/motifshortnames=Lck_Kin~Shc_SH2/stringency=High - ../proteinscan/identifier=vav_human/dsshortname=swissprot/motifclass=MAMMALIAN/motifshortnames=Lck_Kin~Shc_SH2/stringency=High/referenceproteome=Vertebrata
- Scan a protein for motifs using
a protein sequence:
URL:../proteinscan/identifier=[ANY]?/sequence=[SEQ]/motifclass=[MC]/motifshortnames=[MS]?/stringencyValue=[ST]?/referenceproteome=[Vertebrata | Yeast]?
Optional parameters:- motifshortnames
- referenceproteome
Examples:- ../proteinscan/identifier=MY_PROTEIN/sequence=RDGVLLCQLLNNLLPHAINLREVNLRPQMSQFLCLKNIRTFLSTCCEKFGLKRSELFEAFDLFDVQDFGKVIYTLSALSWTPIAQNRGIMPFPTEEESVGDEDIYSGLSDQIDDTVEEDEDLYDCVENEEAEGDEIYEDLMRSEPVSMPPKMTEYDKRCCCLREIQQTE/motifclass=YEAST/stringency=High - ../proteinscan/identifier=MY_PROTEIN/sequence=RDGVLLCQLLNNLLPHAINLREVNLRPQMSQFLCLKNIRTFLSTCCEKFGLKRSELFEAFDLFDVQDFGKVIYTLSALSWTPIAQNRGIMPFPTEEESVGDEDIYSGLSDQIDDTVEEDEDLYDCVENEEAEGDEIYEDLMRSEPVSMPPKMTEYDKRCCCLREIQQTE/motifclass=YEAST/motifshortnames=/stringency=High - ../proteinscan/identifier=MY_PROTEIN/sequence=RDGVLLCQLLNNLLPHAINLREVNLRPQMSQFLCLKNIRTFLSTCCEKFGLKRSELFEAFDLFDVQDFGKVIYTLSALSWTPIAQNRGIMPFPTEEESVGDEDIYSGLSDQIDDTVEEDEDLYDCVENEEAEGDEIYEDLMRSEPVSMPPKMTEYDKRCCCLREIQQTE/motifclass=MAMMALIAN/motifshortnames=Lck_Kin/stringency=Low - ../proteinscan/identifier=MY_PROTEIN/sequence=RDGVLLCQLLNNLLPHAINLREVNLRPQMSQFLCLKNIRTFLSTCCEKFGLKRSELFEAFDLFDVQDFGKVIYTLSALSWTPIAQNRGIMPFPTEEESVGDEDIYSGLSDQIDDTVEEDEDLYDCVENEEAEGDEIYEDLMRSEPVSMPPKMTEYDKRCCCLREIQQTE/motifclass=MAMMALIAN/motifshortnames=Lck_Kin/stringency=Low/referenceproteome=Vertebrata
- Search a sequence database for a
motif:
URL:../databasesearch/motifshortname=[M]/dsshortname=[DS]/organismclass=[OC]/speciesrestriction=[ANY]?/numberofphosphorylations=[NP]/molweightfrom=[NUM]?/molweightto=[NUM]?/isoelectricpointfrom=[DEC]?/isoelectricpointto=[DEC]?/keywordrestriction=[ANY]?/sequencerestriction=[ANY]?
Optional parameters:- speciesrestriction
- numberofphosphorylations
- molweightfrom
- molweightto
- isoelectricpointfrom
- isoelectricpointto
- keywordrestriction
- sequencerestriction
Examples :- ../databasesearch/motifshortname=Shc_SH2/dsshortname=swissprot/organismclass=Mammals/speciesrestriction=rattus/numberofphosphorylations=1/molweightfrom=5000/molweightto=20000/isoelectricpointfrom=4/keywordrestriction=cell/sequencerestriction=PPP - ../databasesearch/motifshortname=Shc_SH2/dsshortname=swissprot/organismclass=Mammals/numberofphosphorylations=0
- Search a protein database for a
sequence pattern:
URL:../sequencematch/sequencematchregex=[ANY]/dsshortname=[DS]/organismclass=[OC]/speciesrestriction=[ANY]?/numberofphosphorylations=[NP]/molweightfrom=[NUM]?/molweightto=[NUM]?/isoelectricpointfrom=[DEC]?/isoelectricpointto=[DEC]?/keywordrestriction=[ANY]?
Examples:- ../sequencematch/sequencematchregex=A+VCA/dsshortname=swissprot/organismclass=Mammals/speciesrestriction=human/numberofphosphorylations=0/keywordrestriction=cell - ../sequencematch/sequencematchregex=A+VCA/dsshortname=swissprot/organismclass=Mammals/speciesrestriction=human/numberofphosphorylations=0/molweightfrom=2000/molweightto=9000/isoelectricpointfrom=2.2/isoelectricpointto=6
- Scan a protein for evolutionary
conserved phosphorylation sites
URL:- ../scanorthologs/identifier=[P]/dsshortname=[DS]/orthologydsshortname=[DS]/alignmentradius=[10|20|40|80]/stringency=[ST]motifgroup=[motifgroup short name]/siteposition=[[NUM]
Example:- ../scanorthologs/identifier=BRCA2_HUMAN/dsshortname=swissprot/orthologydsshortname=swissprotorthology/alignmentradius=40/stringency=High/motifgroup=Acid_ST_kin/siteposition=306
- Predict cellular
localization of a protein
URL:../predictlocation/localizationdsshortname=[DS]/identifier=[P]/dsshortname=[DS]
Example:../predictlocation/localizationdsshortname=loctree/identifier=BRCA2_HUMAN/dsshortname=swissprot
6. Errors
If you do not get the expected result there are usually two ways this may be displayed to you:
- 404 Error Page: This happens if the URI you entered does not match the expected pattern. Make sure that your URI conforms with one the patterns described above.
- XML-Document with error-tag: You will be displayed a document like this if something went wrong when processing your query-String. Usually a message is enclosed in the error-tag that describes the problem (for example, invalid input parameters).
If you are sure you did everything right and your query still does not work, please let us know! Just email us. Please include what you wanted to do, what URI you used, and what happened.
[Go to top]


|
gtsam
4.0.0
gtsam
|
A Gaussian factor in the squared-error form.
JacobianFactor implements a Gaussian, which has quadratic negative log-likelihood
\[ E(x) = \frac{1}{2} (Ax-b)^T \Sigma^{-1} (Ax-b) \]
where \( \Sigma \) is a diagonal covariance matrix. The matrix \( A \), r.h.s. vector \( b \), and diagonal noise model \( \Sigma \) are stored in this class.
This factor represents the sum-of-squares error of a linear measurement function, and is created upon linearization of a NoiseModelFactor, which in turn is a sum-of-squares factor with a nonlinear measurement function.
Here is an example of how this factor represents a sum-of-squares error:
Letting \( h(x) \) be a linear measurement prediction function, \( z \) be the actual observed measurement, the residual is
\[ f(x) = h(x) - z . \]
If we expect noise with diagonal covariance matrix \( \Sigma \) on this measurement, then the negative log-likelihood of the Gaussian induced by this measurement model is
\[ E(x) = \frac{1}{2} (h(x) - z)^T \Sigma^{-1} (h(x) - z) . \]
Because \( h(x) \) is linear, we can write it as
\[ h(x) = Ax + e \]
and thus we have
\[ E(x) = \frac{1}{2} (Ax-b)^T \Sigma^{-1} (Ax-b) \]
where \( b = z - e \).
This factor can involve an arbitrary number of variables, and in the above example \( x \) would almost always be only be a subset of the variables in the entire factor graph. There are special constructors for 1-, 2-, and 3- way JacobianFactors, and additional constructors for creating n-way JacobianFactors. The Jacobian matrix \( A \) is passed to these constructors in blocks, for example, for a 2-way factor, the constructor would accept \( A1 \) and \( A2 \), as well as the variable indices \( j1 \) and \( j2 \) and the negative log-likelihood represented by this factor would be
\[ E(x) = \frac{1}{2} (A_1 x_{j1} + A_2 x_{j2} - b)^T \Sigma^{-1} (A_1 x_{j1} + A_2 x_{j2} - b) . \]
Public Member Functions | |
| JacobianFactor (const GaussianFactor &gf) | |
| Convert from other GaussianFactor. | |
| JacobianFactor (const JacobianFactor &jf) | |
| Copy constructor. | |
| JacobianFactor (const HessianFactor &hf) | |
| Conversion from HessianFactor (does Cholesky to obtain Jacobian matrix) | |
| JacobianFactor () | |
| default constructor for I/O | |
| JacobianFactor (const Vector &b_in) | |
| Construct Null factor. | |
| JacobianFactor (Key i1, const Matrix &A1, const Vector &b, const SharedDiagonal &model=SharedDiagonal()) | |
| Construct unary factor. | |
| JacobianFactor (Key i1, const Matrix &A1, Key i2, const Matrix &A2, const Vector &b, const SharedDiagonal &model=SharedDiagonal()) | |
| Construct binary factor. | |
| JacobianFactor (Key i1, const Matrix &A1, Key i2, const Matrix &A2, Key i3, const Matrix &A3, const Vector &b, const SharedDiagonal &model=SharedDiagonal()) | |
| Construct ternary factor. | |
| template<typename TERMS > | |
| JacobianFactor (const TERMS &terms, const Vector &b, const SharedDiagonal &model=SharedDiagonal()) | |
| Construct an n-ary factor. More... | |
| template<typename KEYS > | |
| JacobianFactor (const KEYS &keys, const VerticalBlockMatrix &augmentedMatrix, const SharedDiagonal &sigmas=SharedDiagonal()) | |
| Constructor with arbitrary number keys, and where the augmented matrix is given all together instead of in block terms. More... | |
| JacobianFactor (const GaussianFactorGraph &graph, boost::optional< const Ordering & > ordering=boost::none, boost::optional< const VariableSlots & > p_variableSlots=boost::none) | |
| Build a dense joint factor from all the factors in a factor graph. More... | |
| virtual | ~JacobianFactor () |
| Virtual destructor. | |
| virtual GaussianFactor::shared_ptr | clone () const |
| Clone this JacobianFactor. | |
| virtual void | print (const std::string &s="", const KeyFormatter &formatter=DefaultKeyFormatter) const |
| virtual bool | equals (const GaussianFactor &lf, double tol=1e-9) const |
| Equals for testable. | |
| Vector | unweighted_error (const VectorValues &c) const |
| Vector | error_vector (const VectorValues &c) const |
| (A*x-b) | |
| virtual double | error (const VectorValues &c) const |
| (A*x-b)/sigma | |
| virtual Matrix | augmentedInformation () const |
| 0.5*(A*x-b)'D(A*x-b) More... | |
| virtual Matrix | information () const |
| Return the non-augmented information matrix represented by this GaussianFactor. | |
| virtual VectorValues | hessianDiagonal () const |
| Return the diagonal of the Hessian for this factor. | |
| virtual void | hessianDiagonal (double *d) const |
| Raw memory access version of hessianDiagonal. | |
| virtual std::map< Key, Matrix > | hessianBlockDiagonal () const |
| Return the block diagonal of the Hessian for this factor. | |
| virtual std::pair< Matrix, Vector > | jacobian () const |
| Returns (dense) A,b pair associated with factor, bakes in the weights. | |
| std::pair< Matrix, Vector > | jacobianUnweighted () const |
| Returns (dense) A,b pair associated with factor, does not bake in weights. | |
| virtual Matrix | augmentedJacobian () const |
| Return (dense) matrix associated with factor. More... | |
| Matrix | augmentedJacobianUnweighted () const |
| Return (dense) matrix associated with factor. More... | |
| const VerticalBlockMatrix & | matrixObject () const |
| Return the full augmented Jacobian matrix of this factor as a VerticalBlockMatrix object. More... | |
| VerticalBlockMatrix & | matrixObject () |
| Mutable access to the full augmented Jacobian matrix of this factor as a VerticalBlockMatrix object. More... | |
| virtual GaussianFactor::shared_ptr | negate () const |
| Construct the corresponding anti-factor to negate information stored stored in this factor. More... | |
| virtual bool | empty () const |
| Check if the factor is empty. More... | |
| bool | isConstrained () const |
| is noise model constrained ? | |
| virtual DenseIndex | getDim (const_iterator variable) const |
| Return the dimension of the variable pointed to by the given key iterator todo: Remove this in favor of keeping track of dimensions with variables? | |
| size_t | rows () const |
| return the number of rows in the corresponding linear system | |
| size_t | cols () const |
| return the number of columns in the corresponding linear system | |
| const SharedDiagonal & | get_model () const |
| get a copy of model | |
| SharedDiagonal & | get_model () |
| get a copy of model (non-const version) | |
| const constBVector | getb () const |
| Get a view of the r.h.s. More... | |
| constABlock | getA (const_iterator variable) const |
| Get a view of the A matrix for the variable pointed to by the given key iterator. | |
| constABlock | getA () const |
| Get a view of the A matrix, not weighted by noise. | |
| BVector | getb () |
| Get a view of the r.h.s. More... | |
| ABlock | getA (iterator variable) |
| Get a view of the A matrix for the variable pointed to by the given key iterator (non-const version) | |
| ABlock | getA () |
| Get a view of the A matrix. | |
| void | updateHessian (const KeyVector &keys, SymmetricBlockMatrix *info) const |
| Update an information matrix by adding the information corresponding to this factor (used internally during elimination). More... | |
| Vector | operator * (const VectorValues &x) const |
| Return A*x. | |
| void | transposeMultiplyAdd (double alpha, const Vector &e, VectorValues &x) const |
| x += A'*e. More... | |
| void | multiplyHessianAdd (double alpha, const VectorValues &x, VectorValues &y) const |
| y += alpha * A'*A*x | |
| void | multiplyHessianAdd (double alpha, const double *x, double *y, const std::vector< size_t > &accumulatedDims) const |
| Raw memory access version of multiplyHessianAdd y += alpha * A'*A*x Requires the vector accumulatedDims to tell the dimension of each variable: e.g. More... | |
| VectorValues | gradientAtZero () const |
| A'*b for Jacobian. | |
| virtual void | gradientAtZero (double *d) const |
| A'*b for Jacobian (raw memory version) | |
| Vector | gradient (Key key, const VectorValues &x) const |
| Compute the gradient wrt a key at any values. | |
| JacobianFactor | whiten () const |
| Return a whitened version of the factor, i.e. More... | |
| std::pair< boost::shared_ptr< GaussianConditional >, shared_ptr > | eliminate (const Ordering &keys) |
| Eliminate the requested variables. More... | |
| void | setModel (bool anyConstrained, const Vector &sigmas) |
| set noiseModel correctly | |
| boost::shared_ptr< GaussianConditional > | splitConditional (size_t nrFrontals) |
| splits a pre-factorized factor into a conditional, and changes the current factor to be the remaining component. More... | |
| Public Member Functions inherited from gtsam::GaussianFactor | |
| GaussianFactor () | |
| Default constructor creates empty factor. | |
| template<typename CONTAINER > | |
| GaussianFactor (const CONTAINER &keys) | |
| Construct from container of keys. More... | |
| virtual | ~GaussianFactor () |
| Destructor. | |
| Public Member Functions inherited from gtsam::Factor | |
| Key | front () const |
| First key. | |
| Key | back () const |
| Last key. | |
| const_iterator | find (Key key) const |
| find | |
| const KeyVector & | keys () const |
| Access the factor's involved variable keys. | |
| const_iterator | begin () const |
| Iterator at beginning of involved variable keys. | |
| const_iterator | end () const |
| Iterator at end of involved variable keys. | |
| size_t | size () const |
| void | print (const std::string &s="Factor", const KeyFormatter &formatter=DefaultKeyFormatter) const |
| print | |
| void | printKeys (const std::string &s="Factor", const KeyFormatter &formatter=DefaultKeyFormatter) const |
| print only keys | |
| KeyVector & | keys () |
| iterator | begin () |
| Iterator at beginning of involved variable keys. | |
| iterator | end () |
| Iterator at end of involved variable keys. | |
Public Types | |
| typedef JacobianFactor | This |
| Typedef to this class. | |
| typedef GaussianFactor | Base |
| Typedef to base class. | |
| typedef boost::shared_ptr< This > | shared_ptr |
| shared_ptr to this class | |
| typedef VerticalBlockMatrix::Block | ABlock |
| typedef VerticalBlockMatrix::constBlock | constABlock |
| typedef ABlock::ColXpr | BVector |
| typedef constABlock::ConstColXpr | constBVector |
| Public Types inherited from gtsam::GaussianFactor | |
| typedef GaussianFactor | This |
| This class. | |
| typedef boost::shared_ptr< This > | shared_ptr |
| shared_ptr to this class | |
| typedef Factor | Base |
| Our base class. | |
| Public Types inherited from gtsam::Factor | |
| typedef KeyVector::iterator | iterator |
| Iterator over keys. | |
| typedef KeyVector::const_iterator | const_iterator |
| Const iterator over keys. | |
Protected Member Functions | |
| template<typename TERMS > | |
| void | fillTerms (const TERMS &terms, const Vector &b, const SharedDiagonal &noiseModel) |
| Internal function to fill blocks and set dimensions. | |
| Protected Member Functions inherited from gtsam::Factor | |
| Factor () | |
| Default constructor for I/O. | |
| template<typename CONTAINER > | |
| Factor (const CONTAINER &keys) | |
| Construct factor from container of keys. More... | |
| template<typename ITERATOR > | |
| Factor (ITERATOR first, ITERATOR last) | |
| Construct factor from iterator keys. More... | |
| bool | equals (const This &other, double tol=1e-9) const |
| check equality | |
Protected Attributes | |
| VerticalBlockMatrix | Ab_ |
| noiseModel::Diagonal::shared_ptr | model_ |
| Protected Attributes inherited from gtsam::Factor | |
| KeyVector | keys_ |
| The keys involved in this factor. | |
Friends | |
| template<typename T > | |
| class | ExpressionFactor |
| class | boost::serialization::access |
| Serialization function. | |
| GTSAM_EXPORT std::pair< boost::shared_ptr< GaussianConditional >, shared_ptr > | EliminateQR (const GaussianFactorGraph &factors, const Ordering &keys) |
| Multiply all factors and eliminate the given keys from the resulting factor using a QR variant that handles constraints (zero sigmas). More... | |
Additional Inherited Members | |
| Static Public Member Functions inherited from gtsam::GaussianFactor | |
| template<typename CONTAINER > | |
| static DenseIndex | Slot (const CONTAINER &keys, Key key) |
| Static Protected Member Functions inherited from gtsam::Factor | |
| template<typename CONTAINER > | |
| static Factor | FromKeys (const CONTAINER &keys) |
| Construct factor from container of keys. More... | |
| template<typename ITERATOR > | |
| static Factor | FromIterators (ITERATOR first, ITERATOR last) |
| Construct factor from iterator keys. More... | |
| gtsam::JacobianFactor::JacobianFactor | ( | const TERMS & | terms, |
| const Vector & | b, | ||
| const SharedDiagonal & | model = SharedDiagonal() |
||
| ) |
Construct an n-ary factor.
| TERMS | A container whose value type is std::pair<Key, Matrix>, specifying the collection of keys and matrices making up the factor. |
| gtsam::JacobianFactor::JacobianFactor | ( | const KEYS & | keys, |
| const VerticalBlockMatrix & | augmentedMatrix, | ||
| const SharedDiagonal & | sigmas = SharedDiagonal() |
||
| ) |
Constructor with arbitrary number keys, and where the augmented matrix is given all together instead of in block terms.
Note that only the active view of the provided augmented matrix is used, and that the matrix data is copied into a newly-allocated matrix in the constructed factor.
|
explicit |
Build a dense joint factor from all the factors in a factor graph.
If a VariableSlots structure computed for graph
is already available, providing it will reduce the amount of computation performed.
|
virtual |
0.5*(A*x-b)'D(A*x-b)
Return the augmented information matrix represented by this GaussianFactor. The augmented information matrix contains the information matrix with an additional column holding the information vector, and an additional row holding the transpose of the information vector. The lower-right entry contains the constant error term (when \( \delta x = 0 \)). The augmented information matrix is described in more detail in HessianFactor, which in fact stores an augmented information matrix.
Implements gtsam::GaussianFactor.
|
virtual |
Return (dense) matrix associated with factor.
The returned system is an augmented matrix: [A b] weights are baked in
Implements gtsam::GaussianFactor.
| Matrix gtsam::JacobianFactor::augmentedJacobianUnweighted | ( | ) | const |
Return (dense) matrix associated with factor.
The returned system is an augmented matrix: [A b] weights are not baked in
| std::pair< GaussianConditional::shared_ptr, JacobianFactor::shared_ptr > gtsam::JacobianFactor::eliminate | ( | const Ordering & | keys | ) |
Eliminate the requested variables.
|
inlinevirtual |
|
inline |
Get a view of the r.h.s.
vector b, not weighted by noise
|
inline |
Get a view of the r.h.s.
vector b (non-const version)
|
inline |
Return the full augmented Jacobian matrix of this factor as a VerticalBlockMatrix object.
|
inline |
Mutable access to the full augmented Jacobian matrix of this factor as a VerticalBlockMatrix object.
| void gtsam::JacobianFactor::multiplyHessianAdd | ( | double | alpha, |
| const double * | x, | ||
| double * | y, | ||
| const std::vector< size_t > & | accumulatedDims | ||
| ) | const |
Raw memory access version of multiplyHessianAdd y += alpha * A'*A*x Requires the vector accumulatedDims to tell the dimension of each variable: e.g.
Raw memory access version of multiplyHessianAdd y += alpha * A'*A*x Note: this is not assuming a fixed dimension for the variables, but requires the vector accumulatedDims to tell the dimension of each variable: e.g.
: x0 has dim 3, x2 has dim 6, x3 has dim 2, then accumulatedDims is [0 3 9 11 13] NOTE: size of accumulatedDims is size of keys + 1!! TODO(frank): we should probably kill this if no longer needed
: x0 has dim 3, x2 has dim 6, x3 has dim 2, then accumulatedDims is [0 3 9 11 13] NOTE: size of accumulatedDims is size of keys + 1!! TODO Frank asks: why is this here if not regular ????
Use Eigen magic to access raw memory
Just iterate over all A matrices and multiply in correct config part (looping over keys) E.g.: Jacobian A = [A0 A1 A2] multiplies x = [x0 x1 x2]' Hence: Ax = A0 x0 + A1 x1 + A2 x2 (hence we loop over the keys and accumulate)
Deal with noise properly, need to Double* whiten as we are dividing by variance
multiply with alpha
Again iterate over all A matrices and insert Ai^T into y
|
virtual |
Construct the corresponding anti-factor to negate information stored stored in this factor.
Implements gtsam::GaussianFactor.
| GaussianConditional::shared_ptr gtsam::JacobianFactor::splitConditional | ( | size_t | nrFrontals | ) |
splits a pre-factorized factor into a conditional, and changes the current factor to be the remaining component.
Performs same operation as eliminate(), but without running QR. NOTE: looks at dimension of noise model to determine how many rows to keep.
| nrFrontals | number of keys to eliminate |
| void gtsam::JacobianFactor::transposeMultiplyAdd | ( | double | alpha, |
| const Vector & | e, | ||
| VectorValues & | x | ||
| ) | const |
x += A'*e.
If x is initially missing any values, they are created and assumed to start as zero vectors.
|
virtual |
Update an information matrix by adding the information corresponding to this factor (used internally during elimination).
| scatter | A mapping from variable index to slot index in this HessianFactor |
| info | The information matrix to be updated |
Implements gtsam::GaussianFactor.
| JacobianFactor gtsam::JacobianFactor::whiten | ( | ) | const |
Return a whitened version of the factor, i.e.
with unit diagonal noise model.
|
friend |
Multiply all factors and eliminate the given keys from the resulting factor using a QR variant that handles constraints (zero sigmas).
Computation happens in noiseModel::Gaussian::QR Returns a conditional on those keys, and a new factor on the separator.


| PostgreSQL 9.6.15 Documentation | |||
|---|---|---|---|
| Prev | Up | Chapter 42. PL/Tcl - Tcl Procedural Language | Next |
Tcl code within or called from a PL/Tcl function can raise an error,
either by executing some invalid operation or by generating an error
using the Tcl error
command or
PL/Tcl's elog
command. Such errors can be caught
within Tcl using the Tcl catch
command. If they
are not caught but are allowed to propagate out to the top level of
execution of the PL/Tcl function, they turn into database errors.
Conversely, database errors that occur within PL/Tcl's
spi_exec
, spi_prepare
,
and spi_execp
commands are reported as Tcl errors,
so they are catchable by Tcl's catch
command.
Again, if they propagate out to the top level without being caught,
they turn back into database errors.
Tcl provides an errorCode variable that can represent additional information about an error in a form that is easy for Tcl programs to interpret. The contents are in Tcl list format, and the first word identifies the subsystem or library reporting the error; beyond that the contents are left to the individual subsystem or library. For database errors reported by PL/Tcl commands, the first word is POSTGRES, the second word is the Postgres version number, and additional words are field name/value pairs providing detailed information about the error. Fields SQLSTATE, condition, and message are always supplied (the first two represent the error code and condition name as shown in Appendix A). Fields that may be present include detail, hint, context, schema, table, column, datatype, constraint, statement, cursor_position, filename, lineno, and funcname.
A convenient way to work with PL/Tcl's errorCode information is to load it into an array, so that the field names become array subscripts. Code for doing that might look like
if {[catch { spi_exec $sql_command }]} { if {[lindex $::errorCode 0] == "POSTGRES"} { array set errorArray $::errorCode if {$errorArray(condition) == "undefined_table"} { # deal with missing table } else { # deal with some other type of SQL error } } }
(The double colons explicitly specify that errorCode is a global variable.)


orber
Module
Module Summary
Description
This module contains the functions for starting and stopping the application. It also has some utility functions to get some of the configuration information from running application.
Exports
start() -> ok
start(Type) -> ok
Types
Starts the Orber application (it also starts mnesia if it is not running). Which Type parameter is supplied determines the behavior. If not supplied Orber is started as temporary. See the Reference Manual application(3) for further information.
jump_start(Attributes) -> ok | {'EXIT', Reason}
Types
Installs and starts the Orber and the Mnesia applications with the configuration parameters domain and iiop_port set to "IP-number:Port" and the supplied Port respectively. Theses settings are in most cases sufficient to ensure that no clash with any other Orber instance occur. If this operation fails, check if the listen port (iiop_port) is already in use. This function MAY ONLY be used during development and tests; how Orber is configured when using this operation may change at any time without warning.
Stops the Orber application.
info() -> ok
info(IoType) -> ok | {'EXIT', Reason} | string()
Types
Generates an Info Report, which contain Orber's configuration settings. If no IoType is supplied, info_msg is used (see the error_logger documentation). When the atom string is supplied this function will return a flat list. For io and {io, IoDevice}, io:format/1 and io:format/3 is used respectively.
exception_info(Exception) -> {ok, string()} | {error, Reason}
Returns a printable string, which describes the supplied exception in greater detail. Note, this function is mainly intended for system exceptions.
is_system_exception(Exception) -> true | false
Returns true if the supplied exception is a system defined exception, otherwise false.
Returns a list of the Orber specific Mnesia tables. This list is required to restore Mnesia if it has been partitioned.
get_ORBInitRef() -> string() | undefined
This function returns undefined if we will resolve references locally, otherwise a string describing which host we will contact if the Key given to corba:resolve_initial_references/1 matches the Key set in this configuration variable. For more information see the user's guide.
get_ORBDefaultInitRef() -> string() | undefined
This function returns undefined if we will resolve references locally, otherwise a string describing which host, or hosts, from which we will try to resolve the Key given to corba:resolve_initial_references/1. For more information see the user's guide.
This function returns the domain name of the current Orber domain as a string.
This function returns the port-number, which is used by the IIOP protocol. It can be configured by setting the application variable iiop_port, if it is not set it will have the default number 4001.
iiop_out_ports() -> 0 | {Min, Max}
The return value of this operation is what the configuration parameter iiop_out_ports has been set to.
iiop_out_ports_random() -> true | false
Return the value of the configuration parameter iiop_out_ports_random.
iiop_out_ports_attempts() -> int()
Return the value of the configuration parameter iiop_out_ports_attempts.
This function returns the port-number, which is used by the secure IIOP protocol. It can be configured by setting the application variable iiop_ssl_port, if it is not set it will have the default number 4002 if Orber is to configured to run in secure mode. Otherwise it returns -1.
iiop_timeout() -> int() (milliseconds)
This function returns the timeout value after which outgoing IIOP requests terminate. It can be configured by setting the application variable iiop_timeout TimeVal (seconds), if it is not set it will have the default value infinity. If a request times out a system exception, e.g. TIMEOUT, is raised.
Note: the iiop_timeout configuration parameter (TimeVal) may only range between 0 and 1000000 seconds. Otherwise, the default value is used.
Note: Earlier IC versions required that the compile option {timeout,"module::interface"}, was used, which allow the user to add an extra timeout parameter, e.g., module_interface:function(ObjRef, Timeout, ... Arguments ...) or module_interface:function(ObjRef, [{timeout, Timeout}], ... Arguments ...), instead of module_interface:function(ObjRef, ... Arguments ...). This is no longer the case and if the extra Timeout is used, argument will override the configuration parameter iiop_timeout. It is, however, not possible to use infinity to override the Timeout parameter. The Timeout option is also valid for objects which resides within the same Orber domain.
iiop_connection_timeout() -> int() (milliseconds)
This function returns the timeout value after which outgoing IIOP connections terminate. It can be configured by setting the application variable iiop_connection_timeout TimeVal (seconds), if it is not set it will have the default value infinity. The connection will not be terminated if there are pending requests.
Note: the iiop_connection_timeout configuration parameter (TimeVal) may only range between 0 and 1000000 seconds. Otherwise, the default value is used.
iiop_connections() -> Result
iiop_connections(Direction) -> Result
Types
The list returned by this operation contain tuples of remote hosts/ports Orber is currently connected to. If no Direction is not supplied, both incoming and outgoing connections are included.
If a specific local interface has been defined for the connection, this will be added to the returned tuple.
iiop_connections_pending() -> Result
Types
In some cases a connection attempt (i.e. trying to communicate with another ORB) may block due to a number of reasons. This operation allows the user to check if this is the case. The returned list contain tuples of remote hosts/ports. Normally, the list is empty.
If a specific local interface has been defined for the connection, this will be added to the returned tuple.
iiop_in_connection_timeout() -> int() (milliseconds)
This function returns the timeout value after which incoming IIOP connections terminate. It can be configured by setting the application variable iiop_in_connection_timeout TimeVal (seconds), if it is not set it will have the default value infinity. The connection will not be terminated if there are pending requests.
Note: the iiop_in_connection_timeout configuration parameter (TimeVal) may only range between 0 and 1000000 seconds. Otherwise, the default value is used.
Types
Returns the ACL configuration. The Filter uses a extended format of
Classless Inter Domain Routing (CIDR). For example, "<IP_ADDRESS>" limits
the connection to that particular host, while "<IP_ADDRESS>/17" allows
connections to or from any host equal to the 17 most significant bits. Orber
also allow the user to specify a certain port or port range, for example,
"<IP_ADDRESS>/17#4001" and "<IP_ADDRESS>/17#4001/5001"
respectively. IPv4 or none compressed IPv6 strings are accepted.
The list of Interfaces, IPv4 or IPv6 strings, are currently only used
for outgoing connections and may only contain one address. If set and
access is granted, Orber will use that local interface when connecting to the
other ORB. The module orber_acl
provides operations for evaluating the access control for filters and addresses.
activate_audit_trail() -> Result
activate_audit_trail(Verbosity) -> Result
Types
Activates audit/trail for all existing incoming and outgoing IIOP connections. The Verbosity parameter, stealth, normal or verbose, determines which of the built in interceptors is used (orber_iiop_tracer_stealth, orber_iiop_tracer_silent or orber_iiop_tracer respectively). If no verbosity level is supplied, then the normal will be used.
In case Orber is configured to use other interceptors, the audit/trail interceptors will simply be added to that list.
deactivate_audit_trail() -> Result
Types
Deactivates audit/trail for all existing incoming and outgoing IIOP connections. In case Orber is configured to use other interceptors, those will still be used.
add_listen_interface(IP, Type) -> Result
add_listen_interface(IP, Type, Port) -> Result
add_listen_interface(IP, Type, ConfigurationParameters) -> Result
Types
Create a new process that handle requests for creating a new incoming IIOP connection via the given interface and port. If the latter is excluded, Orber will use the value of the iiop_port or iiop_ssl_port configuration parameters. The Type parameter determines if it is supposed to be IIOP or IIOP via SSL. If successful, the returned #Ref shall be passed to orber:remove_listen_interface/1 when the connection shall be terminated.
It is also possible to supply configuration parameters that override the global configuration. The iiop_in_connection_timeout, iiop_max_fragments, iiop_max_in_requests and interceptors parameters simply overrides the global counterparts (See the Configuration chapter in the User's Guide). But for the following parameters there are a few restrictions:
- flags - currently it is only possible to override the global setting for the Use Current Interface in IOR and Exclude CodeSet Component flags.
- ip_family - can be set to inet or inet6 and is used to get a listen interface that uses another IP version than the default set with flags at startup.
- iiop_port - requires that Use Current Interface in IOR is activated and the supplied Type is normal. If so, exported IOR:s will contain the IIOP port defined by this configuration parameter. Otherwise, the global setting will be used.
- iiop_ssl_port - almost equivalent to iiop_port. The difference is that Type shall be ssl and that exported IOR:s will contain the IIOP via SSL port defined by this configuration parameter.
If it is not possible to add a listener based on the supplied interface and port, the error message is one of the ones described in inet and/or ssl documentation.
remove_listen_interface(Ref) -> ok
Types
Terminates the listen process, associated with the supplied #Ref, for incoming a connection. The Ref parameter is the return value from the orber:add_listen_interface/2/3 operation. When terminating the connection, all associated requests will not deliver a reply to the clients.
close_connection(Connection) -> Result
close_connection(Connection, Interface) -> Result
Types
Will try to close all outgoing connections to the host/port combinations found in the supplied object reference or the given list of hosts/ports. If a #'IOP_ServiceContext'{} containing a local interface has been used when communicating with the remote object (see also Module_Interface), that interface shall be passed as the second argument. Otherwise, connections via the default local interface, will be terminated.
Since several clients maybe communicates via the same connection, they will be affected when invoking this operation. Other clients may re-create the connection by invoking an operation on the target object.
This function returns the security mode Orber is running in, which is either no if it is an insecure domain or the type of security mechanism used. For the moment the only security mechanism is ssl. This is configured by setting the application variable secure.
ssl_server_options() -> list()
This function returns the list of SSL options set for the Orber domain as server. This is configured by setting the application variable ssl_server_options.
ssl_client_options() -> list()
This function returns the list of SSL options used in outgoing calls in the current process. The default value is configured by setting the application variable ssl_client_options.
set_ssl_client_options(Options) -> ok
Types
This function takes a list of SSL options as parameter and sets it for the current process.
objectkeys_gc_time() -> int() (seconds)
This function returns the timeout value after which after which terminated object keys, related to servers started with the configuration parameter {persistent, true}, will be removed. It can be configured by setting the application variable objectkeys_gc_time TimeVal (seconds), if it is not set it will have the default value infinity.
Objects terminating with reason normal or shutdown are removed automatically.
Note: the objectkeys_gc_time configuration parameter (TimeVal) may only range between 0 and 1000000 seconds. Otherwise, the default value is used.
Types
This function returns the list of node names that this orber domain consists of.
install(NodeList) -> ok
install(NodeList, Options) -> ok
Types
This function installs all the necessary mnesia tables and load default data in some of them. If one or more Orber tables already exists the installation fails. The function uninstall may be used, if it is safe, i.e., no other application is running Orber.
Preconditions:
- a mnesia schema must exist before the installation
- mnesia is running on the other nodes if the new installation shall be a multi node domain
Mnesia will be started by the function if it is not already running on the installation node and if it was started it will be stopped afterwards.
The options that can be sent to the installation program is:
- {install_timeout, Timeout} - this timeout is how long we will wait for the tables to be created. The Timeout value can be infinity or an integer number in milliseconds. Default is infinity.
- {ifr_storage_type, TableType} - this option sets the type of tables used for the interface repository. The TableType can be disc_copies or ram_copies. Default is disc_copies.
- {initialreferences_storage_type, TableType} - this option sets the type of table used for storing initial references. The TableType can be disc_copies or ram_copies. Default is ram_copies.
- {nameservice_storage_type, TableType} - the default behavior of Orber is to install the NameService as ram_copies. This option makes it possible to change this to disc_copies. But the user should be aware of that if a node is restarted, all local object references stored in the NameService is not valid. Hence, you cannot switch to disc_copies and expect exactly the same behavior as before.
- {load_order, Priority} - per default the priority is set to 0. Using this option it will change the priority of in which order Mnesia will load Orber internal tables. For more information, consult the Mnesia documentation.
This function stops the Orber application, terminates all server objects and removes all Orber related mnesia tables.
Note: Since other applications may be running on the same node using mnesia uninstall will not stop the mnesia application.
add_node(Node, Options) -> RetVal
Types
This function add given node to a existing Orber node group and starts Orber on the new node. orber:add_node is called from a member in the Orber node group.
Preconditions for new node:
- Erlang started on the new node using the option -mnesia extra_db_nodes, e.g., erl -sname new_node_name -mnesia extra_db_nodes ConnectToNodes_List
- The new node's domain name is the same for the nodes we want to connect to.
- Mnesia is running on the new node (no new schema created).
- If the new node will use disc_copies the schema type must be changed using: mnesia:change_table_copy_type(schema, node(), disc_copies).
Orber will be started by the function on the new node.
Fails if:
- Orber already installed on given node.
- Mnesia not started as described above on the new node.
- Impossible to copy data in Mnesia tables to the new node.
- Not able to start Orber on the new node, due to, for example, the iiop_port is already in use.
The function do not remove already copied tables after a failure. Use orber:remove_node to remove these tables.
Types
This function removes given node from a Orber node group. The Mnesia application is not stopped.
configure(Key, Value) -> ok | {'EXIT', Reason}
Types
This function allows the user to configure Orber in, for example, an Erlang shell. It is possible to invoke configure at any time the keys specified above.
Any other key must be set before installing and starting Orber.
Trying to change the configuration in any other way is NOT allowed since it may affect the behavior of Orber.
For more information regarding allowed values, see configuration settings in the User's Guide.
Configuring the IIOP timeout values will not affect already existing connections. If you want a guaranteed uniform behavior, you must set these parameters from the start.


Continental Scientific Drilling Coordination Office
The digital objects are hosted following RDA Digital Object Cloud patterns. They are accessible through the web and can be integrated into various workflows including notebooks.
The FAIR principles are typically applied to data but they have very close parallels to goals with physical samples.
This architecture leverages basic web architecture and structured data on the web to scale its services.
Schema.org is a collaborative, community activity with a mission to create, maintain, and promote schemas for structured data on the Internet, on web pages, in email messages, and beyond. Schema.org can be extended with vocabularies such as DCAT, SOSA, etc.
This approach leverages the rich ecosystem of tools developers currently leverage for JSON. Additionally a growing suite of tools and guides specifically for geosciences and structured data on the web are under development.
{
"@context": {
"@vocab": "https://schema.org/"
},
"@type": "Dataset",
"name": "Removal of organic carbon by natural bacterioplankton
communities as a function of pCO2 from laboratory
experiments between 2012 and 2016",
"description": "This dataset includes results of laboratory experiments which measured
dissolved organic carbon (DOC) usage by natural bacteria in seawater at different pCO2
levels.Included in this dataset are; bacterial abundance, total organic
carbon (TOC), what DOC was added to the experiment, target pCO2 level.The
experiments were conducted between 2012 and 2016 during the R/V Kilo Moana cruise
KM1416, at the Bermuda Institute for Ocean Sciences (BIOS), and the University of
Santa Barbara."
"url": "https://www.example-data-repository.org/dataset/472032",
"version": "2013-11-21",
"keywords": ["ocean acidification", "OA", "Dissolved Organic Carbon",
"DOC", "bacterioplankton respiration", "pCO2", "carbon dioxide",
"elevated pCO2", "oceans"],
"license": "CC-BY-4.0"
}


|
cds
1.5.0
|
Split-ordered list RCU specialization. More...
#include <cds/intrusive/split_list_rcu.h>
Public Types | |
| typedef Traits | options |
| Traits template parameters. | |
| typedef cds::urcu::gc< RCU > | gc |
| RCU garbage collector. | |
|
typedef cds::opt::v::hash_selector < typename options::hash > ::type | hash |
| Hash functor for value_type and all its derivatives that you use. | |
| typedef OrderedList | ordered_list |
| type of ordered list used as base for split-list | |
| typedef ordered_list::value_type | value_type |
| type of value stored in the split-list | |
|
typedef ordered_list::key_comparator | key_comparator |
| key compare functor | |
| typedef ordered_list::disposer | disposer |
| Node disposer functor. | |
| typedef options::item_counter | item_counter |
| Item counter type. | |
| typedef options::back_off | back_off |
| back-off strategy for spinning | |
| typedef options::memory_model | memory_model |
| Memory ordering. See cds::opt::memory_model option. | |
| typedef iterator_type< false > | iterator |
| Forward iterator. More... | |
| typedef iterator_type< true > | const_iterator |
| Const forward iterator. More... | |
Public Member Functions | |
| SplitListSet () | |
| Initialize split-ordered list of default capacity. More... | |
| SplitListSet (size_t nItemCount, size_t nLoadFactor=1) | |
| Initialize split-ordered list. More... | |
| bool | insert (value_type &val) |
| Inserts new node. More... | |
| template<typename Func > | |
| bool | insert (value_type &val, Func f) |
| Inserts new node. More... | |
| template<typename Func > | |
| std::pair< bool, bool > | ensure (value_type &val, Func func) |
Ensures that the val exists in the set. More... | |
| bool | unlink (value_type &val) |
Unlinks the item val from the set. More... | |
| template<typename Q > | |
| bool | erase (Q const &val) |
| Deletes the item from the set. More... | |
| template<typename Q , typename Less > | |
| bool | erase_with (Q const &val, Less pred) |
Deletes the item from the set using pred for searching. More... | |
| template<typename Q , typename Func > | |
| bool | erase (Q const &val, Func f) |
| Deletes the item from the set. More... | |
| template<typename Q , typename Less , typename Func > | |
| bool | erase_with (Q const &val, Less pred, Func f) |
Deletes the item from the set using pred for searching. More... | |
| template<typename Q > | |
| value_type * | extract (Q const &val) |
| Extracts an item from the set. More... | |
| template<typename Q , typename Less > | |
| value_type * | extract_with (Q const &val, Less pred) |
Extracts an item from the set using pred for searching. More... | |
| template<typename Q , typename Func > | |
| bool | find (Q &val, Func f) |
Finds the key val . More... | |
| template<typename Q , typename Less , typename Func > | |
| bool | find_with (Q &val, Less pred, Func f) |
Finds the key val with pred predicate for comparing. More... | |
| template<typename Q , typename Func > | |
| bool | find (Q const &val, Func f) |
Finds the key val . More... | |
| template<typename Q , typename Less , typename Func > | |
| bool | find_with (Q const &val, Less pred, Func f) |
Finds the key val with pred predicate for comparing. More... | |
| template<typename Q > | |
| bool | find (Q const &val) |
Finds the key val . More... | |
| template<typename Q , typename Less > | |
| bool | find_with (Q const &val, Less pred) |
Finds the key val with pred predicate for comparing. More... | |
| size_t | size () const |
| Returns item count in the set. | |
| bool | empty () const |
| Checks if the set is empty. More... | |
| void | clear () |
| Clears the set (non-atomic) More... | |
| iterator | begin () |
| Returns a forward iterator addressing the first element in a split-list. More... | |
| iterator | end () |
| Returns an iterator that addresses the location succeeding the last element in a split-list. More... | |
| const_iterator | begin () const |
| Returns a forward const iterator addressing the first element in a split-list. | |
| const_iterator | end () const |
| Returns an const iterator that addresses the location succeeding the last element in a split-list. | |
Protected Types | |
| typedef ordered_list::node_type | list_node_type |
| Node type as declared in ordered list. | |
|
typedef split_list::node < list_node_type > | node_type |
| split-list node type | |
| typedef node_type | dummy_node_type |
| dummy node type | |
| typedef split_list::node_traits < typename ordered_list::node_traits > | node_traits |
| Split-list node traits. More... | |
Protected Attributes | |
| ordered_list_wrapper | m_List |
| Ordered list containing split-list items. | |
| bucket_table | m_Buckets |
| bucket table | |
| std::atomic< size_t > | m_nBucketCountLog2 |
| log2( current bucket count ) | |
| item_counter | m_ItemCounter |
| Item counter. | |
| hash | m_HashFunctor |
| Hash functor. | |
Split-ordered list RCU specialization.
Hash table implementation based on split-ordered list algorithm discovered by Ori Shalev and Nir Shavit, see
The split-ordered list is a lock-free implementation of an extensible unbounded hash table. It uses original recursive split-ordering algorithm discovered by Ori Shalev and Nir Shavit that allows to split buckets without moving an item on resizing, see short algo description.
Implementation
Template parameters are:
RCU
- one of RCU typeOrderedList
- ordered list implementation used as bucket for hash set, for example, MichaelList, LazyList. The intrusive ordered list implementation specifies the type T
stored in the hash-set, the RCU
type used by hash-set, the comparison functor for the type T
and other features specific for the ordered list.Traits
- type traits. See split_list::type_traits for explanation. Instead of defining Traits
struct you may use option-based syntax with split_list::make_traits metafunction.SplitList
see SplitList general description.<cds/intrusive/split_list_rcu.h>
you should include appropriate RCU header file, see RCU type for list of existing RCU class and corresponding header files. For example, for general-purpose buffered RCU and mIchaelList-based split-list you should include: | typedef iterator_type<true> cds::intrusive::SplitListSet< cds::urcu::gc< RCU >, OrderedList, Traits >::const_iterator |
Const forward iterator.
For iterator's features and requirements see iterator
| typedef iterator_type<false> cds::intrusive::SplitListSet< cds::urcu::gc< RCU >, OrderedList, Traits >::iterator |
Forward iterator.
The forward iterator for a split-list has some features:
OrderedList
Therefore, the use of iterators in concurrent environment is not good idea. Use the iterator on the concurrent container for debug purpose only.
|
protected |
Split-list node traits.
This traits is intended for converting between underlying ordered list node type list_node_type and split-list node type node_type
|
inline |
Initialize split-ordered list of default capacity.
The default capacity is defined in bucket table constructor. See split_list::expandable_bucket_table, split_list::static_ducket_table which selects by split_list::dynamic_bucket_table option.
|
inline |
Initialize split-ordered list.
| nItemCount | estimate average of item count |
| nLoadFactor | load factor - average item count per bucket. Small integer up to 8, default is 1. |
|
inline |
|
inline |
Clears the set (non-atomic)
The function unlink all items from the set. The function is not atomic. Therefore, clear
may be used only for debugging purposes.
|
inline |
Checks if the set is empty.
Emptiness is checked by item counting: if item count is zero then the set is empty. Thus, the correct item counting feature is an important part of split-list set implementation.
|
inline |
|
inline |
Ensures that the val
exists in the set.
The operation performs inserting or changing data with lock-free manner.
If the item val
is not found in the set, then val
is inserted into the set. Otherwise, the functor func
is called with item found. The functor signature is:
with arguments:
bNew
- true
if the item has been inserted, false
otherwiseitem
- item of the setval
- argument val
passed into the ensure
function If new item has been inserted (i.e. bNew
is true
) then item
and val
arguments refers to the same thing.The functor can change non-key fields of the item
; however, func
must guarantee that during changing no any other modifications could be made on this item by concurrent threads.
You can pass func
argument by value or by reference using boost::ref
or cds::ref.
The function makes RCU lock internally.
Returns std::pair<bool, bool> where first
is true
if operation is successfull, second
is true
if new item has been added or false
if the item with key
already is in the set.
|
inline |
Deletes the item from the set.
The function searches an item with key equal to val
in the set, unlinks it from the set, and returns true
. If the item with key equal to val
is not found the function return false
.
Difference between erase and unlink
functions: erase
finds a key and deletes the item found. unlink
finds an item by key and deletes it only if val
is an item of that set, i.e. the pointer to item found is equal to &val
.
RCU synchronize
method can be called, therefore, RCU should not be locked.
Note the hash functor should accept a parameter of type Q
that can be not the same as value_type
.
|
inline |
Deletes the item from the set.
The function searches an item with key equal to val
in the set, call f
functor with item found, unlinks it from the set, and returns true
. The disposer specified by OrderedList
class template parameter is called by garbage collector GC
asynchronously.
The Func
interface is
The functor can be passed by reference with boost:ref
If the item with key equal to val
is not found the function return false
.
RCU synchronize
method can be called, therefore, RCU should not be locked.
Note the hash functor should accept a parameter of type Q
that can be not the same as value_type
.
|
inline |
Deletes the item from the set using pred
for searching.
The function is an analog of erase(Q const&) but cmp
is used for key compare. Less
has the interface like std::less
. pred
must imply the same element order as the comparator used for building the set.
|
inline |
Deletes the item from the set using pred
for searching.
The function is an analog of erase(Q const&, Func) but cmp
is used for key compare. Less
has the interface like std::less
. pred
must imply the same element order as the comparator used for building the set.
|
inline |
Extracts an item from the set.
The function searches an item with key equal to val
in the set, unlinks it, and returns pointer to an item found. If the item with the key equal to val
is not found the function returns NULL
.
|
inline |
Extracts an item from the set using pred
for searching.
The function is an analog of extract(Q const&) but cmp
is used for key compare. Less
has the interface like std::less
. pred
must imply the same element order as the comparator used for building the set.
|
inline |
Finds the key val
.
The function searches the item with key equal to val
and calls the functor f
for item found. The interface of Func
functor is:
where item
is the item found, val
is the find
function argument.
You can pass f
argument by value or by reference using boost::ref
or cds::ref.
The functor can change non-key fields of item
. Note that the functor is only guarantee that item
cannot be disposed during functor is executing. The functor does not serialize simultaneous access to the set item
. If such access is possible you must provide your own synchronization schema on item level to exclude unsafe item modifications.
The val
argument is non-const since it can be used as f
functor destination i.e., the functor can modify both arguments.
Note the hash functor specified for class Traits
template parameter should accept a parameter of type Q
that can be not the same as value_type
.
The function applies RCU lock internally.
The function returns true
if val
is found, false
otherwise.
|
inline |
Finds the key val
.
The function searches the item with key equal to val
and calls the functor f
for item found. The interface of Func
functor is:
where item
is the item found, val
is the find
function argument.
You can pass f
argument by value or by reference using boost::ref
or cds::ref.
The functor can change non-key fields of item
. Note that the functor is only guarantee that item
cannot be disposed during functor is executing. The functor does not serialize simultaneous access to the set item
. If such access is possible you must provide your own synchronization schema on item level to exclude unsafe item modifications.
Note the hash functor specified for class Traits
template parameter should accept a parameter of type Q
that can be not the same as value_type
.
The function applies RCU lock internally.
The function returns true
if val
is found, false
otherwise.
|
inline |
|
inline |
Finds the key val
with pred
predicate for comparing.
The function is an analog of find(Q&, Func) but cmp
is used for key compare. Less
has the interface like std::less
. cmp
must imply the same element order as the comparator used for building the set.
|
inline |
Finds the key val
with pred
predicate for comparing.
The function is an analog of find(Q const&, Func) but cmp
is used for key compare. Less
has the interface like std::less
. pred
must imply the same element order as the comparator used for building the set.
|
inline |
Finds the key val
with pred
predicate for comparing.
The function is an analog of find(Q const&) but cmp
is used for key compare. Less
has the interface like std::less
. pred
must imply the same element order as the comparator used for building the set.
|
inline |
Inserts new node.
The function inserts val
in the set if it does not contain an item with key equal to val
.
The function makes RCU lock internally.
Returns true
if val
is placed into the set, false
otherwise.
|
inline |
Inserts new node.
This function is intended for derived non-intrusive containers.
The function allows to split creating of new item into two part:
f
functor to initialize value-field of val
.The functor signature is:
where val
is the item inserted. User-defined functor f
should guarantee that during changing val
no any other changes could be made on this set's item by concurrent threads. The user-defined functor is called only if the inserting is success and may be passed by reference using boost::ref
The function makes RCU lock internally.
|
inline |
Unlinks the item val
from the set.
The function searches the item val
in the set and unlinks it from the set if it is found and is equal to val
.
Difference between erase and unlink
functions: erase
finds a key and deletes the item found. unlink
finds an item by key and deletes it only if val
is an item of that set, i.e. the pointer to item found is equal to &val
.
RCU synchronize
method can be called, therefore, RCU should not be locked.
The function returns true
if success and false
otherwise.


Distributed storage system
NoSQL
Multi-level key-value pair data model
High availability
Eventual consistency
Strong consistency & low latency = DREAM
But the CAP theorem says that we have to choose...
What trade-off would be the best?
Depends...
No Transaction support
But Atomicity and Isolation at a row level
Standard replication factor in Cassandra: N=3
How many nodes should respond before we can consider a read/write operation as completed?
R/W parameters define the consistency level we want.
A tool to easily create and destroy an Apache Cassandra cluster on localhost
Thinkpad Intel i7 CPU, 8 GB of memory, a HDD with a rotational speed of 7200 rpm, Linux 3.7.1 kernel
Cassandra 1.2.0 cluster
8 nodes, replication factor of 3
Look at ratios and differences, not at the values themselves!
We need R + W > 3. Possible configurations:
R + W ≤ 3. Possible configurations:
But... R and W are parameters. They don't make sense for an application developer like the latency does.
We need better metrics to measure weak consistency
Probabilistically Bounded Staleness (PBS) is an algorithm developed at UC Berkeley that allows to make predictions about the probability of consistent reads for Dynamo-style quorum replication
(t = 100ms, k = 1) gives the probability that we will read the last written version if we wait 100 ms after it was written.
t-visibility answers to the question
How eventual is eventual consistency?
k-staleness answers to the question
How consistent is eventual consistency?
Implementation of a PBS predictor in a module of Cassandra 1.2.0
Need to manually run a workload on the cluster for PBS predictor to collect data and make predictions
PBS gives metrics for measuring consistency that make sense for an application developer.
| R/W | Read performance | P(consistent R) for (t=100ms, k=1) |
|---|---|---|
| 3/1 | 1.0x | 1 |
| 2/1 | 1.4x | 0.79 |
| 1/1 | 2.4x | 0.49 |


See the entry of new countries in the Tour de France over a given period
View the distribution of the peloton by country for a given year.
Prev


December 19th, 2020
RegisterDiscord ServerQuHacks is a day-long hackathon by students, for students. Join us for a day of creation, innovation, and fun with fellow middle and high schoolers interested in coding. From seasoned coding veterans to first-time programmers, all are welcome to join. This year, QuHacks will be held entirely virtually.
Discover your ability to create change by developing technology to solve real-world problems, attend workshops, and meet some new friends. We can't wait to see you there!
| Time (EST) | Events |
|---|---|
| 5:00PM-6:00PM | Workshop Rotation 0: Java, Python, Web Development, and Introductory Algorithms |
| 7:00PM-8:00PM | Guest Talk: Web Accessibility/Design |
| Time (EST) | Events | Recommended Project Progression |
|---|---|---|
| 9:00-9:30AM | Welcome Ceremony | Listen intently! |
| 10:00-11:00AM | Workshop rotation 1: Java, Python, Web Development, and Introductory Algorithms | Brainstorming/planning! |
| 11:00AM-12:00PM | Workshop rotation 2: Java, Python, Web Development, and Advanced Algorithms Alon Grinshpoon (CEO and founder of echoAR) presents: "Build a Cloud-Connected AR/VR App in 15 Minutes or Less" |
Coding! |
| 12:00-1:00PM | Novice Division problems released, Lunch | Eat something! |
| 1:00-2:00PM | Computer Science Student College Panel | Back to coding! |
| 2:00-3:00PM | Guest Talk: Data Ethics | Keep coding! |
| 3:00-4:00PM | Guest Talk: Web Accessibility/Design | Great time to integrate! |
| 4:00-7:00PM | Work Time | Debugging and perfecting submissions! |
| 7:00-9:00PM | Submissions due, Judging begins | Take a breather! |
| 9:00-9:30PM | Awards and Closing Ceremony | Bask in the glory of your creation. |
A hackathon is a coding marathon - it's like a real-time programming fair where students develop an idea and bring it to life through code. A project could be a game, website, app, robot, Arduino project, whatever! If you enjoy programming or technology in general, hackathons are great places to meet friendly, like-minded people.
No, you don't! Even if you aren't able to code beforehand, you can attend workshops, learn some code, and still submit a project.
You are eligible to participate in QuHacks 2020 if you currently attend school (middle or high school) in Maryland, Pennsylvania, Delaware, West Virginia, Virginia, or DC, and reside in one of those states (or DC). If you have already graduated high school but would still like to attend the event, please consider volunteering or mentoring for the event! Send us an email at<EMAIL_ADDRESS>for more information on contributing to QuHacks, or if you have any questions about our eligibility requirements.
Nothing! This event is entirely free of charge, thanks to our awesome sponsors. If you're interested in becoming a sponsor, please email us at<EMAIL_ADDRESS>But of course! We will be giving away up to $840 in prizes this year; you could win up to $50 per person on your team! You can get a sneak peek of the prizes at https://quhacks2020.devpost.com/
The only thing you need is a device that can connect to the internet, and any materials needed for creating your hack! QuHacks 2020 will be held entirely online, so you can join in from the comfort (and safety) of your own home.
Yes indeed! All the same parts of QuHacks you know and love will still be happening, just virtually (except for the food; we don't have that kind of technology yet, but that would be a great hackathon project if you figure it out!). We will also be opening a moderated Discord server where hackers can chat, ask questions, and receive important announcements. Check our schedule for more information on what will be happening when.
Anyone caught working on past projects will be forced to sit in the corner and wear the dunce hat.
No problem! Many participants sign up without a team, and you can meet and work with new people. You can also choose to work alone. The limit is 4 people per team.
At some point, Freddy had a cheesy description here. However, we can't seem to decide what Freddy is, so we'll just say he's that one duck you keep seeing around of this website.
Adam is a senior at Centennial High School. He participates in a variety of Mock Trial, business, and computer science clubs and organizations. He also plays percussion in a number of school bands. In his free time, he enjoys computer science, food, and music.
Keshav is a senior at Centennial High School, where he is part of the school's tennis team, computer science club, robotics club, and multiple honor societies. Outside of school, he is a part of APL’s ASPIRE program, a tutor for Teens Give, and is the co-founder of a volunteer organization called WebPoint. In his free time, Keshav competes at hackathons, plays basketball, and listens to music.
Anna is a junior at Marriotts Ridge High School, where she is involved with SHE++, speech, HOSA, and FBLA. Outside of school, she is part of the HopeWorks Youth Leadership Program, the APL STEM Academy, EK2K&BC, TeCanal, and MathTrekz. In her free time, Anna loves spending time with her family and playing the piano, violin, viola, and guitar.
Lucas is a senior at George Washington Carver Center for Arts and Technology, where he studies Information Technology/Interactive Media Production. He is a part of the Competitive Coding Team, Math and Science Honors Societies, and the Cross Country and Track teams. Lucas enjoys programming and running in his free time.
Abishay is a senior at Mt. Hebron high school and is a part of the tennis team, FBLA, computer science club, and president of the Cybersecurity club. He spends his free time playing tennis, programming, or listening to music.
Jesse is a sophomore at Centennial High School, where he is a board member of the It’s Academic Club, and actively affiliated with Science Bowl, Science Olympiad, Speech/Debate, and Red Cross. He is also the operations officer for tutoring service AST (Achieve Success Together). In his free time, he enjoys learning new programming languages, cooking, and studying.
Julian is a sophomore at Marriotts Ridge High School, where he has partaken in the school's math club and science club. He is also involved in teaching other kids math through a volunteer program. In his spare time, he loves to solve programming problems, work with web services, and listen to music.
Arjav is a junior at Marriotts Ridge High School, where he takes part in Science Olympiad and computer science clubs. He is also involved in FBLA. In his free time, he enjoys listening to music, playing sports, and watching Netflix shows.
Laura is a sophomore at Marriotts Ridge High School, where she is part of the Mock Trial team, SHE++, and Writer’s Guild. She enjoys being alive. It’s nice. In her free time, she likes to read, bike, and bother her sister.
Mohamed Benalla is a Centennial High School senior and a part of the Model UN, Active Minds, Make-A-Wish and MSA clubs at his school. Outside of school, he loves getting involved with and volunteering in the community. He likes to spend his free time lifting weights, making music playlists, and learning about programming and philosophy.
Hannah is a first year at the Massachusetts Institute of Technology, where she plans to major in Course 6-3 (computer science). She has a passion for music, programming, and encouraging girls to explore STEM. In her spare time, she enjoys doodling, listening to music, and coding.
Michelle is a first year at Carnegie Mellon University, where she plans to major in Information Systems and minor in Computer Science and Human-Computer Interaction. She loves solving challenging problems through code and design and hopes to spread this love to others through educational outreach. In her free time, she enjoys drawing/painting, making Spotify playlists, and reading.


Customer
Type
Instance ID
Order No
Last Modified Date
Last Modified By
Next Action
Next Action With
Primary Contact
Interested Parties
Internal Owner
Unbranding Delivered
Issue No
Delivered Version


Submit
Repeat All
Shuffle
YouPlay
FolderPath
Create Playlist
Playlists
Arijit Hits
Mika Rocks
Bollywood Romance
English Pops
Old Classics
Play Song
Your browser does not support the audio element.
Prev
Repeat Current
Next
Your browser does not support the video tag.
×
Enter complete folder path of music directory.
eg. C:/Users/krrish/Downloads/favourites
Path
×
Enter name of playlist
Name
Please specify folder path by clicking on FolderPath button.


{{feed.title}}
{{feed.description}}
{{podcast.name}}
{{podcast.publishedDate}}
Your browser doesn't support the HTML audio tag.
{{selectedPodcast.description}}


Update Information
Firstname *
Lastname *
Email *
Credit Score
Excellent (720+)
Good (660-719)
Fair (600-659)
Poor (< 600)
Birth Year
Highest Level of Education
Associate
Bachelor
High School
Masters
Others
Other Grad Degree
Employment Status
Employed
Military
Non-Employed
Others
Retired
Self-Employed
Zip Code
Annual Income
*
These fields are required.


Time: 10:00 A.M.
Tickets: Free with registration
What we're doing:
This event is in conjunction with the resolution to United Nations member states to observe an "International Day of Education"
The resolution is lead by the distinguished Mission Nigeria to the United Nations.
Collegiate Congress, the largest student advocacy organization in New York City,
is the principle consultant and researcher of this resolution.


|
|||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
| Interface Summary | |
| Spans | Expert: an enumeration of span matches. |
| Class Summary | |
| SpanFirstQuery | Matches spans near the beginning of a field. |
| SpanNearQuery | Matches spans which are near one another. |
| SpanNotQuery | Removes matches which overlap with another SpanQuery. |
| SpanOrQuery | Matches the union of its clauses. |
| SpanQuery | Base class for span-based queries. |
| SpanTermQuery | Matches spans containing a term. |
The calculus of spans.
A span is a <doc,startPosition,endPosition>
tuple.
The following span query operators are implemented:
q
whose end position is less than
n
. This can be used to constrain matches to the first
part of the document.For example, a span query which matches "John Kerry" within ten words of "George Bush" within the first 100 words of the document could be constructed with:
SpanQuery john = new SpanTermQuery(new Term("content", "john")); SpanQuery kerry = new SpanTermQuery(new Term("content", "kerry")); SpanQuery george = new SpanTermQuery(new Term("content", "george")); SpanQuery bush = new SpanTermQuery(new Term("content", "bush")); SpanQuery johnKerry = new SpanNearQuery(new SpanQuery[] {john, kerry}, 0, true); SpanQuery georgeBush = new SpanNearQuery(new SpanQuery[] {george, bush}, 0, true); SpanQuery johnKerryNearGeorgeBush = new SpanNearQuery(new SpanQuery[] {johnKerry, georgeBush}, 10, false); SpanQuery johnKerryNearGeorgeBushAtStart = new SpanFirstQuery(johnKerryNearGeorgeBush, 100);
Span queries may be freely intermixed with other Lucene queries. So, for example, the above query can be restricted to documents which also use the word "iraq" with:
Query query = new BooleanQuery(); query.add(johnKerryNearGeorgeBushAtStart, true, false); query.add(new TermQuery("content", "iraq"), true, false);
|
|||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |