gcg, msf_aln : MSF alignment.
pir_aln : pir alignment.
fasta_aln : fasta alignment.
phylip : Phylip format.
pir_seq : pir sequences (no gap).
fasta_seq : fasta sequences (no gap).
As well as:
score_ascii : causes the output of a reliability flag
score_html : causes the output to be a reliability plot in HTML
score_pdf : idem in PDF (if ps2pdf is installed on your system).
score_ps : idem in postscript.
More than one format can be indicated:
PROMPT: t_coffee sample_seq1.fasta -output=clustalw,gcg, score_html
A publication describing the CORE index is available on:
http://www.tcoffee.org/Publications/Pdf/core.pp.pdf
Usage: -outseqweight=<filename>
Default: not used
Indicates the name of the file in which the sequences weights should be saved..
Usage: -case=<keep,upper,lower>
Default: -case=keep
Instructs the program on the case to be used in the output file (Clustalw uses upper case). The default keeps the case and makes it possible to maintain a mixture of upper and lower case residues.
If you need to change the case of your file, you can use seq_reformat:
PROMPT: t_coffee –other_pg seq_reformat –in sample_aln1.aln –action +lower –output clustalw
Usage: deprecated
Usage: -outseqweight=<name of the file containing the weights applied>
Default: -outseqweight=no
Will cause the program to output the weights associated with every sequence in the dataset.
Usage: -outorder=<input OR aligned OR filename>
Default:-outorder=input
Sets the order of the sequences in the output alignment: -outorder=input means the sequences are kept in the original order. -outorder=aligned means the sequences come in the order indicated by the tree. This order can be seen as a one-dimensional projection of the tree distances. –outdorder=<filename>Filename is a legal fasta file, whose order will be used in the final alignment.
Usage: -inorder=<input OR aligned>
Default:-inorder=aligned
Multiple alignments based on dynamic programming depend slightly on the order in which the incoming sequences are provided. To prevent this effect sequences are arbitrarily sorted at the beginning of the program (-inorder=aligned). However, this affects the sequence order within the library. You can switch this off by ststing –inorder=input.
Usage: -seqnos=<on or off>
Default:-seqnos=off
Causes the output alignment to contain residue numbers at the end of each line:
T-COFFEE
seq1 aaa---aaaa--------aa 9
seq2 a-----aa-----------a 4
seq1 a-----------------a 11
seq2 aaaaaaaaaaaaaaaaaaa 19
Although, it does not necessarily do so explicitly, T-Coffee always end up combining libraries. Libraries are collections of pairs of residues. Given a set of libraries, T-Coffee makes an attempt to assemble the alignment with the highest level of consistence. You can think of the alignment as a timetable. Each library pair would be a request from students or teachers, and the job of T-Coffee would be to assemble the time table that makes as many people as possible happy…
Usage: -out_lib=<name of the library,default,no>
Default:-out_lib=default
Sets the name of the library output. Default implies <run_name>.tc_lib
Usage: -lib_only
Default: unset
Causes the program to stop once the library has been computed. Must be used in conjunction with the flag –out_lib
Usage: -newtree=<tree file>
Default: No file specified
Indicates the name of the file into which the guide tree will be written. The default will be <sequence_name>.dnd, or <run_name.dnd>. The tree is written in the parenthesis format known as newick or New Hampshire and used by Phylips (see the format section).
Do NOT confuse this guide tree with a phylogenetic tree.
The CORE is an index that indicates the consistency between the library of piarwise alignments and the final multiple alignment. Our experiment indicate that the higher this consistency, the more reliable the alignment. A publication describing the CORE index can be found on:
http://www.tcoffee.org/Publications/Pdf/core.pp.pdf
Usage: -evaluate_mode=<t_coffee_fast,t_coffee_slow,t_coffee_non_extended >
Default: -evaluate_mode=t_coffee_fast
This flag indicates the mode used to normalize the t_coffee score when computing the reliability score.
t_coffee_fast: Normalization is made using the highest score in the MSA. This evaluation mode was validated and in our hands, pairs of residues with a score of 5 or higher have 90 % chances to be correctly aligned to one another.
t_coffee_slow: Normalization is made using the library. This usually results in lower score and a scoring scheme more sensitive to the number of sequences in the dataset. Note that this scoring scheme is not any more slower, thanks to the implementation of a faster heuristic algorithm.
t_coffee_non_extended: the score of each residue is the ratio between the sum of its non extended scores with the column and the sum of all its possible non extended scores.
These modes will be useful when generating colored version of the output, with the –output flag:
PROMPT: t_coffee sample_seq1.fasta –evaluate_mode t_coffee_slow –output score_ascii, score_html
PROMPT: t_coffee sample_seq1.fasta –evaluate_mode t_coffee_fast –output score_ascii, score_html
PROMPT: t_coffee sample_seq1.fasta –evaluate_mode t_coffee_non_extended –output score_ascii, score_html
Usage: -run_name=<your run name>
Default: no default set
This flag causes the prefix <your sequences> to be replaced by <your run name> when renaming the default output files.
Usage: -quiet=<stderr,stdout,file name OR nothing>.
Default:-quiet=stderr
Redirects the standard output to either a file. -quiet on its own redirect the output to /dev/null.
This flag indicates that the program must produce the alignment. It is here for compatibility with ClustalW.
Warning: These flags will only work within the APDB package that can be invoked via the –other_pg parameter of T-Coffee:
t_coffee –other_pg apdb –aln <your aln>
Usage: -aln=<file_name>.
Default:none
Indicates the name of the file containing the sequences that need to be evaluated. The sequences whose structure is meant to be used must be named according to their PDB identifier.
The format can be FASTA, CLUSTAL or any of the formats supported by T-Coffee. APDB only evaluates residues in capital and ignores those in lower case. If your sequences are in lower case, you can upper case them using seq_reformat:
PROMPT: t_coffee –other_pg seq_reformat –in 3d_sample4.aln –action +upper –output clustalw > 3d_sample4.cw_aln
The alignment can then be evaluated using the defaultr of APDB:
PROMPT: t_coffee –other_pg apdb –aln 3d_sample4.aln
The alignment can contain as many structures as you wish.
Usage: -n_excluded_nb=<integer>.
Default:1
When evaluating the local score of a pair of aligned residues, the residues immediately next to that column should not contribute to the measure. By default the first to the left and first to the right are excluded.
Usage: -maximum_distance=<float>.
Default:10
Size of the neighborhood considered around every residue. If .-local_mode is set to sphere, -maximum_distance is the radius of a sphere centered around each residue. If –local_mode is set to window, then –maximum_distance is the size of the half window (i.e. window_size=-maximum_distance*2+1).
Usage: -similarity_threshold=<integer>.
Default:70
Fraction of the neighborhood that must be supportive for a pair of residue to be considered correct in APDB. The neighborhood is a sphere defined by –maximum_distance, and the support is defined by –md_threshold.
Usage: -local_mode=<sphere,window>.
Default:sphere
Defines the shape of a neighborhood, either as a sphere or as a window.
Usage: -filter=<0.00-1.00>.
Default:1.00
Defines the centiles that should be kept when making the local measure. Foir instance, -filter=0.90 means that the the 10 last centiles will be removed from the evaluation. The filtration is carried out on the iRMSD values.
Usage: -print_rapdb (FLAG)
Default:off
This causes the prints out of the exact neighborhood of every considered pair of residues.
This flag is meant to control the output name of the colored APDB output. This file will either display the local APDB score or the local iRMD, depending on the value of –color_mode. The default format is defined by –ouptut and is score_html.
Usage: -color_mode=<apdb, irmsd>
Default:apdb
This flag is meant to control the colored APDB output (local score). This file will either display the local APDB score or the local iRMD.
Building a Server
We maintain a T-Coffee server (www.tcoffee.org). We will be pleased to provide anyone who wants to set up a similar service with the sources
T-Coffee stores a lots of information in locations that may be unsuitable when running a server.
By default, T-Coffee will generate and rely on the follwing directory structure:
/home/youraccount/ #HOME_4_TCOFFEE
HOME_4_TCOFFEE/.t_coffee/ #DIR_4_TCOFFEE
DIR_4_TCOFFEE/cache #CACHE_4_TCOFFEE
DIR_4_TCOFFEE/tmp #TMP_4_TCOFFEE
DIR_4_TCOFFEE/methods #METHOS_4_TCOFFEE
DIR_4_TCOFFEE/mcoffee #MCOFFEE_4_TCOFFEE
By default, all these directories are automatically created, following the dependencies suggested here.
The first step is the determination of the HOME. By default the program tries to use HOME_4_TCOFFEE, then the HOME variable and TMP or TEMP if HOME is not set on your system or your account. It is your responsibility to make sure that one of these variables is set to some valid location where the T-Coffee process is allowed to read and write.
If no valid location can be found for HOME_4_TCOFFEE, the program exits. If you are running T-Coffee on a server, we recommend to hard set the following locations, where your scratch is a valid location.
HOME_4_TCOFFEE=”your scratch”
TMP_4_TCOFFEE=”your scratch”
DIR_4_TCOFFEE=”your scratch”
CACHE_4_TCOFFEE=”your scratch”
NO_ERROR_REPORT_4_TCOFFEE=1
Note that it is a good idea to have a cron job that cleans up this scratch area, once in a while.
A common source of error when running a server: T-Coffee MUST output the .dnd file because it re-reads it to carry out the progressive alignment. By default T-Coffee outputs this file in the directory where the process is running. If the T-Coffee process does not have permission to write in that directory, the computation will abort...
To avoid this, simply specify the name of the output tree:
-newtree=<writable file (usually in /tmp)>
Chose the name so that two processes may not over-write each other dnd file.
The t_coffee process MUST be allowed to write in some scratch area, even when it is ran by Mr nobody... Make sure the /tmp/ partition is not protected.
T-Coffee may call various programs while it runs (lalign2list by defaults). Make sure your process knows where to find these executables.
Formats
Parameter files used with -parameters, -t_coffee_defaults, -dali_defaults... Must contain a valid parameter string where line breaks are allowed. These files cannot contain any comment, the recommended format is one parameter per line:
<parameter name>=<value1>,<value2>....
<parameter name>=.....
Sequence name handling is meant to be fully consistent with ClustalW (Version 1.75). This implies that in some cases the names of your sequences may be edited when coming out of the program. Five rules apply:
Naming Your Sequences the Right Way
1-No Space
Names that do contain spaces, for instance:
>seq1 human_myc
will be turned into
>seq1
It is your responsibility to make sure that the names you provide are not ambiguous after such an editing. This editing is consistent with Clustalw (Version 1.75)
2-No Strange Character
Some non alphabetical characters are replaced with underscores. These are: ';:()'
Other characters are legal and will be kept unchanged. This editing is meant to keep in line with Clustalw (Version 1.75).
3-> is NEVER legal (except as a header token in a FASTA file)
4-Name length must be below 100 characters, although 15 is recommended for compatibility with other programs.
5-Duplicated sequences will be renamed (i.e. sequences with the same name in the same dataset) are allowed but will be renamed according to their original order. When sequences come from multiple sources via the –in flag, consistency of the renaming is not guaranteed. You should avoid duplicated sequences as they will cause your input to differ from your output thus making it difficult to track data.
Most common formats are automatically recognized by t_coffee. See -in and the next section for more details. If your format is not recognized, use readseq or clustalw to switch to another format. We recommend Fasta.
PDB format is recognized by T-Coffee. T-Coffee uses extract_from_pdb (cf –other_pg flag). extract_from_pdb is a small embeded module that can be used on its own to extract information from pdb files.
RNA structures can either be coded as T-Coffee libraries, with each line indicating two paired residues, or as alifold output. The selex format is also partly supported (see the seq_reformat tutorial on RNA sequences handling).
Sequences can come in the following formats: fasta, pir, swiss-prot, clustal aln, msf aln and t_coffee aln. These formats are the one automatically recognized. Please replace the '*' sign sometimes used for stop codons with an X.
Alignments can come in the following formats: msf, ClustalW, Fasta, Pir and t_coffee. The t_coffee format is very similar to the ClustalW format, but slightly more flexible. Any interleaved format with sequence name on each line will be correctly parsed:
<empy line> [Facultative]n
<line of text> [Required]
<line of text> [Facultative]n
<empty line> [Required]
<empty line> [Facultative]n
<seq1 name><space><seq1>
<seq2 name><space><seq2>
<seq3 name><space><seq3>
<empty line> [Required]
<empty line> [Facultative]n
<seq1 name><space><seq1>
<seq2 name><space><seq2>
<seq3 name><space><seq3>
<empty line> [Required]
<empty line> [Facultative]n
An empty line is a line that does NOT contain amino-acid. A line that contains the ClustalW annotation (.:*) is empty.
Spaces are forbidden in the name. When the alignment is being read, non character signs are ignored in the sequence field (such as numbers, annotation…).
Note: a different number of
lines in the different blocks will cause the program to crash or hang.
This is currently the only supported format.
!<space> TC_LIB_FORMAT_01
<nseq>
<seq1 name> <seq1 length> <seq1>
<seq2 name> <seq2 length> <seq2>
<seq3 name> <seq3 length> <seq3>
!Comment
(!Comment)n
#Si1 Si2
Ri1 Ri2 V1 (V2, V3)
#1 2
12 13 99 (12/0 vs 13/1, weight 99)
12 14 70
15 16 56
#1 3
12 13 99
12 14 70
15 16 56
!<space>SEQ_1_TO_N
Si1: index of Sequence 1
Ri1: index of residue 1 in seq1
V1: Integer Value: Weight
V2, V3: optional values
Note 1: There is a space
between the ! And SEQ_1_TO_N
Note 2: The last line (!
SEQ_1_TO_N) indicates that:
Sequences and residues are numbered from 1 to N, unless the token SEQ_1_TO_N is omitted, in which case the sequences are numbered from 0 to N-1, and residues are from 1 to N.
Residues do not need to be sorted, and neither do the sequences. The same pair can appear several times in the library. For instance, the following file would be legal:
#1 2
12 13 99
#1 2
15 16 99
#1 1
12 14 70
It is also poosible to declare ranges of resdues rather than single pairs. For instance, the following:
#0 1
+BLOCK+ 10 12 14 99
+BLOCK+ 15 30 40 99
#0 2
15 16 99
#0 1
12 14 70
The first statement BLOCK declares a BLOCK of length 10, that starts on position 12 of sequence 1 and position 14 of sequence 2 and where each pair of residues within the block has a score of 99. The second BLOCK starts on residue 30 of 1, residue 40 of 2 and extends for 15 residues.
Blocks can overalp and be incompatible with one another, just like single constraints.
A simpler format is being developed, however it is not yet fully supported and is only mentioned here for development purpose.
! TC_LIB_FORMAT_02
#S1 SEQ1 [OPTIONAL]
#S2 SEQ2 [OPTIONAL]
...
!comment [OPTIONAL]
S1 R1 Ri1 S2 R2 Ri2 V1 (V2 V3)
=> N R1 Ri1 S2 R2 Ri2 V1 (V2 V3)
...
S1, S2: name of sequence 1 and 2
SEQ1: sequence of S1
Ri1, Ri2: index of the residues in their respective sequence
R1, R2: Residue type
V1, V2, V3: integer Values (V2 and V3 are optional)
Value1, Value 2 and Value3 are optional.
These are lists of pairs of sequences that must be used to compute a library. The format is:
<nseq> <S1> <S2>
2 hamg2 globav
3 hamgw hemog singa
...
If the required substitution matrix is not available, write your own in a file using the following format:
# CLUSTALW_MATRIX FORMAT
$
v1
v2 v3
v4 v5 v6
...
$
v1, v2... are integers, possibly negatives.
The order of the amino acids is: ABCDEFGHIKLMNQRSTVWXYZ, which means that v1 is the substitution value for A vs A, v2 for A vs B, v3 for B vs B, v4 for A vs C and so on.
# BLAST_MATRIX FORMAT
# ALPHABET=AGCT
A G C T
A 0 1 2 3
G 0 2 3 4
C 1 1 2 3
...
The alphabet can be freely defined
Create your own weight file, using the -seq_weight flag:
# SINGLE_SEQ_WEIGHT_FORMAT_01
seq_name1 v1
seq_name2 v2
...
No duplicate allowed. Sequences not included in the set of sequences provided to t_coffee will be ignored. Order is free. V1 is a float. Un-weighted sequences will see their weight set to 1.
Known Problems
1-Sensitivity to sequence order: It is difficult to implement a MSA algorithm totally insensitive to the order of input of the sequences. In t_coffee, robustness is increased by sorting the sequences alphabetically before aligning them. Beware that this can result in confusing output where sequences with similar name are unexpectedly close to one another in the final alignment.
2-Nucleotides sequences with long stretches of Ns will cause problems to lalign, especially when using Mocca. To avoid any problem, filter out these nucleotides before running mocca.
3-Stop codons are sometimes coded with '*' in protein sequences. This will cause the program to crash or hang. Please replace the '*' signs with an X.
4-Results can differ from one architecture to another, due rounding differences. This is caused by the tree estimation procedcure. If you want to make sure an alignment is reproducible, you should keep the associated dendrogram.
5-Deploying the program on a
Technical Notes
These notes are only meant for internal development.
The following examples are only meant for internal development, and are used to insure stability from release to release
prf1: profile containing one structure
prf2: profile containing one structure
PROMPT: t_coffee Rsample_profile1.aln,Rsample_profile2.aln -mode=3dcoffee -outfile=aligned_prf.aln
These command lines have been checked before every release (along with the other CL in this documentation:
-external methods;
PROMPT: t_coffee sample_seq1.fasta –in=Mclustalw_pair,Mclustalw_msa,Mslow_pair –outfile=clustal_text
-fugue_client
PROMPT: t_coffee –in Ssample_seq5.fasta Pstruc4.pdb Mfugue_pair
-A list of command lines kindly provided by James Watson (used to crash the pg before version 3.40)
PROMPT: t_coffee -in Sseq.fas P2PTC Mfugue_pair
PROMPT: t_coffee -in S2seqs.fas Mfugue_pair -template_file SELF_P_
PROMPT: t_coffee -mode 3dcoffee -in Sseq.fas P2PTC
PROMPT: t_coffee -mode 3dcoffee -in S2seqs.fas -template_file SELF_P_
-A list of command lines that crashed the program before 3.81
PROMPT: t_coffee sample_seq6.fasta –in Mfast_pair Msap_pair Mfugue_pair –template_file template_file6.template
-A command line to read “relaxed” pdb files...
PROMPT: t_coffee –in Msap_pair Ssample_seq7.fasta –template_file template_file7.template –weight 1001 –out_lib test_lib7.tc_lib –lib_only
-Parsing of MARNA libraries
PROMPT: t_coffee –in Lmarna.tc_lib –outfile maran.test
-Parsing of long sequence lines:
PROMPT: t_coffee –in Asample_aln5.aln –outfile test.aln
To Do…
-implement UPGMA tree computation
-implement seq2dpa_tree
-debug dpa
-Reconciliate sequences and template when reading the template
-Add the server command lines to the checking procedure


Toggle navigation
Youtube Video Statistics
Videos Uploaded Trend
Channel trends
Tag Analysis
Correlations


@*
* Copyright 2023 HM Revenue & Customs
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*@
@import implicits.ImplicitCurrencyFormatter._
@import models.liabilitycalculation.viewmodels.IncomeBreakdownViewModel
@import views.html.layouts.unifiedLayout
@import views.html.components._
@import uk.gov.hmrc.govukfrontend.views.html.components._
@this(mainTemplate: unifiedLayout,
p: p,
table : table
)
@(incomeBreakdownViewModel: IncomeBreakdownViewModel, taxYear: Int, backUrl: String, isAgent: Boolean = false, btaNavPartial: Option[Html] = None)(implicit request: Request[_], messages: Messages)
@mainTemplate(pageTitle = messages("income_breakdown.heading", s"${taxYear - 1}", s"$taxYear"), backUrl = Some(backUrl),
isAgent = isAgent, btaNavPartial = btaNavPartial, useFallbackBackLink = true) {
@messages("income_breakdown.dates", s"${taxYear - 1}", s"$taxYear")
@messages("income_breakdown.heading")
@table(
tableCaptionMessage = "income_breakdown.heading",
tableCaptionSecondaryMessage = messages("income_breakdown.dates", s"${taxYear - 1}", s"$taxYear"),
tableCaptionId = "income_breakdown" ,
headerRow = ("income_breakdown.table.header", "income_breakdown.table.header.amount"),
rows = Seq(
("employment", incomeBreakdownViewModel.totalPayeEmploymentAndLumpSumIncome, false),
("benefits_received", incomeBreakdownViewModel.totalBenefitsInKind, false),
("allowable_expenses", incomeBreakdownViewModel.totalEmploymentExpenses, true),
("self_employment", incomeBreakdownViewModel.totalSelfEmploymentProfit, false),
("property", incomeBreakdownViewModel.totalPropertyProfit, false),
("profit_uk_furnished_holiday", incomeBreakdownViewModel.totalFHLPropertyProfit, false),
("profit_foreign_property", incomeBreakdownViewModel.totalForeignPropertyProfit, false),
("profit_eea_holiday", incomeBreakdownViewModel.totalEeaFhlProfit, false),
("foreign_dividends_income", incomeBreakdownViewModel.chargeableForeignDividends, false),
("foreign_saving_income", incomeBreakdownViewModel.chargeableForeignSavingsAndGains, false),
("foreign_pensions", incomeBreakdownViewModel.chargeableOverseasPensionsStateBenefitsRoyalties, false),
("foreign_income_abroad", incomeBreakdownViewModel.chargeableAllOtherIncomeReceivedWhilstAbroad, false),
("foreign_income_gains", incomeBreakdownViewModel.totalOverseasIncomeAndGains, false),
("foreign_benefits_gifts", incomeBreakdownViewModel.totalForeignBenefitsAndGifts, false),
("bbsi", incomeBreakdownViewModel.savingsAndGainsTaxableIncome, false),
("gains_insurance", incomeBreakdownViewModel.totalOfAllGains, false),
("dividends", incomeBreakdownViewModel.dividendsTaxableIncome, false),
("occupational_pensions", incomeBreakdownViewModel.totalOccupationalPensionIncome, false),
("state_benefit", incomeBreakdownViewModel.totalStateBenefitsIncome, false),
("share_schemes", incomeBreakdownViewModel.totalShareSchemesIncome, false),
("other_income", incomeBreakdownViewModel.otherIncome, false)
),
totalRow = Some(("income_breakdown.total", incomeBreakdownViewModel.totalIncomeReceived))
)
@p(){@messages("income_breakdown.guidance_software")}
}


Schedule: Sunday 21.10. - Tuesday 23.10.2012
19:00 - 20:00 Pre-conference meet-up
20:00 - 04:00 Sauna
8:00 - 9:00 Registration Opens
9:00 - 10:00 MongoDB: how to use it, scale it and what not to do with it.
10:00 - 11:00 Coffee / mingling times
11:00 - 12:00 [Track 1] Python in education - Why we went there [Track 2] Acceptance testing with Robot Framework
12:00 - 12:30 [Track 1] Data Visualization in Python/ Django [Track 2] Python for Simulating an Underwater Communication Channel
12:30 - 13:00 [Track 1] Playing with robots in Python [Track 2] Create beautiful command-line applications with Python
13:00 - 14:00 Lunch
14:00 - 15:00 [Track 1] mypy: a Python variant with seamless dynamic and static typing [Track 2] Taming Pythons with ZooKeeper
15:00 - 16:00 Python <3 Content systems - Managing millions of tracks for the masses
16:00 - 17:00 Lightning talks
17:00 - 18:00 [Keynote] Python at Google
Dinner. Evening activities (not Mölkky) organized for the students too
9:30 - 10:30 Python Finland's bi-annual meetup
10:30 - 11:00 Coffee
11:00 - 12:00 What's new in Python 3.3
12:00 - 14:00 Lunch
14:00 - 18:00 Sprints


This page describes the steps for cutting a new open source release.
Our versioning strategy is based on Semantic Versioning.
A new major release is needed when the public API changes in a backward-incompatible way -- for example, when removing deprecated interfaces.
Our public API includes (but is not limited to):
Care must also be taken when changing the format of any data stored by a live system, such as topology data or Vitess-internal tables (used for sequences, distributed transactions, etc.). Although this data is considered internal to Vitess, if any change breaks the upgrade path for a live system (for example, requiring that it be shut down and reinitialized from scratch), then it must be considered a breaking change.
A new minor release indicates that functionality has been added or changed in a backward-compatible way. This should be the majority of normal releases.
A patch release indicates that only a select set of bugfixes have been
cherrypicked onto the associated minor release. The expectation is that
upgrading by a patch release should be painless (not requiring any config
changes) and safe (isolated from active development on master
).
Pre-release versions should be labeled with a suffix like -beta.2
or -rc.1
.
The dot before the number is important for correct determination of version
precedence.
GitHub Milestones are hotlists for Issues and Pull Requests.
When it's time to start planning a new Vitess release, create a milestone for it and tag the following items under it:
Each minor release level (X.Y) should have a release branch named
release-X.Y
. This branch should diverge from master
when the code freeze for
that release is declared, after which point only bugfix PRs should be
cherrypicked onto the branch. All other activity on master
will go out with a
subsequent minor release.
git checkout master
git pull --ff-only upstream master
git checkout -b release-X.Y
git push upstream release-X.Y
The branches are named release-X.Y
to distinguish them from point-in-time
tags, which are named vX.Y.Z
.
While the release branch is a moving target, release tags mark point-in-time snapshots of the repository. Essentially, a tag assigns a human-readable name to a specific Git commit hash. Although it's technically possible to reassign a tag name to a different hash, we must never do this.
Since a tag represents a particular point in time, only patch releases (X.Y.Z) have tags. These should be defined as annotated tags from the associated release branch, after all cherrypicks have been applied and tested.
git checkout release-X.Y
git pull --ff-only upstream release-X.Y
git cherry-pick <commit> ...
git tag -a vX.Y.Z
Note that this only creates the tag in your local Git repository. Pushing the tag up to GitHub will be the last step, because it is the point of no return. That's because if someone has already fetched the tag, they will not get updated if you change the tag. Therefore, if you need to tag a different commit after pushing to upstream, you must increment the version number and create a new tag (i.e. a new release).
Note: You'll require an account on Docker Hub to execute the docker push
command.
# Rebuild all dependent images locally. Full chain: common->mysql57->base->lite.
make docker_bootstrap DOCKER_IMAGES="common mysql57"
make docker_base
make docker_lite
make docker_guestbook
MINOR=vX.Y
PATCH=vX.Y.Z
# Tag the new PATCH version.
docker tag vitess/lite vitess/lite:$PATCH
docker tag vitess/guestbook vitess/guestbook:$PATCH
# NOTE: Skip these two steps for pre-releases (e.g. alpha.1, rc.1 releases).
# Update the MINOR Docker tag to point to the latest PATCH version.
docker tag -f vitess/lite vitess/lite:$MINOR
docker tag -f vitess/guestbook vitess/guestbook:$MINOR
# Push the tags and images to Docker Hub.
docker push vitess/lite:$PATCH
docker push vitess/lite:latest
docker push vitess/guestbook:$PATCH
docker push vitess/guestbook:latest
# NOTE: Skip the next two steps for pre-releases (e.g. alpha.1, rc.1 releases).
docker push vitess/lite:$MINOR
docker push vitess/guestbook:$MINOR
Note that you do not push the base
image you built. That gets built
automatically by Docker Hub when you push the branch.
After pushing the Docker images, you have to make sure that our tutorials still work with them.
We must check that the local startup tutorial is not broken.
Instead of going through the steps manually, run the local_example
test which
should have the same commands as the tutorial. You can use our test.go
test
runner to run the test for all MySQL flavors. -parallel=2
will run two tests
in parallel to shorten the test duration.
./test.go -flavor=all -pull=false -parallel=2 local_example
Follow the Kubernetes tutorial, which will automatically use the latest Docker images you pushed.
TODO(mberlin): Describe how to launch our new cluster tests in test/cluster
instead.
We publish binary packages for our JDBC driver and Java client on Maven Central.
To do so, we use the http://oss.sonatype.org/ repository. New packages must be uploaded there ("deployed") and will be automatically published ("released"). Once they are released there, they will be automatically synchronized with Maven Central. The synchronization takes only several minutes but the update on http://search.maven.org may take up to two hours.
Sign up here.
Then you must be added as member to our io.vitess
namespace.
Therefore, file a JIRA ticket with Sonatype to get added (example for a different namespace).
Set up GPG
Follow Sonatype's GPG instructions.
Install gpg-agent
(needed below) e.g. on Ubuntu via: sudo apt-get install gnupg-agent
Login configuration
Create the settings.xml
in the $HOME/.m2/
directory as described in their instructions.
Make sure you are in the release branch.
Change the version number in all pom.xml
files with the "versions" plugin:
# The Java version must not have the leading "v".
# Example: 2.1.0 and not v2.1.0.
# Use Bash substitution to remove the leading "v".
JAVA_VERSION=${PATCH/v/}
cd java
mvn versions:set -DnewVersion=$JAVA_VERSION
Run git diff java/
to double check that the version was updated correctly.
Create a Git commit with the version change while you are in the release branch (not master). You will push it later.
Run gpg-agent
to avoid that Maven will constantly prompt you for the password of your private key.
eval $(gpg-agent --daemon --no-grab --write-env-file $HOME/.gpg-agent-info)
export GPG_TTY=$(tty)
export GPG_AGENT_INFO
Deploy (upload) the Java code to the oss.sonatype.org repository:
Warning: After the deployment, the Java packages will be automatically released. Once released, you cannot delete them. The only option is to upload a newer version (e.g. increment the patch level).
mvn clean deploy -P release
cd ..
At the end of the release, you will also have to bump the SNAPSHOT version in the master branch (see below).
Note that we're pushing to upstream (youtube/vitess), not origin (your fork).
Warning: After the following push, there's no going back, since tags don't get updated if someone else has fetched them already. If you need to re-tag after this point, you MUST increment the version number.
# release branch
git push upstream release-X.Y
# release tag
git push upstream vX.Y.Z
Find your new tag and add release notes. Use the GitHub Compare tool to see all the commits since the last release.
Then send an announcement on the vitess-announce list.
The Java version in the master branch has the suffix -SNAPSHOT
and should always reference the next release number.
For example, if you just released 2.1.0
, you could bump it to 2.1.1-SNAPSHOT
.
Change the SNAPSHOT version as follows:
git checkout master
git pull --ff-only upstream master
# Example:
# (Note that there is no leading "v".)
JAVA_VERSION=2.1.1-SNAPSHOT
cd java
mvn versions:set -DnewVersion=$JAVA_VERSION
# Verify diff.
git diff
git commit -a -m "java: Bump SNAPSHOT version to $JAVA_VERSION after Vitess release $PATCH."
git push upstream master


@(items: List[models.SubmittedWork],user: models.users.User, env: play.api.Environment) @main("Drafts",user){
This page contains all of your drafts that are ready to publish at your discretion.
Title: @i.getName
Author: @i.getUser.getUsername


ALL THE COOKIEEEESSSSSSS!
Please Enter information for your new store!
Please enter name of store
Please enter minimum customers pHR
Please enter maximum customers pHR
Average cookie sales per customer
Generate Store


Try Element
A paragraph for the main content.
And another one.
Here's some contact info
Hello World!
Some initial bold text


This object provides convenience methods to create an iterable representation of a source file.
A class for character encoding/decoding preferences.
The object Position provides convenience methods to encode line and column number in one single integer.
The class Source
implements an iterable representation
of source data.
Pickler combinators.
This object provides convenience methods to create an iterable representation of a source file.


Hi there, I'm Alexander Quion. Boston University Alumni. Currently lost in the digital age. I know way too much about the Washington Wizards and Super Smash Bros. Melee.
Project 1
Project 2
Project 3
Project 4


Today
Monday, June 10, 2013 - Friday, June 14, 2013
Day
Week
Month
Timeline
Agenda
Date
Time
Event
13
Thursday
June, 2013
7:00 PM-9:00 PM
Normal
14
Friday
June, 2013
all day
Hover
17
Monday
June, 2013
6:30 PM-8:00 PM
Selected
18
Tuesday
June, 2013
7:00 PM-9:00 PM
Recurring


How will variations in insolation affect the mean climate and habitability? The simulations suggest that a habitable climate for an Earth-like planet in the Kepler-35 system with fixed CO 2 concentrations (at 354 ppm volume mixing ratio) is maintained in a region close to planetary semimajor axes of between around 1.165 and 1.195 a.u. ( Table 1). The global-mean surface temperature (gST) of a planet with a semimajor axis of 1.165 a.u. is 291.0 K and that of a semimajor axis of 1.195 a.u. is 271.5 K. For a semimajor axis of 1.140 a.u., the planet goes into a Moist Greenhouse state, whereas a semimajor axis of 1.225 a.u. leads to a Snowball state. In terms of mean TSI we find a habitable climate between 0.954 and 1.004 S0 with TSI values between 0.907 and 0.954 S0 leading to a transition to a Snowball and a TSI between 1.004 and 1.052 S0 leading to a Moist Greenhouse state.
By performing simulations of the same planet on a circular orbit around our sun, we find that habitable climates can be maintained at a distance of 1.000 a.u. (1.000 S0) to 1.025 a.u. (0.952 S0) with planetary semimajor axes of 1.050 a.u. (0.907 S0) and 0.975 a.u. (1.052 S0) leading to uninhabitable states ( Table 1). Thus, the extent of the region for which our planet can sustain a habitable climate in Kepler-35 in terms of TSI is comparable to that in our solar system ( Table 1). However, due to the increased overall TSI, the habitability spans a somewhat larger range of planetary semimajor axes. This suggests that circumbinary systems similar to the one studied here would be good candidates to look for habitable planets. The gST is higher in the two colder states of the aquaplanet in our solar system than at similar TSI in the Kepler-35 system. The Bond albedo of the aquaplanet in our solar system is somewhat higher than that of the same aquaplanet in a similar climate state in the Kepler-35 system ( Table 1), because of the slight red-shift of the combined spectrum of Kepler-35 AB.
We find three regimes of stable steady-states of our aquaplanet: The Snowball regime, the Earth-like regime and the Moist Greenhouse regime ( Fig. 3) that all have a similar temporal-mean structure of surface temperatures and of the large-scale circulation on the aquaplanet in the Kepler-35 and the aquaplanet in our solar system ( Fig. 3). However, when the annual cycle is considered, the imprint of the fluctuations of the TSI is clearly visible for planets around Kepler-35, especially at low surface temperatures ( Fig. 1).
We find the transition to a hot uninhabitable state in the Kepler-35 slightly further away from the centre of mass of the system than a recent estimate of around 1.103 a.u. (ref. 17). The maximum TSI to cause global-glaciation in our solar system with fixed CO 2 concentrations is in good agreement with a study performed recently with another GCM in a similar setup 18, but is much closer to the sun than in 1D models that use variable CO 2 concentrations 1719. A study conducted with an LEBM found the transition to a hot uninhabitable state in the Kepler-35 system to lie at around 0.65 a.u. (ref. 6) and thus considerably closer to the stars than in our simulations. The LEBM lacks the vertical dimension that is necessary to represent the climate instabilities at higher temperatures. Hence, the model is neither able to produce a Runaway Greenhouse<PHONE_NUMBER> nor cloud-induced instabilities found in this and two previous studies that lead to a transition from a habitable state to a Moist Greenhouse state 1325. This explains why the transition to a hot uninhabitable state occurs so close to stars in ref. 6. In contrast, the minimum planetary semimajor axis to trigger a global glaciation with the same LEBM is in close agreement with ours 6, because the LEBM captures the large ice-cap instability that causes the transition to the Snowball in both energy-balance models 26 and GCMs 27.


Cloud market in South Africa to grow to R23.6 billion by 2023
by Staff WriterBMIT has published its SA Cloud Computing Overview and Market Sizing 2019 report, which shows that the growing adoption of cloud computing in South Africa has democratised IT resources and made technology available that traditionally would have been out of reach of the smaller player.
For businesses considering moving to the cloud, first mover advantage is more important than ever – while supporting innovation is a key success factor in today’s highly-competitive industries.
Analytics and artificial intelligence, along with other emerging technologies, are available to businesses at a fraction of the investment that would have been required before the transition to cloud computing.
Click here for the full BMIT report.
Local cloud market survey
As can be seen below from BMIT’s local cloud market survey, IT modernisation, cost optimisation, and digital transformation are factors which motivate all companies to implement cloud computing.
The ability to scale is more important to medium and large companies than small companies, whose primary motivation is to transform digitally.
Local cloud dynamics
Having reached the tipping point of cloud computing in South Africa, there is significantly less resistance to moving to the cloud in general – however, the question the market is grappling with is the “when and how” to move.
That being said, the conservative mindset of some in the IT market along with aversion to change is still challenging the industry and slowing adoption as more traditional-minded IT personnel often want full ownership and control over their IT resources – rather than the pay-per-use model that cloud has ushered in.
Data domicile and latency as objections are becoming something of the past, too, while the conversation has shifted from whether or not to adopt cloud to how to best implement cloud strategies.
With the local Microsoft Azure cloud officially going live, as well as the Huawei cloud being available in-country and the local AWS and Oracle clouds coming soon, BMIT believes this will have a significant impact on the adoption of cloud services locally.
SA cloud market size
The cloud services market in South Africa is estimated to have grown at 31% in 2018 and is expected to grow another 35% in 2019 as the multinational hyperscale (Amazon, Google, Microsoft) local data centres go live over the next two years.
Looking further into the future, BMIT forecasts the cloud services market growing at a CAGR of 28% over the next five years to R23.6 billion in 2023.
For more information on BMIT’s SA Cloud Computing Overview and Market Sizing 2019 report, click here.


The third planet from the Sun and the only astronomical object known to harbor life.
Radius: 6371.0 km
Surface Area: 510072000 km2
Volume: 1.08321×1012 km3
Mass: 5.97237×1024 kg
Gravity: 9.80665 m/s2
Temperature:
| Min: | 184 K |
|---|---|
| Mean: | 287.16 K |
| Max: | 330 K |
Rotation Period: 0.99726968 days
Rotation Velocity: 0.4651 km/s
Orbital Period:<PHONE_NUMBER>04 days
Orbital Speed: 29.78 km/s
Satellites: the Moon
More Information


About Me
I'm a former printer, copier, and PC hardware field technician that has reinvented himself as a web developer. I've had a long-standing interest in the field, and decided that it was a career that I would actually enjoy.
I've learned HTML, CSS, JavaScript, APIs (web, third-party, and server-side), Node.js, Express.js, and MySQL, and I'm currently learning computer science for the web. My short-term goal is to find employment in any area of web devopment, with a long-term goal of becoming a full stack developer.


But I must explain to you how all this mistaken idea of denouncing
But I must explain to you how all this mistaken idea of denouncing
But I must explain to you how all this mistaken idea of denouncing
But I must explain to you how all this mistaken idea of denouncing


VTK is used by academicians for teaching and research; by government research institutions such as Los Alamos National Lab in the US or CINECA in Italy; and by many commercial firms who use VTK to build or extend products.
The origin of VTK is with the textbook "The Visualization Toolkit, an Object-Oriented Approach to 3D Graphics" originally published by Prentice Hall and now published by Kitware, Inc. (Third Edition ISBN 1-930934-07-6). VTK has grown (since its initial release in 1994) to a world-wide user base in the commercial, academic, and research communities.
This README is written for VTK version 5.0 and greater. For more information, additional resources, and the FAQ see the web page at http://www.vtk.org
Copyright (c) 1993-2005 Ken Martin, Will Schroeder, Bill Lorensen All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither name of Ken Martin, Will Schroeder, or Bill Lorensen nor the names of any contributors may be used to endorse or promote products derived from this software without specific prior written permission. * Modified source versions must be plainly marked as such, and must not be misrepresented as being the original software.
The Visualization Toolkit, An Object-Oriented Approach to 3D Graphics (Third Edition) by Will Schroeder, Ken Martin and Bill Lorensen. Kitware, Inc., ISBN 1-930934-07-6 http://www.kitware.com/products/vtktextbook.html The VTK User's Guide (VTK 4.2 Edition) Kitware, Inc., ISBN 1-930934-08-4 http://www.kitware.com/products/vtkguide.htmlOn-line Doxygen man pages are also available at http://www.vtk.org/doc/nightly/html/
Compiling VTK requires a complete VTK source tree. Running VTK tests
requires a complete VTK data tree. Now is the time to extract the
source and data archives if one has not done so already. These
instructions assume there is a directory "VTK
" containing
the source code and optionally a sibling directory
"VTKData
" containing the data.
CMake provides both a command-line tool and interactive interfaces. Advanced users may wish to use the command-line tool but here we document the CMake interactive interface for each platform:
The dialog prompts for the location of the source and binary trees. There may also be prompt for the build system generator to be used ("Build For:"). Once these are set then CMake is ready for a first pass at configuring the VTK build system. Use the "Configure" button to initiate this process. If there was no earlier prompt for the build system generator a separate dialog will appear during the first configuration step to prompt for generator selection. After a while the dialog will present a set of configuration options. See below for details on the meaning of each of these options. After setting the options as desired press "Configure" again to make another pass at configuring VTK. New options may appear when earlier options are adjusted. Keep adjusting options and pressing "Configure" until the desired configuration is reached. Finally press the "Generate" button to actually generate the build system.
Now that the build system has been generated the corresponding
native tools can be used to build VTK. In the case of the
Visual Studio IDE simply run it and load the VTK workspace or
solution file from the binary tree specified in the CMakeSetup
dialog. Select and build the ALL_BUILD
target. In
the case of a Visual Studio NMake, Borland C++, or MinGW build
use the corresponding make tool (nmake
,
make
, and make
, respectively) from the
command line.
CC
" and
"CXX
" environment variables.
A typical in-source build for VTK might look like this:
$ ls -d VTK
VTK/
$ cd VTK
$ ccmake .
$ make
A typical out-of-source build for VTK might look like this:
$ ls -d VTK
VTK/
$ mkdir VTK-build
$ cd VTK-build
$ ccmake ../VTK
$ make
In the above examples the call to ccmake
may be
replaced by
$ env CC=/your/c/compiler CXX=/your/C++/compiler ccmake /path/to/VTK
in order to tell CMake to use specific C and C++ compilers.
Setting the environment in this way will only change the
compilers the first time CMake is run for a specific
build tree. Do not attempt to change the compiler of an
existing build tree. Instead one should create a separate build
tree for each desired compiler.
The ccmake
tool is a curses-based dialog that may
be used to interactively configure VTK. When it appears press
'c' on the keyboard to run the initial configuration of the VTK
build system. Eventually a set of configuration options will
appear. These may be edited using the arrow-keys and the ENTER
key for navigation. See below for
details on the meaning of each of these options.
Once the options have been set as desired press 'c' again to
reconfigure. New options may appear when earlier options are
adjusted. Keep adjusting options and pressing 'c' until the
desired configuration is reached. Finally press 'g' to actually
generate the build system. Now that the build system has been
generated just run make
or gmake
to
build VTK.
NOTE: The ccmake
curses dialog is the most commonly
used interactive interface for CMake on UNIX-like platforms, so
these instructions assume it is available. Some system
administrators may not have installed curses in which case
ccmake
will not be available. On these platforms
one may use the command "cmake -i
" in place of
ccmake
and follow the on-screen instructions to
configure VTK. A last resort is to use the command-line
interface to cmake
, but that is beyond the scope of
this document. See CMake documentation for further details.
The interactive CMake interface provides brief documentation for every option. Some options have more meaning than can be described in one sentence, so additional documentation is provided here:
Sets whether the compiled VTK libraries will be shared libraries or static libraries. When linking executables against static libraries the needed symbols will be copied from the libraries into the executables enabling them to run without access to the original libraries. When linking executables against shared libraries references to the symbols are placed into the executables. This has the advantage that many executables can share a large library without producing many copies of its code.
Shared libraries have the disadvantage that they must be found at runtime in order for an executable to run. Each operating system supporting shared libraries has a component known as the dynamic loader. This component is responsible for finding the shared libraries needed by an executable when it is run. In order to run VTK executables from the build tree when using shared libraries one may need to help the dynamic loader find the libraries (usually the bin subdirectory of the build tree).
On Windows, the dynamic loader will look for shared libraries in the directory containing the executable, in directories listed in the PATH environment variable, and in some system directories. Since VTK places all of its executables and libraries in the same directory nothing needs to be set to get them to run. However, when one builds outside projects against VTK the PATH environment variable must be set to point at the directory containing the VTK shared libraries.
On UNIX-style platforms, the dynamic loader will use an environment variable such as LD_LIBRARY_PATH (Linux and many UNIX systems) or DYLD_LIBRARY_PATH (Mac OS X) to look for shared libraries. In order to run VTK executables from the build tree one must set the appropriate environment variable to point at the directory containing the VTK shared libraries. The same environment setting must be used for running outside projects build against the shared VTK libraries.
Enable/Disable automatic generation of VTK bindings in the Tcl language. In order to build the Tcl-based VTK interpreter one will need to have Tcl and Tk version 8.2 or newer. Look to http://www.tcl.tk for information about getting Tcl and Tk. To turn on Tcl wrapping, set VTK_WRAP_TCL to ON during the configuration process. One may then have to set the values for Tcl/Tk include directories and libraries during the next CMake configure iteration. If there is more than one version of Tcl installed on the computer, make sure all the TCL_* and TK_* configuration options are set consistently to use the proper version. This is especially important when Cygwin is installed because the Cygwin Tcl will not work for a native Windows VTK build and a Windows Tcl will not work for a Cygwin VTK build. When building the Tcl/Tk wrappers on Cygwin one must also install the Cygwin sources for Tcl/Tk and set TK_XLIB_PATH to "/usr/src/tcltk-20030901-1/tk/xlib" or the corresponding directory for one's Cygwin Tcl version. See Wrapping/Tcl/README for details on using the Tcl wrappers once they are built.
Enable/Disable automatic generation of VTK bindings in the Python language. In order to build the Python-based VTK interpreter one will need to have Python installed. Look to http://www.python.org for information about getting Python. To turn on Python wrapping, set VTK_WRAP_PYTHON and BUILD_SHARED_LIBS to ON during the configuration process. One may then have to set the values for Python include directories and libraries during the next CMake configure iteration. If there is more than one version of Python installed on the computer, make sure all the PYTHON_* configuration options are set consistently to use the proper version. This is especially important when Cygwin is installed because the Cygwin Python will not work for a native Windows VTK build and a Windows Python will not work for a Cygwin VTK build. In order to use Tkinter with VTK-Python make sure that the Tcl/Tk libraries that are set correspond to the same version used by Tkinter.
Note that the VTK-Python modules are now installed by default via 'make install', which is a change from previous VTK versions. The automatic python module installation is highly configurable. The Wrapping/Python/README.txt file documents the installation procedure and the VTK-Python modules.
When VTK is installed all files are placed in a directory structure rooted at the directory specified by CMAKE_INSTALL_PREFIX.
1) Download the data at ftp://public.kitware.com/pub/vtk/VTKData.tgz 2) Checkout the data from CVS using the following commands: cvs -d :pserver:anoncvs@www.vtk.org:/cvsroot/VTK login (there is no password...just press enter) cvs -d :pserver:anoncvs@www.vtk.org:/cvsroot/VTK checkout VTKData
vtk mace.tclNote that most Tcl scripts allow you to type "u" in the render window to obtain an interpreter. You can use the interpreter to modify the application at run-time.
If you have enabled Python Wrapping you should read the instructions located in the Wrapping/Python/README.txt file.
vtkLocal
example
for instructions to build your classes outside VTK.
If you run into problems, your best bet is to join the VTK mailing list. Visit http://www.vtk.org/mailman/listinfo/vtkusers to join the list.
Commercial support contracts are available from Kitware at http://www.kitware.com/products/vtksupport.html.
Kitware also provides consulting services. Read more at http://www.kitware.com/products/consult.html.
Training is also available from Kitware. See http://www.kitware.com/products/vtktrain.html.


{% extends "base.html" %} {% block title %}Account Activation{% endblock %} {% block content %}
Thanks for signing up! Now you can log in.
{% else %}Sorry, it didn't work. Either your activation link was incorrect, or the activation key for your account has expired; activation keys are only valid for {{ expiration_days }} days after registration.
{% endif %}


Databases on Travis workers
What This Guide Covers
This guide covers data stores offered in the Travis CI environment and what users & settings projects hosted on travis-ci.org can rely on. Most of the content is applicable to any technology but there are subtle aspects in the behavior of some database drivers that this guide will try to cover. We recommend you start with the Getting Started and Build Configuration guides before reading this one.
Data Stores in the Travis CI Environment
Travis CI Environment has multiple popular data stores preinstalled. Some of the services available are:
- MySQL
- PostgreSQL
- SQLite3
- MongoDB
- CouchDB
- Redis
- Riak
- Memcached
All aforementioned data stores use mostly stock default settings, however, when it makes sense, new users are added and security settings are relaxed (because for continuous integration ease of use is more important): one example of such adaptation is PostgreSQL that has strict default access settings.
Configure Your Projects to Use Databases in Tests
Here is how to configure your project to use databases in its tests. This assumes you have already visited Build configuration documentation.
MySQL
MySQL on Travis binds to <IP_ADDRESS> and requires authentication. You can connect using “root” username and blank password:
mysql:
adapter: mysql2
database: myapp_test
username: root
encoding: utf8
If specify a blank username, keep in mind that for some clients, this is the same as “root” but for some it means “anonymous user”. When in doubt,
try switching to root
username.
You do have to create the myapp_test
database first. Run this as part of your build script:
# .travis.yml
before_script:
- "mysql -e 'create database myapp_test;'"
PostgreSQL
PostgreSQL binds to <IP_ADDRESS> and requires authentication with “postgres” user and no password:
postgres:
adapter: postgresql
database: myapp_test
username: postgres
You have to create the database as part of your build process:
# .travis.yml
before_script:
- "psql -c 'create database myapp_test;' -U postgres"
SQLite3
Probably the easiest and simplest solution for your relation database needs. If you don’t specifically want to test how your code behaves with other databases, in memory SQLite might be the best option.
Ruby Projects
For ruby projects, ensure that you have the sqlite3 ruby bindings in your bundle:
# Gemfile
# for CRuby, Rubinius, including Windows and RubyInstaller
gem "sqlite3", :platform => [:ruby, :mswin, :mingw]
# for JRuby
gem "jdbc-sqlite3", :platform => :jruby
If your project is a Rails app, all you need to set up is:
# config/database.yml in Rails
test:
adapter: sqlite3
database: ":memory:"
timeout: 500
However, if your project is a general library or plugin, you need to handle connecting to the database yourself in tests. For example, connecting with ActiveRecord:
ActiveRecord::Base.establish_connection :adapter => 'sqlite3',
:database => ':memory:'
MongoDB
MongoDB binds to <IP_ADDRESS>, uses stock configuration and requires no authentication or database creation up front.
In cases you need to create users for your database, you can do it using a before_script
in your .travis.yml
file::
# .travis.yml
before_script:
- mongo mydb_test --eval 'db.addUser("travis", "test");'
JVM-based projects
For JVM-based projects that use the official MongoDB Java driver, you’ll have to use <IP_ADDRESS>
instead of localhost
to connect
to work around this known MongoDB Java driver issue that affects Linux.
CouchDB
CouchDB binds to <IP_ADDRESS>, uses stock configuration and requires no authentication (it runs in admin party).
You have to create the database as part of your build process:
# .travis.yml
before_script:
- curl -X PUT localhost:5984/myapp_test
Riak
Riak uses stock configuration with one exception: it is configured to use LevelDB storage backend.
Redis
Redis uses stock configuration and is available on localhost.
Neo4J
Neo4J Server Community Edition is available but not started by default. You can start it with a one line before_script
:
which neo4j && neo4j start && sleep 5 # give Neo4J some time to start & initialize
Multiple database systems
If your project’s tests need to run multiple times using different databases, this can be configured on Travis CI in several ways.
Using ENV variables
Now you use the “DB” environment variable to specify the name of the database configuration you want to use. Locally, you would run this as:
$ DB=postgres [commands to run your tests]
On Travis CI you want to test against all 3 databases all the time, and for that you can use the “env” option:
# .travis.yml
env:
- DB=sqlite
- DB=mysql
- DB=postgres
When doing this, please read and understand everything about the build matrix described in Build configuration.
Ruby
One approach you might take is put all database configurations in one YAML file, like ActiveRecord does:
# test/database.yml
sqlite:
adapter: sqlite3
database: ":memory:"
timeout: 500
mysql:
adapter: mysql2
database: myapp_test
username:
encoding: utf8
postgres:
adapter: postgresql
database: myapp_test
username: postgres
Then, in your test suite, read that data into a configurations hash:
configs = YAML.load_file('test/database.yml')
ActiveRecord::Base.configurations = configs
db_name = ENV['DB'] || 'sqlite'
ActiveRecord::Base.establish_connection(db_name)
ActiveRecord::Base.default_timezone = :utc
Conclusion
Travis CI Environment provides several popular open source data stores that hosted projects can use. In the majority of cases, said data stores use stock configuration. When it is not the case, the purpose of customizing the configuration is usually to minimize the amount of work developers have to do to use them. Often this means relaxing security settings, whicn is OK for continuous integration environments.


| Abstract | The extinction coefficient per mole of nanocrystals at the first exitonic absorption peak, epsilon, for high-quality CdTe, CdSe, and CdS nanocrystals was found to be strongly dependent on the size of the nanocrystals, between a square and a cubic dependence. The measurements were carried out using either nanocrystals purified with monitored purification procedures or nanocrystals prepared through controlled etching methods. The nature of the surface ligands, the refractive index of the solvents, the PL quantum yield of the nanocrystals, the methods used for the synthesis of the nanocrystals, and the temperature for the measurements all did not show detectable influence on the extinction coefficient for a given sized nanocrystal within experimental error. |
| Subject | |
|
Topic |
light-emitting-diodes |
|
Topic |
quantum dots |
|
Topic |
semiconductor clusters |
|
Topic |
core/shell nanocrystals |
|
Topic |
alternative routes |
|
Topic |
growth |
|
Topic |
shape |
|
Topic |
monodisperse |
|
Topic |
absorption |
|
Topic |
polymer |
| Related Item:Host | |
|
Title Information |
|
|
Title |
Chem. Mater. |
|
Origin Information |
|
|
Issuance |
continuing |
|
Part |
|
|
Part Detail:volume |
|
|
Part Number |
15 |
|
Part Detail:issue |
|
|
Part Number |
14 |
|
Extent(unit="pages") |
|
|
Start |
2854 |
|
End |
2860 |
|
Genre(marcgt) |
periodical |
| Identifier | yuw03 |
| Identifier:DOI | 10.1021/cm034081k |
| Location | |
|
URL |
http://dx.doi.org/10.1021/cm034081k |
| Title Information | |
|
Title |
Nanometal Surface Energy Transfer in Optical Rulers, Breaking the FRET Barrier |
| Name:Personal | |
|
Name Part:given |
C. S. |
|
Name Part:family |
Yun |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
A. |
|
Name Part:family |
Javier |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
T. |
|
Name Part:family |
Jennings |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
M. |
|
Name Part:family |
Fisher |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
S. |
|
Name Part:family |
Hira |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
S. |
|
Name Part:family |
Peterson |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
B. |
|
Name Part:family |
Hopkins |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
N. O. |
|
Name Part:family |
Reich |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
G. F. |
|
Name Part:family |
Strouse |
|
Role |
|
|
Role Term:Text |
author |
| Type of Resource | text |
| Genre | journal article |
| Genre(bibtex) | article |
| Origin Information | |
|
Issuance |
monographic |
| Abstract | Optical-based distance measurements are essential for tracking biomolecular conformational changes, drug discovery, and cell biology. {T}raditional {F}örster resonance energy transfer ({FRET}) is efficient for separation distances up to 100 {\AA}. {W}e report the first successful application of a dipole-surface type energy transfer from a molecular dipole to a nanometal surface that more than doubles the traditional {F}örster range (220 {\AA}) and follows a 1/{R}4 distance dependence. {W}e appended a 1.4 nm {A}u cluster to the 5' end of one {DNA} strand as the energy acceptor and a fluorescein ({FAM}) to the 5' end of the complementary strand as the energy donor. {A}nalysis of the energy transfer on {DNA} lengths (15, 20, 30, 60bp), complemented by protein-induced {DNA} bending, provides the basis for fully mapping the extent of this dipole surface type mechanism over its entire usable range (50-250 {\AA}). {F}urther, protein function is fully compatible with these nanometal-{DNA} constructs. {S}ignificantly extending the range of optical based methods in molecular rulers is an important leap forward for biophysics. |
| Subject | |
|
Topic |
conformational dynamics |
|
Topic |
metal-surfaces |
|
Topic |
dna |
|
Topic |
oligonucleotides |
|
Topic |
nanoparticles |
|
Topic |
tool |
| Related Item:Host | |
|
Title Information |
|
|
Title |
J. Am. Chem. Soc. |
|
Origin Information |
|
|
Issuance |
continuing |
|
Part |
|
|
Part Detail:volume |
|
|
Part Number |
127 |
|
Part Detail:issue |
|
|
Part Number |
9 |
|
Extent(unit="pages") |
|
|
Start |
3115 |
|
End |
3119 |
|
Genre(marcgt) |
periodical |
| Identifier | yun05 |
| Identifier:DOI | 10.1021/ja043940i |
| Location | |
|
URL |
http://dx.doi.org/10.1021/ja043940i |
| Title Information | |
|
Title |
Electrophoretic Isolation of Discrete Au Nanocrystal/DNA Conjugates |
| Name:Personal | |
|
Name Part:given |
Daniela |
|
Name Part:family |
Zanchet |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
Christine M. |
|
Name Part:family |
Micheel |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
Wolfgang J. |
|
Name Part:family |
Parak |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
Daniele |
|
Name Part:family |
Gerion |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
A. Paul |
|
Name Part:family |
Alivisatos |
|
Role |
|
|
Role Term:Text |
author |
| Type of Resource | text |
| Genre | journal article |
| Genre(bibtex) | article |
| Origin Information | |
|
Issuance |
monographic |
| Abstract | Colloidal nanocrystal/DNA conjugates hold the promise of becoming powerful probes for biological diagnostics as well as versatile building blocks for nanotechnology. To fully realize this potential, it is important to precisely control the number of oligonucleotides bound to the nanocrystal. Here we demonstrate electrophoretic isolation of 5 and 10 nm gold nanocrystals bearing discrete numbers of single-stranded DNA (1-5). The potential use of these discrete conjugates in the fabrication of novel nanostructures is discussed. |
| Related Item:Host | |
|
Title Information |
|
|
Title |
Nano Lett. |
|
Origin Information |
|
|
Issuance |
continuing |
|
Part |
|
|
Part Detail:volume |
|
|
Part Number |
1 |
|
Part Detail:issue |
|
|
Part Number |
1 |
|
Extent(unit="pages") |
|
|
Start |
32 |
|
End |
35 |
|
Genre(marcgt) |
periodical |
| Identifier | zan01 |
| Identifier:DOI | 10.1021/nl005508e |
| Location | |
|
URL |
http://dx.doi.org/10.1021/nl005508e |
| Title Information | |
|
Title |
Electrophoretic and Structural Studies of DNA-Directed Au Nanoparticle Groupings |
| Name:Personal | |
|
Name Part:given |
Daniela |
|
Name Part:family |
Zanchet |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
Christine M. |
|
Name Part:family |
Micheel |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
Wolfgang J. |
|
Name Part:family |
Parak |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
Daniele |
|
Name Part:family |
Gerion |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
Shara C. |
|
Name Part:family |
Williams |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
A. Paul |
|
Name Part:family |
Alivisatos |
|
Role |
|
|
Role Term:Text |
author |
| Type of Resource | text |
| Genre | journal article |
| Genre(bibtex) | article |
| Origin Information | |
|
Issuance |
monographic |
| Abstract | Discrete Au nanoparticle/DNA conjugates have been isolated by electrophoresis and used to form small groupings of particles, such as dimers and trimers. The use of purified conjugates leads to a higher yield of the target structure, and it has allowed us better control and understanding of the system. Newly accessible questions, such as the electrophoretic mobility of nanoparticle/DNA hybrids and the critical role of particle surface charge on mobility, have been studied. Detailed characterization by transmission electron microscopy (TEM) has now been done because of the higher quality of the samples. A computer program to generate pair distribution functions from TEM images was developed, pointing out the dependence of interparticle distance with DNA length on dimers of particles. |
| Related Item:Host | |
|
Title Information |
|
|
Title |
J. Phys. Chem. B |
|
Origin Information |
|
|
Issuance |
continuing |
|
Part |
|
|
Part Detail:volume |
|
|
Part Number |
106 |
|
Part Detail:issue |
|
|
Part Number |
45 |
|
Extent(unit="pages") |
|
|
Start |
11758 |
|
End |
11763 |
|
Genre(marcgt) |
periodical |
| Identifier | zan02 |
| Identifier:DOI | 10.1021/jp026144c |
| Location | |
|
URL |
http://dx.doi.org/10.1021/jp026144c |
| Title Information | |
|
Title |
Metal-Enhanced Single-Molecule Fluorescence on Silver Particle Monomer and Dimer: Coupling Effect between Metal Particles |
| Name:Personal | |
|
Name Part:given |
Jian |
|
Name Part:family |
Zhang |
|
Role |
|
|
Role Term:Text |
author |
|
affiliation |
Center for Fluorescence Spectroscopy, University of Maryland School of Medicine, Department of Biochemistry and Molecular Biology, 725 West Lombard Street, Baltimore, Maryland 21201 |
| Name:Personal | |
|
Name Part:given |
Yi |
|
Name Part:family |
Fu |
|
Role |
|
|
Role Term:Text |
author |
|
affiliation |
Center for Fluorescence Spectroscopy, University of Maryland School of Medicine, Department of Biochemistry and Molecular Biology, 725 West Lombard Street, Baltimore, Maryland 21201 |
| Name:Personal | |
|
Name Part:given |
Mustafa H. |
|
Name Part:family |
Chowdhury |
|
Role |
|
|
Role Term:Text |
author |
|
affiliation |
Center for Fluorescence Spectroscopy, University of Maryland School of Medicine, Department of Biochemistry and Molecular Biology, 725 West Lombard Street, Baltimore, Maryland 21201 |
| Name:Personal | |
|
Name Part:given |
Joseph R. |
|
Name Part:family |
Lakowicz |
|
Role |
|
|
Role Term:Text |
author |
|
affiliation |
Center for Fluorescence Spectroscopy, University of Maryland School of Medicine, Department of Biochemistry and Molecular Biology, 725 West Lombard Street, Baltimore, Maryland 21201 |
| Type of Resource | text |
| Genre | journal article |
| Genre(bibtex) | article |
| Origin Information | |
|
Issuance |
monographic |
| Abstract | We prepared silver particle dimers with single Cy5 molecules localized between coupled metal particles. The silver particles with a 20 nm diameter were chemically bound with single-stranded oligonucleotides. The dimers were formed by hybridization with double-length single-stranded oligonucleotides that contained single Cy5 molecules. The image analysis revealed that the single-molecule fluorescence was enhanced 7-fold on the metal monomer and 13-fold on the metal dimer relative to the free Cy5-labeled oligonucleotide in the absence of metal. The lifetimes were shortened on the silver monomers and further shortened on the silver dimers, demonstrating the near-field interaction mechanism of fluorophore with the metal substrate. Finite-difference time-domain (FDTD) calculations were employed to study the distribution of electric field near the metal monomer and dimer. The coupling effect of metal particle on the fluorescence enhancement was discussed. |
| Related Item:Host | |
|
Title Information |
|
|
Title |
Nano Lett. |
|
Origin Information |
|
|
Issuance |
continuing |
|
Part |
|
|
Part Detail:volume |
|
|
Part Number |
7 |
|
Part Detail:issue |
|
|
Part Number |
7 |
|
Extent(unit="pages") |
|
|
Start |
2101 |
|
End |
2107 |
|
Identifier:ISSN |
1530-6984 |
|
Genre(marcgt) |
periodical |
| Identifier | zha07 |
| Identifier:DOI | 10.1021/nl071084d |
| Location | |
|
URL |
http://dx.doi.org/10.1021/nl071084d |
| Title Information | |
|
Title |
A Model for DNA Detection by Metal-Enhanced Fluorescence from Immobilized Silver Nanoparticles on Solid Substrate |
| Name:Personal | |
|
Name Part:given |
Jian |
|
Name Part:family |
Zhang |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
Joseph R. |
|
Name Part:family |
Lakowicz |
|
Role |
|
|
Role Term:Text |
author |
| Type of Resource | text |
| Genre | journal article |
| Genre(bibtex) | article |
| Origin Information | |
|
Issuance |
monographic |
| Abstract | N-(2-Mercaptopropionyl)glycine (tiopronin)-coated silver nanoparticles (average diameter of metal core = 5 nm) were prepared by a modified Brust method. Tiopronin ligands were partially displaced by thiolate single-stranded oligonucleotides via ligand exchange. These particles were immobilized onto a solid substrate through hybridization with target oligonucleotides in a layer-by-layer approach. The dye-labeled complementary oligonucleotides were bound to the particle layers through hybridization. Fluorescence intensity was enhanced with a simultaneous increase of plasmon absorbance from accumulated particles. A steady state was shown at the 10th particle layer and then the fluorescence enhancement showed a plateau. This result reveals that increasing the particle layer contributes to fluorescence enhancement. This novel method was used to detect DNA hybridization through both absorbance and emission spectral changes. |
| Related Item:Host | |
|
Title Information |
|
|
Title |
J. Phys. Chem. B |
|
Origin Information |
|
|
Issuance |
continuing |
|
Part |
|
|
Part Detail:volume |
|
|
Part Number |
110 |
|
Part Detail:issue |
|
|
Part Number |
5 |
|
Extent(unit="pages") |
|
|
Start |
2387 |
|
End |
2392 |
|
Genre(marcgt) |
periodical |
| Identifier | zha06 |
| Identifier:DOI | 10.1021/jp055370u |
| Location | |
|
URL |
http://dx.doi.org/10.1021/jp055370u |
| Title Information | |
|
Title |
Surface-enhanced fluorescence of fluorescein-labeled oligonucleotides capped on silver nanoparticles |
| Name:Personal | |
|
Name Part:given |
Jian |
|
Name Part:family |
Zhang |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
Joanna |
|
Name Part:family |
Malicka |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
Ignacy |
|
Name Part:family |
Gryczynski |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
Joseph R. |
|
Name Part:family |
Lakowicz |
|
Role |
|
|
Role Term:Text |
author |
| Type of Resource | text |
| Genre | journal article |
| Genre(bibtex) | article |
| Origin Information | |
|
Issuance |
monographic |
| Abstract | Tiopronin monolayer-protected silver nanoparticles with different core sizes (average diameter = 2, 5, 20 nm) were prepared by using different mole ratios of silver nitrate/tiopronin. Ligands on the silver particles were partially displaced by fluorescein-labeled thiolate single-stranded oligonucleotides or their complementary unlabeled oligonucleotides through ligand exchange. The fluorophores on silver particles showed a surface-enhanced fluorescence (SEF) dependent on the size of metallic cores. The particles could be coupled through hybridizations of oligonucleotides bound on the particles. The coupled particles were aggregated due to multiple displacements of oligonucleotides on each particle, resulting in stronger SEF. The dye-labeled oligonucleotides were assembled on the silver islands on the solid substrate, and the complementary oligonucleotide-displaced particles were coupled via oligonucleotide hybridization. The couplings between particles and islands resulted in an obvious fluorescence enhancement. |
| Subject | |
|
Topic |
gold cluster molecules |
|
Topic |
raman-scattering |
|
Topic |
metal nanoparticles |
|
Topic |
monolayer |
|
Topic |
films |
|
Topic |
dna |
|
Topic |
particles |
|
Topic |
hybridization |
|
Topic |
luminescence |
|
Topic |
resonance |
| Related Item:Host | |
|
Title Information |
|
|
Title |
J. Phys. Chem. B |
|
Origin Information |
|
|
Issuance |
continuing |
|
Part |
|
|
Part Detail:volume |
|
|
Part Number |
109 |
|
Part Detail:issue |
|
|
Part Number |
16 |
|
Extent(unit="pages") |
|
|
Start |
7643 |
|
End |
7648 |
|
Genre(marcgt) |
periodical |
| Identifier | zha05 |
| Identifier:DOI | 10.1021/jp0490103 |
| Location | |
|
URL |
http://dx.doi.org/10.1021/jp0490103 |
| Title Information | |
|
Title |
Surface-Enhanced Raman Scattering of Pyrazine at the Junction between Two Ag20 Nanoclusters |
| Name:Personal | |
|
Name Part:given |
Lin Lin |
|
Name Part:family |
Zhao |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
Lasse |
|
Name Part:family |
Jensen |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
George C. |
|
Name Part:family |
Schatz |
|
Role |
|
|
Role Term:Text |
author |
| Type of Resource | text |
| Genre | journal article |
| Genre(bibtex) | article |
| Origin Information | |
|
Issuance |
monographic |
| Abstract | In this work we present a detailed time-dependent density functional theory (TDDFT) investigation of the absorption and Raman spectra of a pyrazine molecule located at the junction between two Ag20 clusters. Surface-enhanced Raman scattering enhancements of the order of $10^6$ have been found for the junction system, which are similar to enhancements of $10^5$ found for individual silver nanoparticles. Surprisingly, the chemical enhancement is found to account for as much as $10^5$, suggesting that this mechanism might be more important than previously believed, in particular for nanoparticle aggregates. Moreover, TDDFT calculations suggest that unlike larger nanoparticles, the junction between small Ag20 tetrahedral clusters does not provide an electromagnetic "hot spot". |
| Related Item:Host | |
|
Title Information |
|
|
Title |
Nano Lett. |
|
Origin Information |
|
|
Issuance |
continuing |
|
Part |
|
|
Genre(marcgt) |
periodical |
| Identifier | zha06a |
| Identifier:DOI | 10.1021/nl0607378 |
| Location | |
|
URL |
http://dx.doi.org/10.1021/nl0607378 |
| Title Information | |
|
Title |
Highly Fluorescent, Water-Soluble, Size-Tunable Gold Quantum Dots |
| Name:Personal | |
|
Name Part:given |
Jie |
|
Name Part:family |
Zheng |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
Caiwei |
|
Name Part:family |
Zhang |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
Robert M. |
|
Name Part:family |
Dickson |
|
Role |
|
|
Role Term:Text |
author |
| Type of Resource | text |
| Genre | journal article |
| Genre(bibtex) | article |
| Origin Information | |
|
Issuance |
monographic |
| Abstract | Highly fluorescent, water-soluble, few-atom Au quantum dots have been created that behave as multielectron artificial atoms with discrete, size-tunable electronic transitions throughout the visible and near IR. Correlation of nanodot sizes with emission energies fits the simple relation, E-Fermi/N-1/3, predicted by the jellium model. Providing the "missing link" between atomic and nanoparticle behavior in noble metals, these emissive, water-soluble Au nanoclusters open new opportunities for biological labels, energy transfer pairs, and light emitting sources in nanoscale optoelectronics. |
| Subject | |
|
Topic |
sodium clusters |
|
Topic |
metal-clusters |
|
Topic |
shell structure |
|
Topic |
luminescence |
|
Topic |
electron |
|
Topic |
nanoclusters |
|
Topic |
dependence |
|
Topic |
nm |
| Related Item:Host | |
|
Title Information |
|
|
Title |
Phys. Rev. Lett. |
|
Origin Information |
|
|
Issuance |
continuing |
|
Part |
|
|
Part Detail:volume |
|
|
Part Number |
93 |
|
Part Detail:issue |
|
|
Part Number |
7 |
|
Extent(unit="pages") |
|
|
Start |
077402 |
|
Genre(marcgt) |
periodical |
| Identifier | zhe04 |
| Identifier:DOI | 10.1103/PhysRevLett.93.077402 |
| Location | |
|
URL |
http://link.aps.org/abstract/PRL/v93/e077402 |
|
URL |
http://dx.doi.org/10.1103/PhysRevLett.93.077402 |
| Title Information | |
|
Title |
Enhanced fluorescence from Dy3+ owing to surface plasmon resonance of Au colloid nanoparticles |
| Name:Personal | |
|
Name Part:given |
J. |
|
Name Part:family |
Zhu |
|
Role |
|
|
Role Term:Text |
author |
| Type of Resource | text |
| Genre | journal article |
| Genre(bibtex) | article |
| Origin Information | |
|
Issuance |
monographic |
| Abstract | Gold colloidal containing rare earth ions Dy3+ were prepared at room temperature. Fluorescence spectra of Dy3+ ions and Au colloid containing Dy3+ were measured. For solution containing Dy3+, fluorescence emission occurs at visible light wavelength region. Two emission peaks are observed at 480 nm and 570 nm respectively when the corresponding excitation wavelength is at 350 nm. When An colloids were added to the solution containing Dy3+, both these two fluorescence peaks were enhanced. Furthermore, with the increasing Au content, the fluorescence increases first and then decreases. We believe that this increased fluorescence are due to the local field enhancement around Dy3+ ions owing to the induced higher orders of surface plasmon resonance. (c) 2005 Elsevier B.V. All rights reserved. |
| Subject | |
|
Topic |
gold nanorods |
|
Topic |
field enhancement |
|
Topic |
glass |
|
Topic |
luminescence |
|
Topic |
particles |
|
Topic |
spectra |
|
Topic |
metals |
| Related Item:Host | |
|
Title Information |
|
|
Title |
Mater. Lett. |
|
Origin Information |
|
|
Issuance |
continuing |
|
Part |
|
|
Part Detail:volume |
|
|
Part Number |
59 |
|
Part Detail:issue |
|
|
Part Number |
11 |
|
Extent(unit="pages") |
|
|
Start |
1413 |
|
End |
1416 |
|
Genre(marcgt) |
periodical |
| Identifier | zhu05 |
| Identifier:DOI | 10.1016/j.matlet.2004.11.060 |
| Location | |
|
URL |
http://dx.doi.org/10.1016/j.matlet.2004.11.060 |
| Title Information | |
|
Title |
Surface Modification of Citrate-Reduced Colloidal Gold Nanoparticles with 2-Mercaptosuccinic Acid |
| Name:Personal | |
|
Name Part:given |
Tao |
|
Name Part:family |
Zhu |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
Krasimir |
|
Name Part:family |
Vasilev |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
Maximilian |
|
Name Part:family |
Kreiter |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
Silvia |
|
Name Part:family |
Mittler |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
Wolfgang |
|
Name Part:family |
Knoll |
|
Role |
|
|
Role Term:Text |
author |
| Type of Resource | text |
| Genre | journal article |
| Genre(bibtex) | article |
| Origin Information | |
|
Issuance |
monographic |
| Abstract | Surface modification of citrate-reduced gold nanoparticles with 2-mercaptosuccinic acid (MSA) was carried out in the aqueous phase. This provides a way to obtain carboxylic acid functionalized gold nanoparticles with diameter above 10 nm. The influence of the protecting MSA layer on the behavior of the modified gold nanoparticles in comparison with that of the traditional citrate-reduced gold colloid was evaluated by HCl titration, cyanide etching, and seeded growth tests. The modified gold nanoparticles show an improved stability against pH changes and cyanide etching. They do show further growth, which appears to be more homogeneous than for the unmodified particles. |
| Related Item:Host | |
|
Title Information |
|
|
Title |
Langmuir |
|
Origin Information |
|
|
Issuance |
continuing |
|
Part |
|
|
Part Detail:volume |
|
|
Part Number |
19 |
|
Part Detail:issue |
|
|
Part Number |
22 |
|
Extent(unit="pages") |
|
|
Start |
9518 |
|
End |
9525 |
|
Genre(marcgt) |
periodical |
| Identifier | zhu03 |
| Identifier:DOI | 10.1021/la035157u |
| Location | |
|
URL |
http://dx.doi.org/10.1021/la035157u |
| Title Information | |
|
Title |
Duplex-single strand denaturing transition in DNA oligomers |
| Name:Personal | |
|
Name Part:given |
G. |
|
Name Part:family |
Zocchi |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
A. |
|
Name Part:family |
Omerzu |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
T. |
|
Name Part:family |
Kuriabova |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
J. |
|
Name Part:family |
Rudnick |
|
Role |
|
|
Role Term:Text |
author |
| Name:Personal | |
|
Name Part:given |
G. |
|
Name Part:family |
Grüner |
|
Role |
|
|
Role Term:Text |
author |
| Type of Resource | text |
| Genre | journal article |
| Genre(bibtex) | article |
| Origin Information | |
|
Issuance |
monographic |
| Abstract | We have measured the temperature driven denaturing, or melting transition in poly d(A)-poly d(T) DNA oligomers of various lengths in different buffer conditions. Our findings are in clear disagreement with two state, reaction kinetics model, and we find that the so-called zipper model, where denaturing proceeds through opening of the duplex at the ends describes well the temperature dependence of the average number of open base pairs. Analysis of the length dependence of the transition parameters however suggest that bubble formation is important and that the transition, in the thermodynamic limit, is continuous, albeit close to first order. |
| Related Item:Host | |
|
Title Information |
|
|
Title |
unpublished |
|
Origin Information |
|
|
Issuance |
continuing |
|
Part |
|
|
Genre(marcgt) |
periodical |
| Identifier | zoc03 |
| Location | |
|
URL |
http://arxiv.org/abs/cond-mat/0304567 |
| Title Information | |
|
Title |
Uniprot Database Entry ALBU\_BOVIN P02769 |
| Type of Resource | text |
| Genre(bibtex) | misc |
| Origin Information | |
|
Issuance |
monographic |
| Physical Description | |
|
Form(marcform) |
|
| Identifier | uniprotp02769 |
| Location | |
|
URL |
http://www.expasy.org/uniprot/P02769 |
| Title Information | |
|
Title |
Uniprot Database Entry SAV\_STRAV P22629 |
| Type of Resource | text |
| Genre(bibtex) | misc |
| Origin Information | |
|
Issuance |
monographic |
| Physical Description | |
|
Form(marcform) |
|
| Identifier | uniprotp22629 |
| Location | |
|
URL |
http://www.expasy.org/uniprot/P22629 |
| Title Information | |
|
Title |
Zeta Potential - An Introduction in 30 Minutes |
| Name:Corporate | |
|
displayForm |
Malvern Instruments Ltd, Enigma Business Park, Grovewood Road, Malvern, UK |
|
Role |
|
|
Role Term:Text |
creator |
| Name:Corporate | |
|
displayForm |
Malvern Instruments Ltd, Enigma Business Park, Grovewood Road, Malvern, UK |
|
Role |
|
|
Role Term:Text |
creator |
| Type of Resource | text |
| Genre(bibtex) | manual |
| Origin Information | |
|
Date Issued(encoding="marc") |
2005 |
|
Issuance |
monographic |
| Physical Description | |
|
Form(marcform) |
|
| Identifier | malvernzeta30m2005 |
| Location | |
|
URL |
http://purl.org/NET/malvern/MRK654-01 |
| Title Information | |
|
Title |
Streptavidin SQ for the Diagnostic Industry |
| Name:Corporate | |
|
displayForm |
Roche Diagnostics GmbH, Roche Applied Science Immunology |
|
Role |
|
|
Role Term:Text |
creator |
| Name:Corporate | |
|
displayForm |
Roche Diagnostics GmbH, Roche Applied Science Immunology |
|
Role |
|
|
Role Term:Text |
creator |
| Type of Resource | text |
| Genre(bibtex) | manual |
| Origin Information | |
|
Place |
|
|
Place Term:Text |
Sandhofer Straße 116, 68305 Mannheim |
|
Date Issued(encoding="marc") |
2002 |
|
edition |
2. |
|
Issuance |
monographic |
| Physical Description | |
|
Form(marcform) |
|
| Note | { \mbox{\href{http://www.roche-applied-science.com/indbio_neu/more/printed/pdf/streptavidin_3.pdf}{http://tinyurl.com/23se87}}} |
| Identifier | rochestrepta02 |
| Location | |
|
URL |
http://www.roche-applied-science.com/indbio_neu/more/printed/pdf/streptavidin_3.pdf |
| Title Information | |
|
Title |
Training Manual on Gracilaria Culture and Seaweed Processing in China |
| Name:Corporate | |
|
displayForm |
FAO - Fisheries and Aquaculture Department |
|
Role |
|
|
Role Term:Text |
creator |
| Name:Corporate | |
|
displayForm |
FAO - Fisheries and Aquaculture Department |
|
Role |
|
|
Role Term:Text |
creator |
| Type of Resource | text |
| Genre(bibtex) | manual |
| Origin Information | |
|
Date Issued(encoding="marc") |
1990 |
|
Issuance |
monographic |
| Physical Description | |
|
Form(marcform) |
|
| Abstract | Gracilaria is a group of warm water seaweeds. There are more than one hundred species in the world, some of which have very important economic value. Gracilaria is used as food and in the preparation of food products. It is also an important raw material in agar-agar production. At present, the world's annual output of Gracilaria is about 30,000 tons, dry weight, most of which comes from natural production. For example, the natural production in Chile, Argentina, and Brazil accounts for one third of this total output. With the increasing demand for Gracilaria, greater attention has been focused on the development of its artificial culture by many countries, especially those in Southeast Asia. China is the earliest country that artificially cultured Gracilaria. Today, the culture area in South China is about 2,000 ha producing 3,000 tons dried material annually. Taiwan produces 1,000 tons dried Gracilaria yearly from 400 hectares under cultivation. Nowadays, Gracilaria is cultured mainly using the following methods: bottom culture, raft culture, stake-rope culture and pond culture. Pond culture can be divided into two systems, monoculture and polyculture with shrimp and other species. The varieties of culture methods can be adapted for different areas. In view of the importance of Gracilaria as a seafarming commodity, the National Coordinators of the Regional Seafarming Project recommended the dissemination of its culture and processing technology, through a regional training and demonstration activity, as a means to further increase the opportunities to develop the seafarming industry of the region. |
| Identifier | fao90 |
| Location | |
|
URL |
http://www.fao.org/docrep/field/003/AB730E/AB730E03.htm |


ScriptSessions are created when /dwr/engine.js is included in a page. By default, the lifecycle is maintained by the org.directwebremoting.impl.DefaultScriptSessionManager.
If you call the following javascript function:
dwr.engine.setNotifyServerOnPageUnload(true);
A remote DWR call will be made to the ScriptSessionManager when the page is unloaded, informing it to invalidate the ScriptSession. By default DWR makes this call synchronously to give the call the greatest chance of success. The synchronous nature of this call may result in a delay when closing the browser. If this is undesired you may pass an optional second parameter into dwr.engine.setNotifyServerOnPageUnload:
dwr.engine.setNotifyServerOnPageUnload(true, true);
The optional second parameter tells DWR to call the unloader asynchronously. This may result in the unloader being called inconsistently due to the browser closing the connection while unloading.
Note: In order for this to work DWR relies on the browser's "unload" event being fired. Unfortunately, browsers handle this event inconsistently and there may be very little DWR can do. If you are interested in following this issue you can watch DWR-151.
If setNotifyServerOnPageUnload is not set to true or fails to notify the server due to browser limitations ScriptSessions will be invalidated using a timeout strategy on the server - ScriptSessions inactive for five minutes or more will be invalidated.
Non-dwr threads have no reference to the dwr-thread that created them. Because of this, WebContextFactory().get().getScriptSession() will return null in non-dwr threads. You will therefore need to pass data from DWR threads to non-DWR threads.
The ScriptSessionManager can be obtained using the following code:
Container container = ServerContextFactory.get().getContainer(); ScriptSessionManager manager = container.getBean(ScriptSessionManager.class);
Most reverse ajax implementations require a separate thread to push data to clients. Spawning a separate thread for each DWR request is not scalable. We recommend that you use a thread pool in combination with an application scoped DWR creator, please see the Clock example in the dwr.war for a sample implementation.
DWR's Browser API contains several useful methods for updating browsers. Several of the Browser methods take a ScriptSessionFilter which will allow you to target specific ScriptSessions based on their attributes (see Setting differentiating attribute(s) on a ScriptSession).
How to use the Browser API with a ScriptSessionFilter to differentiate users:
Implement a ScriptSessionFilter:
public class TestScriptSessionFilter implements ScriptSessionFilter { public TestScriptSessionFilter(String attributeName) { this.attributeName = attributeName; } /* (non-Javadoc) * @see org.directwebremoting.ScriptSessionFilter#match(org.directwebremoting.ScriptSession) */ public boolean match(ScriptSession session) { Object check = session.getAttribute(attributeName); return (check != null && check.equals(Boolean.TRUE)); } private String attributeName; }
Set an attribute on the ScriptSession:
// Add the attribute into the ScriptSession sometime before using the Filter. ScriptSession scriptSession = WebContextFactory.get().getScriptSession(); String attributeName = "attr"; scriptSession.setAttribute(attributeName, true);
Note - this must be done from a DWR initiated thread (WebContextFactory requires it).
See Setting differentiating attribute(s) on a ScriptSession for more information.
User the ScriptSessionFilter in your reverse AJAX thread:
ScriptSessionFilter filter = new TestScriptSessionFilter(attributeName); Browser.withPageFiltered(page, filter, new Runnable() { public void run() { // Call a method on DWR's Util class which sets the value on an element on your HTML page with a id of "divID". Util.setValue("divID", "value of div"); } });Or call a named function:
ScriptSessionFilter filter = new TestScriptSessionFilter(attributeName); Browser.withPageFiltered(page, filter, new Runnable() { public void run() { // Call a named function from your html page. Note - The ScriptsSessions.addFunctionCall will only // send the function call to ScriptSessions matching TestScriptSessionFilter. ScriptSessions.addFunctionCall("yourJavaScriptFunctionName", arg1, arg2, etc.); } });Or add some arbitrary script:
ScriptSessionFilter filter = new TestScriptSessionFilter(attributeName); Browser.withPageFiltered(page, filter, new Runnable() { public void run() { // Add script which will modify the document.title. on your html page. ScriptSessions.addScript(("document.title = 'My new title, from DWR reverse AJAX!';")); } });
It is important to note that a few Browser methods require a WebContext which require that the requests come from a DWR thread. Currently the methods that require this are - withCurrentPageFiltered, withCurrentPage, and getTargetSessions. All other methods can be called safely from non-DWR threads.
One of the most common ways to differentiate users on the same page is by setting attributes on the ScriptSession and getting them in a reverse ajax thread. Since the ScriptSession does not exist until engine.js is included this cannot be done in an MVC controller or a JSP.
There are currently two best practices for setting an attribute on the ScriptSession:
1. Call a remote DWR method:
/** * This method should be remoted via DWR and generally called before reverse ajax is initialized. * You may choose to call this method when your page which uses reverse AJAX is initialized, then * in your callback function you may initialize reverse AJAX (dwr.engine.setActiveReverseAjax(true);) * and be certain that the */ public void remoteMethod() { String value = "someValue"; // this may come from the HttpSession for example ScriptSession scriptSession = WebContextFactory.get().getScriptSession(); scriptSession.setAttribute("key", value); }
2. Use a ScriptSessionListener which will be notified when ScriptSessions are created and destroyed. Please see the ScriptSessionListener section for more details.
/** * When a ScriptSession is created set a "userId" attribute on the ScriptSession. * In this case userId is an attribute you have set on the HttpSession that uniquely * identifies the user. */ public void sessionCreated(ScriptSessionEvent ev) { HttpSession session = WebContextFactory.get().getSession(); String userId = (String) session.getAttribute("userId"); ev.getSession().setAttribute("userId", userId); }
Once the ScriptSession has been populated with an attribute, a reverse ajax thread can use the Browser API (recommended) with a ScriptSessionFilter to target specific ScriptSessions or retrieve the attribute from the ScriptSession (scriptSession.getAttribute()) to differentiate the users.
scriptSessionManager.getScriptSessionsByPage("/page?foo=bar")
If you would like to plug-in your own algorithm to determine the page name, you will need to implement your own org.directwebremoting.extend.PageNormalizer and plug it in using DWR's dependency injection mechanism in web.xml.
<servlet> <display-name>DWR Servlet</display-name> <servlet-name>dwr-invoker</servlet-name> <description>Direct Web Remoter Servlet</description> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-param> <param-name>org.directwebremoting.extend.PageNormalizer</param-name> <param-value>foo.bar.MyPageNormalizer</param-value> </init-param> </servlet>
ScriptSessionListeners allow you to take action when a ScriptSession has been created or destroyed. To configure a ScriptSessionListener you will need to execute code similar to the following:
Container container = ServerContextFactory.get().getContainer(); ScriptSessionManager manager = container.getBean(ScriptSessionManager.class); ScriptSessionListener listener = new ScriptSessionListener() { public void sessionCreated(ScriptSessionEvent ev) { HttpSession session = WebContextFactory.get().getSession(); String userId = (String) session.getAttribute("userId"); ev.getSession().setAttribute("userId", userId); } public void sessionDestroyed(ScriptSessionEvent ev) { } }; manager.addScriptSessionListener(listener);
It is important to note that ScriptSessionListeners must be added after DWR has initialized. There are generally two ways to do this:
<load-on-startup />value larger than the DWR servlet