Typhimurium ERS, Salmonella //. Epub genes clade genome strains sequence ;():–. []. using isolates prophage associated gene reference host enterica HDCS based sequences used clades genomes common present contained strain families level population data determined number virulence {border-style indicated phage plasmid resistance (Fig Sciences human identified multiple presence px;} #ffffff;} [], core variation adaptation additional disease previously protein Genome acquisition distinct invasiveness subclades Fig ancestor exhibited genetic high invasive selection species Bioinformatics. DBS Research adapted assembly consistent containing elements flux groups including lineages phylogroup type Click LINK United avian diversity file. infections structure study (::) AMR Infect SNPs Table alignment analysis antimicrobial clonal compared complete functional likely livestock loss phylogenetic reported serotypes specific Biology EnteroBase Health Res. Sequence Serovar annotated defined disseminated distribution mean monophasic order predicted proteome related relatively resulting serovar strains. wild KingsleyRA, Microbiol. Paratyphi accumulation bacterial bitscore cause chromosomal clade. closed clusters commonly described divergence genes, large major recombination review score sub-Saharan tree ;(). Analysis Bacterial Biological Institute Life Methods SNP accessory cattle clade-β clinical coding database epidemiology evolution greater group identity index intestinal main potential px; representative sequencing serotype signatures suggesting types variant {font-family Acids Africa Council Fig). Gene However, Illumina Immun. Prophage Recombination ST, Table). anthropogenic approximately assigned coded colour degradation diverse epidemic exception font-size http://dx.doi.org/./Biotechnology infection key maximum nucleotide phylogeny predominantly short short-read sites size species, sseK, third-level (XLSX) ./mBio.- ;():e Acad Antimicrobial BBSRC Determination Genes HarrisSR, MatherAE, Natl Nucleic PRJEB PageAJ, Proc Sci ancestral approach assembled characterised cluster comparison complex determine double; emergence encoding function genes. genomes. highly internal isolate isolated isolates. likelihood long molecular mutations novo observed pSLT pipeline range read relationship result rooted shared source total transfer typhimurium virus (DT (PDF) (SNPs) (version ./pnas. ;:–. BMC BranchuP, Cell Clade Dis. Gifsy, Heidelberg HoltKE, Kingdom[], Markov NCTC PRJEB, Pacbio ParkhillJ, Pathogens Phage Resistance SO- SPI- Salmonella: ThomsonNR, Typhimurium. al.The altered analysisWriting annotation blocks border-color border-width branches broad circulation collection colonisation current disrupted diversification drug elevated epidemiological evolutionary extraintestinal frequent gastroenteritis genomic global identify insertion interaction known limited livestock. long-read lpfD majority non-prophage outside passerine pathogenicity plasmids populations profile proteins recent resulted results selected similar software solid; strains, subspecies supported {font-style {font-weight "Salmonella (HDCS) (clade (mean (red ./journal.pone. ARIBA BarquistL, BawnM, Cattle ConnorT, ConnorTR, DNA DT, Data Fels, Genet. Genomics GordonMA, GyrA HDCS, HierCC Host Medicine Microbes Nat New Number PetrovskaL, Phylogenetic Rapid SGI SPI-, SRST STB Salmonella. TsolisRM, Typhi Typhimurium, Typing Using [–]. absence account acquired affecting al.Salmonella algorithm analysis. available bacteria bold cargo cases cgMLST chicken circulate clade-α clades, clades. clustered complex) composed contigs convergent courier; data. dataset dataset, decision delta density different driven effector em; estimated exclusively fewer fimbrial finished food funded hidden hierarchical https://www.dropbox.com/sh/dhyyctguirw/AABnbbrSPtqEcjGYIRGggLa?dl=. hypothetical hypothetically identifier implicated indicates input isolates, length lineage livestock, location mapped mediates model model. models multicellular mutation non-typhoidal numbers original pangenome patterns phenotype pig potentially poultry predictive pressure prophage, proportion provides pt;} range, rapid region relative replicon represent represented revealed risk root secretion sequences. serovars similarity single small strong subclade tool use vConTACT variants viewed years


The units you see here are Census blocks.
Data for this module were obtained from the US Census Bureau.
The block shapefile for the Salem-Keizer Unified School District was downloaded from the Census TIGER/Line Shapefiles. Demographic information from the 2010 Decennial Census was downloaded at the block level from IPUMS NHGIS, University of Minnesota, www.nhgis.org.


Build A Portfolio Page!! Due to the proliferation of mobile and interconnected devices, INFORMATION IS EVERYWHERE!! Now Is The Time To Seriously Consider Your DIGITAL IDENTITY!! Market Your Skills and Experience!! Preserve Digital Assets for YOUR Future!!
SOCIAL


I am currently teaching undergraduate discussion groups and supervisions at Cambridge.
In Michaelmas 2022, I supervised students in
- Part IB Ethics,
- Part II Philosophy of Mind,
- Part II Philosophy of Science,
- HPS Part II Philosophy of Economics, and
- HPS Part II Ethical Issues in Psychiatry.
In Lent 2023, I led discussion groups (seminars) on
I am also a teaching assistant and supervisor for the Part IA Formal Methods paper.


Author: Wolf-Dieter Fink
Level: Advanced
Technologies: EJB, EAR
Summary: The ejb-multi-server
quickstart shows how to communicate between multiple applications deployed to different servers using an EJB to log the invocation.
Target Product: JBoss EAP
Source: https://github.com/jboss-developer/jboss-eap-quickstarts/
The ejb-multi-server
quickstart demonstrates communication between applications deployed to different Red Hat JBoss Enterprise Application Platform servers. Each application is deployed as an EAR and contains a simple EJB bean. The only function of each bean is to log the invocation.
This example consists of the following Maven projects, each with a shared parent:
| Sub-project | Description |
|---|---|
app-main | An application that can be called by the client . It can also call the different sub-applications. |
app-one and app-two | These are simple applications that contain an EJB sub-project to build the ejb.jar file and an EAR sub-project to build the app.ear file. Each application contains only one EJB that logs a statement on a method call and returns the jboss.node.name and credentials. |
app-web | A simple WAR application. It consists of one Servlet that demonstrates how to invoke EJBs on a different server. |
client | This project builds the standalone client and executes it. |
The root pom.xml
builds each of the subprojects in an appropriate order.
The server configuration is done using CLI batch scripts located in the root of the quickstart folder.
The application this project produces is designed to be run on Red Hat JBoss Enterprise Application Platform 7.1 or later.
All you need to build this project is Java 8.0 (Java SDK 1.8) or later and Maven 3.3.1 or later. See Configure Maven for JBoss EAP 7.1 to make sure you are configured correctly for testing the quickstarts.
It is important to start with a clean version of JBoss EAP before testing this quickstart. Be sure to unzip or install a fresh JBoss EAP instance.
In the following instructions, replace EAP7_HOME
with the actual path to your JBoss EAP installation. The installation path is described in detail here: Use of EAP7_HOME and JBOSS_HOME Variables.
The following users must be added to the ApplicationRealm
to run this quickstart. Be sure to use the names and passwords specified in the table as they are required to run this example.
| UserName | Realm | Password | Roles |
|---|---|---|---|
| quickuser | ApplicationRealm | quick-123 | leave blank for none |
| quickuser1 | ApplicationRealm | quick123+ | leave blank for none |
| quickuser2 | ApplicationRealm | quick+123 | leave blank for none |
To add the users, open a command prompt and type the following commands:
For Linux:
EAP7_HOME/bin/add-user.sh -a -u quickuser -p quick-123
EAP7_HOME/bin/add-user.sh -a -u quickuser1 -p quick123+
EAP7_HOME/bin/add-user.sh -a -u quickuser2 -p quick+123
For Windows:
EAP7_HOME\bin\add-user.bat -a -u quickuser -p quick-123
EAP7_HOME\bin\add-user.bat -a -u quickuser1 -p quick123+
EAP7_HOME\bin\add-user.bat -a -u quickuser2 -p quick+123
If you prefer, you can use the add-user utility interactively. For an example of how to use the add-user utility, see the instructions located here: Add an Application User.
JBoss EAP server configuration for this quickstart is very complicated and not easily restored by running a JBoss CLI script, so it is important to back up your server configuration files before you begin.
EAP7_HOME/domain/configuration/domain.xml
EAP7_HOME/domain/configuration/host.xml
You configure the domain server by running JBoss CLI commands. For your convenience, this quickstart batches the commands into a install-domain.cli
script provided in the root directory of this quickstart.
Start with a fresh instance of the JBoss EAP as noted above under Start with a Clean JBoss EAP Install.
Be sure you add the required users as specified above under Add the Application Users.
Before you begin, make sure you followed the instructions above under Back Up the JBoss EAP Server Configuration Files.
bin/domain.sh
install-domain.cli
file in the root of this quickstart directory. This script configures and starts multiple servers needed to run this quickstart.Open a new command prompt, navigate to the root directory of this quickstart, and run the following command, replacing EAP7_HOME with the path to your server:
For Linux: EAP7_HOME/bin/jboss-cli.sh -c --file=install-domain.cli
For Windows: EAP7_HOME\bin\jboss-cli.bat -c --file=install-domain.cli
You should see the following result when you run the script:
{
"outcome" => "success",
"result" => "STOPPED"
}
{
"outcome" => "success",
"result" => "STOPPED"
}
{
"outcome" => "success",
"result" => undefined,
"server-groups" => undefined
}
{
"outcome" => "success",
"result" => undefined,
"server-groups" => undefined
}
{
"outcome" => "success",
"result" => undefined,
"server-groups" => undefined
}
{
"outcome" => "success",
"result" => undefined,
"server-groups" => undefined
}
{
"outcome" => "success",
"result" => undefined,
"server-groups" => undefined
}
The batch executed successfully
process-state: reload-required
{
"outcome" => "success",
"result" => undefined,
"server-groups" => undefined,
"response-headers" => {"process-state" => "reload-required"}
}
{
"outcome" => "success",
"result" => "STARTING",
"response-headers" => {"process-state" => "reload-required"}
}
{
"outcome" => "success",
"result" => "STARTING",
"response-headers" => {"process-state" => "reload-required"}
}
{
"outcome" => "success",
"result" => "STARTING",
"response-headers" => {"process-state" => "reload-required"}
}
{
"outcome" => "success",
"result" => "STARTING",
"response-headers" => {"process-state" => "reload-required"}
}
{
"outcome" => "success",
"result" => "STARTING",
"response-headers" => {"process-state" => "reload-required"}
}
{
"outcome" => "success",
"result" => "Starting",
"response-headers" => {"process-state" => "reload-required"}
NOTE: Depending on your machine configuration, you may see "Exception in thread "main" java.lang.OutOfMemoryError: unable to create new native thread" exceptions in the server log when you run this script. If you do, you must increase the ulimit open files and max user processes settings. Instructions to do this are located here: http://ithubinfo.blogspot.com/2013/07/how-to-increase-ulimit-open-file-and.html. After you update the ulimit settings, be sure to reboot and start with a fresh instance of the server.
There are too many additions to the configuration files to list here. Feel free to compare the domain.xml
and host.xml
to the backup copies to see the changes made to configure the server to run this quickstart.
mvn clean install
You should see BUILD SUCCESS
at the end of the build SUCCESS
messages for each component.
For Linux: EAP7_HOME/bin/jboss-cli.sh -c --file=deploy-domain.cli
For Windows: EAP7_HOME\bin\jboss-cli.bat -c --file=deploy-domain.cli
This will deploy the app-*.ear
files to different server-groups of the running domain. You should see the following result when you run the script:
The batch executed successfully
process-state: reload-required
You may see the following warnings in the server log. You can ignore these warnings.
[Server:app-oneB] 13:00:13,346 WARN [org.jboss.as.clustering.jgroups.protocol.UDP] (ServerService Thread Pool -- 13) JGRP000015: the send buffer of socket MulticastSocket was set to 1MB, but the OS only allocated 212.99KB. This might lead to performance problems. Please set your max send buffer in the OS correctly (e.g. net.core.wmem_max on Linux)
[Server:app-oneB] 13:00:13,346 WARN [org.jboss.as.clustering.jgroups.protocol.UDP] (ServerService Thread Pool -- 13) JGRP000015: the receive buffer of socket MulticastSocket was set to 20MB, but the OS only allocated 212.99KB. This might lead to performance problems. Please set your max receive buffer in the OS correctly (e.g. net.core.rmem_max on Linux)
[Server:app-oneB] 13:00:13,347 WARN [org.jboss.as.clustering.jgroups.protocol.UDP] (ServerService Thread Pool -- 13) JGRP000015: the send buffer of socket MulticastSocket was set to 1MB, but the OS only allocated 212.99KB. This might lead to performance problems. Please set your max send buffer in the OS correctly (e.g. net.core.wmem_max on Linux)
[Server:app-oneB] 13:00:13,347 WARN [org.jboss.as.clustering.jgroups.protocol.UDP] (ServerService Thread Pool -- 13) JGRP000015: the receive buffer of socket MulticastSocket was set to 25MB, but the OS only allocated 212.99KB. This might lead to performance problems. Please set your max receive buffer in the OS correctly (e.g. net.core.rmem_max on Linux)
[Server:app-oneA] 13:00:13,407 WARN [org.jboss.as.clustering.jgroups.protocol.UDP] (ServerService Thread Pool -- 11) JGRP000015: the send buffer of socket MulticastSocket was set to 1MB, but the OS only allocated 212.99KB. This might lead to performance problems. Please set your max send buffer in the OS correctly (e.g. net.core.wmem_max on Linux)
[Server:app-oneA] 13:00:13,408 WARN [org.jboss.as.clustering.jgroups.protocol.UDP] (ServerService Thread Pool -- 11) JGRP000015: the receive buffer of socket MulticastSocket was set to 20MB, but the OS only allocated 212.99KB. This might lead to performance problems. Please set your max receive buffer in the OS correctly (e.g. net.core.rmem_max on Linux)
[Server:app-oneA] 13:00:13,408 WARN [org.jboss.as.clustering.jgroups.protocol.UDP] (ServerService Thread Pool -- 11) JGRP000015: the send buffer of socket MulticastSocket was set to 1MB, but the OS only allocated 212.99KB. This might lead to performance problems. Please set your max send buffer in the OS correctly (e.g. net.core.wmem_max on Linux)
[Server:app-oneA] 13:00:13,408 WARN [org.jboss.as.clustering.jgroups.protocol.UDP] (ServerService Thread Pool -- 11) JGRP000015: the receive buffer of socket MulticastSocket was set to 25MB, but the OS only allocated 212.99KB. This might lead to performance problems. Please set your max receive buffer in the OS correctly (e.g. net.core.rmem_max on Linux)
NOTE: If ERRORs appear in the server.log
when installing or deploying the quickstart, stop the domain and restart it. This should ensure further steps run correctly.
This example shows how to invoke an EJB from a remote standalone application.
client/
subdirectory.mvn exec:java
The client will output the following information provided by the applications:
InvokeAll succeed: MainApp[anonymous]@master:app-main > [ app1[quickuser1]@master:app-oneB > app2[quickuser2]@master:app-twoA ; app2[quickuser2]@master:app-twoA ]
This output shows that the MainApp
is called with the user anonymous
at node master:app-main
and the sub-call is proceeded by the master:app-oneA
node and master:app-twoA
node as quickuser2
.
Review the server log files to see the bean invocations on the servers.
Note: This quickstart requires quickstart-parent
artifact to be installed in your local Maven repository. To install it, navigate to quickstarts project root directory and run the following command:
mvn clean install
If it is necessary to invoke the client with a different JBoss EAP version the main class can be invoked by using the following command from the root directory of this quickstart. Replace EAP7_HOME with your current installation path. The output should be similar to the previous mvn executions.
java -cp EAP7_HOME/bin/client/jboss-client.jar:app-main/ejb/target/ejb-multi-server-app-main-ejb-client.jar:app-two/ejb/target/ejb-multi-server-app-two-ejb-client.jar:client/target/ejb-multi-server-client.jar org.jboss.as.quickstarts.ejb.multi.server.Client
NOTE:
app1
might use app-oneA
and app-oneB
node due to cluster loadbalancing.appOne
/appTwo
since security is enabled but the method does not include @Roles. You need to set default-missing-method-permissions-deny-access = false
for the ejb3
subsystem within the domain profile ha
and default
to allow the method invocation. See the install-domain.cli
script.The JSF example shows different annotations to inject the EJB. Also how to handle the annotation if different beans implement the same interface and therefore the container is not able to decide which bean needs to be injected without additional informations.
An example how to access EJBs from a separate instance which only contains a web application.
For Linux: EAP7_HOME/bin/jboss-cli.sh --connect --file=undeploy-domain.cli
For Windows: EAP7_HOME\bin\jboss-cli.bat --connect --file=undeploy-domain.cli
EAP7_HOME/domain/configuration/domain.xml
and EAP7_HOME/domain/configuration/host.xml
files with the back-up copies of the files. Be sure to replace EAP7_HOME with the path to your server.EJB Client (ejb-client) currently has limited support in the Eclipse Web Tools Platform (WTP). For that reason, this quickstart is not supported in Red Hat JBoss Developer Studio.
If you want to debug the source code of any library in the project, run the following command to pull the source into your local repository. The IDE should then detect it.
mvn dependency:sources


Dessert (100g serving)
Calories (g)
Fat (g)
Carbs (g)
Protein (g)
Dessert Name
10
move_to_inbox
Inbox
send
Sent Mail
delete
Trash
error
Spam
Abbey Christansen
chat_bubble
Alex Nelson
chat_bubble
Mary Johnson
chat_bubble
Single
Initial Value
Multiple
Single
Initial Value
Multiple


{{currUser.city}}, {{currUser.province}}
{{currUser.overview}}
No informations.
Specialist Equipment
OCT
Digital Retinal Camera
Optos Optomap
Visual Fields Perimetry
HRT
Digital Slit Lamp
Locum Specialty
Pediatric
Glaucoma
Perimetry
Low Vision
Sports Vision
Vision Therapy
Specialty Contact Lenses
Dry Eye
Practice Management System
Acuitas activeEHR2
VisualEyes
MyVisionExpress
iFile/cFile
Maximeyes
Genie
Eyefinity OfficeMate
Other
Lens Product Knowledge
Hoya
Nikon
Essilor
Zeiss
Rodenstock
Centennial
Seiko
Other
Independent
Contact Lens Specialty
Scleral
RPG
Keratoconus
Toric
Average Full Exam Time
15min
20min
25min
30min
35min
40min
45min
Handover between Dr, Patient, Dispenser
Yes
No
Patient Booking Preference
Full-Full-Partial
Full-Partial-Full
No Preference
Other
{{currUser.city}}, {{currUser.province}}
Here you will see all of the feedbacks given to this practice.
{{feedback.feedback.rating}} / 5
No rating


compakt
condense and compress Twitch chat
Try it out!
FAQ
How much does it cost?
It's free!
Is it open-source?
Absolutely! Check out the repository here.
Do you send usage reports or track where I go online?
No. We constrain the extension to only work on Twitch. There's no code that monitors and tracks your usage. Please feel free to explore the source code yourself!
I see a bug/issue. How can I report it to you?
You can submit an issue on GitHub or email me! nhat at nhatqbui dot com
How does it work?
compakt uses suffix arrays to compress messages.
Is this "sentence-compression"?
We are certainly compressing messages because we're reducing the length of a sentence while maintaining its meaning. However, the algorithms do not look at any semantics of the original message. When we reduce repeats to just one utterance, we just happen to retain the meaning because it's being uttered more than once.
Is this "data-compression"?
Yes but at a much more simplistic level. Advanced techniques of compression prioritize data-size (of course) which is extremely beneficial for storage and transfer but not for human-consumption. So from a data-compression perspective, we aim for an encoding scheme that is easily and quickly decoded by a human.
Guys can you please not spam the chat. My mom bought me this new laptop and it gets really hot when the chat is being spamed. Now my leg is starting to hurt because it is getting so hot. Please, if you don't want me to get burned, then dont spam the chat.
This will certainly make your laptop get hotter.


This Tom Brady character is full of it! He's sitting here in his mansion with all his Super Bowl rings just laughing at all these other Football players with their no rings and Im like come'on man why you gotta go and break Manning's record by winning 201 games. What a Jerk!!!
Yea I am disgruntled to say the least. Totally expected to lose a lot of games this season, but every single one!! Who does that! How many quarterbacks does it take to win a game.....uh I dont know how about all of them and they still lose. I'm going to go be a Eagles fan atleast they get your hopes up from time to time.
yea I just looked it up...its sprite
This guy.....I actually dont know why I am mad at him. I dont like his sprite commercial...is it sprite or 7Up...I dont know, but I do know its not Sierra Mist...its probably sprite. Either way I dont like it.


Autopsy Report Reveals How Peter Mugure’s Wife, Kids Were Murdered
by Eva NyamburaSacked army major Peter Mugure’s wife Joyce Syombua died of a head injury, an autopsy report has revealed.
Her two children; Shanice Maua and Prince Michael were strangled to death, the postmortem conducted at Nanyuki Teaching and Referral Hospital mortuary has showed.
The postmortem was supposed to be carried out on Tuesday but was called off to allow police more time to probe the killings.
Read: Major Peter Mugure Sacked, To Be Held For 21 Days Pending Investigations
In custody so far is the ex Kenya Defense Forces (KDF) soldier Mugure and a casual laborer at the Laikipia Air Base Collins Pamba who is suspected to have helped the latter bury the bodies.
The bodies were found in a shallow grave in Makaburini, Thingithu area on Saturday. They were stacked one on top of the other in gunny bags.
Mugure has been described as a calm but depressed man whose marriage was troubled.
He is being held at Nanyuki Police Station while his co-accused was taken to Narumoru police station for 21 days.


Developer Preview 1.0 Checklist
Scenarios
Three scenarios need to work:
-
Stub-domains for Xenstore and Xenconsoled. Device drivers (mainly netfront and blkfront) should compile on both Xen and Linux to let us swap between front-ends and back-ends as either stub-domain or dom0.
-
Self-hosting website and DNS server (this one!).
-
Proof concept of distributed system (ideally can be demo’d for OSCON). Current thinking is something like OCamlot or Signpost. This would be a nice “Hello world!” demo as it requires actors and a persistent job queue. For example, i.e spawning new VMs in response to load, as evidenced by self-scaling web-server.
Repositories
All of these repositories need to be code-reviewed and run over with ocamldoc. Purge the TODO hacks when you go over them, or explicitly pull them out into a top-level TODO file. We need to close out this thread on a standard repository format for all these things.
Core Unix/Xen libraries: * shared-memory-ring: Builds shared memory-based point-to-point communication protocols. Is reasonably mature and can be released. Can be used outside of Xen, need to benchmark vs c. 4.01.0dev ocaml improves perf with bigarray builtins. Implements the Xen ABI, but needs examples in-tree. (Owner: djs). For 1.0. * ocaml-xenstore: Repo layout is confusing. Client and server in here, as well as Lwt bindings. Does build as stub domain and unix kernel. How can this stay in sync with xen-unstable? (Owner: djs). For 1.0. * ocaml-fd-send-recv: UNIX only and trivial. Released and stable. For 1.0. (Owner: djs/vb) * ocaml-vchan: Vchan communication channel between VMs. Provides a socket-like interface between VMs. For 1.0 (Owner: djs). Post 2.0: vsock? * ocaml-qmp: QEMU message-passing protocol to command a running qemu. Not for 1.0, really for advanced use (Owner: djs). * ocaml-gntshare: Interface to mapping pages across Xen VMs. In ocaml-xen-lowlevel-libs, in good state, part of upstream xen-unstable and needs synching. (Owner: djs) * ocaml-xen-block-driver: Successfully moved out, and works in Xen. It once worked in userspace. (Owner: djs/jonludlam). For 1.0. * ocaml-xen-net-driver: Can be moved out, and works in Xen. It once worked in userspace. (Owner: djs/jonludlam). For 1.0. * xenbigarray: OPAM switch hack to eliminate unix dependency. shouldnt be externally visible. (Owner: anil). For 1.0.
Core MirageOS libraries and tools: * mirage-platform: * ocaml-cstruct: * mirari: * opam-repo-dev: * dyntype: * ocaml-re: stable, done * opam: * cross-ref ocamldoc: leo
Storage libraries: * mirage-fs: FAT not working as depends on Bitstring. Post 1.0, break out FAT into separate library. VB expressed interest in FAT. * orm: Post 1.0, needs sqlite bindings * ocaml-crunch: Works. * libvhd: ?? Jon, suitable for block driver use? * ocaml-iscsi: Doesnt exist, but djs really wants it. * cagit: Needs a file system (Owner: tg). * irmin: tg, not for 1.0 * arakoon: In-memory-only patch, Arakoon already functorised across the storage layer. For 1.0? to investigate
RPC/coordination: * rpc-light: Works well, but slow and no wire protocol defined. Vb mentioned Thrift. Also have bin_io? No versioning story. Needs obuild help. (Owner: tg) * ocaml-actor: non existent! * ocaml-fable: on avsm repo only * message-switch: * ocamlmq: to investigate. * logger: need a vchan-based logger and CLI to access from other domain
Protocols: * ocaml-dns: * mirage-net: * ocaml-pcap: * ocaml-openflow: * ocaml-xmpp: ermine repos, lwt, need porting to mirage-net
Security: * mirage-cryptokit: * ocaml-crypto-keys: * stud: need ssl binding for fable * ocaml-ssh: still in mpl-land, not too hard to port
Webby libraries: * ocaml-cohttp: * ocaml-cow: * ocaml-uri: * ocaml-spdy: out of date, not for 1.0
Cloud interfaces: * aws: ec2 bindings, need porting to cohttp * ocaml-libvirt: dave upstreaming * xenopsd: convenient single-host daemon for ubuntu-unstable.
Testing: * Ocamlot * Pathos testing?
Tutorials and examples: * mirage-skeleton: * mirage-tutorial: out-of-date * mirage-www: extract wiki/blog into library, make it not suck
Misc
- Integrate
ocaml-tuntap
intomirage-platform
to remove tun hacks [vincent] mirari run
as a stateful process working with libvirt and EC2.- cohttp/ssl releases [anil]
- obuild instead of oasis for core libraries for better cross-compilation/portability/speed
- Jenga? [dave]


[\w-]
)and other elements
like blocks
other non-plain
and tables
| 1 | a |
| 2 | b |
| 3 | c |
Footnotes break after two consecutive empty lines - just like paragraphs - see https://orgmode.org/worg/dev/org-syntax.html. This shouldn't happen when the definition line and the line after that are empty.
yolo
the inline footnote definition
the anonymous inline footnote definition
so this definition will not be at the end of this section in the exported document. Rather, it will be somewhere down below in the footnotes section.
There's multiple reasons for that. Among others, doing so requires i18n (to recognize the section) and silently hides content before and after the footnotes.


Research
I am interested in physical oceanography more specifically data analysis and dynamics. I have been using modeling techniques together with observed data to study process in the oceans.
I am currently a Ph.D. candidate at University of Massachusetts in the Department of Estuarine and Ocean Sciences.


Press n or j to go to the next uncovered block, b, p or k for the previous block.
| File | Statements | Branches | Functions | Lines | |||||
|---|---|---|---|---|---|---|---|---|---|
| build/src | 0% | 0/137 | 0% | 0/2 | 0% | 0/1 | 0% | 0/135 | |
| build/src/blueprint | 0% | 0/70 | 100% | 0/0 | 0% | 0/3 | 0% | 0/70 | |
| build/src/blueprint/dsl | 0% | 0/189 | 0% | 0/69 | 0% | 0/82 | 0% | 0/152 | |
| build/src/blueprint/support | 0% | 0/698 | 0% | 0/134 | 0% | 0/248 | 0% | 0/681 | |
| build/src/capability/freeze | 0% | 0/43 | 0% | 0/9 | 0% | 0/22 | 0% | 0/33 | |
| build/src/common/artifact/github | 0% | 0/67 | 0% | 0/11 | 0% | 0/18 | 0% | 0/61 | |
| build/src/common/artifact/local | 0% | 0/37 | 0% | 0/11 | 0% | 0/16 | 0% | 0/30 | |
| build/src/common/command | 0% | 0/113 | 0% | 0/75 | 0% | 0/27 | 0% | 0/104 | |
| build/src/common/command/editor | 0% | 0/96 | 0% | 0/31 | 0% | 0/31 | 0% | 0/85 | |
| build/src/common/command/editor/dry-run | 0% | 0/52 | 0% | 0/25 | 0% | 0/13 | 0% | 0/46 | |
| build/src/common/command/generator | 0% | 0/160 | 0% | 0/92 | 0% | 0/56 | 0% | 0/127 | |
| build/src/common/command/support | 0% | 0/13 | 100% | 0/0 | 0% | 0/6 | 0% | 0/12 | |
| build/src/common/command/support/java | 0% | 0/5 | 100% | 0/0 | 100% | 0/0 | 0% | 0/5 | |
| build/src/common/context | 0% | 0/1 | 100% | 0/0 | 100% | 0/0 | 0% | 0/1 | |
| build/src/common/delivery/build | 0% | 0/60 | 0% | 0/21 | 0% | 0/26 | 0% | 0/44 | |
| build/src/common/delivery/build/k8s | 0% | 0/9 | 100% | 0/0 | 0% | 0/3 | 0% | 0/9 | |
| build/src/common/delivery/build/local | 0% | 0/169 | 0% | 0/55 | 0% | 0/56 | 0% | 0/150 | |
| build/src/common/delivery/build/local/lein | 0% | 0/30 | 0% | 0/9 | 0% | 0/13 | 0% | 0/25 | |
| build/src/common/delivery/build/local/maven | 0% | 0/112 | 0% | 0/45 | 0% | 0/31 | 0% | 0/100 | |
| build/src/common/delivery/build/local/npm | 0% | 0/199 | 0% | 0/82 | 0% | 0/70 | 0% | 0/171 | |
| build/src/common/delivery/code | 0% | 0/85 | 0% | 0/45 | 0% | 0/37 | 0% | 0/62 | |
| build/src/common/delivery/code/autofix | 0% | 0/98 | 0% | 0/36 | 0% | 0/25 | 0% | 0/85 | |
| build/src/common/delivery/code/autofix/node | 0% | 0/9 | 100% | 0/0 | 100% | 0/0 | 0% | 0/9 | |
| build/src/common/delivery/code/fingerprint | 0% | 0/64 | 0% | 0/24 | 0% | 0/26 | 0% | 0/47 | |
| build/src/common/delivery/code/fingerprint/maven | 0% | 0/70 | 0% | 0/29 | 0% | 0/27 | 0% | 0/55 | |
| build/src/common/delivery/code/fingerprint/node | 0% | 0/30 | 0% | 0/11 | 0% | 0/9 | 0% | 0/25 | |
| build/src/common/delivery/code/fingerprint/support | 0% | 0/14 | 100% | 0/0 | 0% | 0/5 | 0% | 0/14 | |
| build/src/common/delivery/code/review | 0% | 0/69 | 0% | 0/17 | 0% | 0/30 | 0% | 0/55 | |
| build/src/common/delivery/code/review/checkstyle | 0% | 0/83 | 0% | 0/32 | 0% | 0/32 | 0% | 0/67 | |
| build/src/common/delivery/code/review/support | 0% | 0/64 | 0% | 0/35 | 0% | 0/27 | 0% | 0/51 | |
| build/src/common/delivery/deploy | 0% | 0/118 | 0% | 0/35 | 0% | 0/39 | 0% | 0/97 | |
| build/src/common/delivery/deploy/local | 0% | 0/68 | 0% | 0/33 | 0% | 0/23 | 0% | 0/61 | |
| build/src/common/delivery/deploy/local/jar | 0% | 0/61 | 0% | 0/21 | 0% | 0/23 | 0% | 0/52 | |
| build/src/common/delivery/deploy/local/maven | 0% | 0/91 | 0% | 0/37 | 0% | 0/29 | 0% | 0/82 | |
| build/src/common/delivery/deploy/pcf | 0% | 0/631 | 0% | 0/188 | 0% | 0/224 | 0% | 0/554 | |
| build/src/common/delivery/docker | 0% | 0/53 | 0% | 0/24 | 0% | 0/14 | 0% | 0/45 | |
| build/src/common/delivery/goals | 0% | 0/143 | 0% | 0/82 | 0% | 0/45 | 0% | 0/127 | |
| build/src/common/delivery/goals/common | 0% | 0/48 | 100% | 0/0 | 0% | 0/2 | 0% | 0/48 | |
| build/src/common/delivery/goals/graph | 0% | 0/57 | 0% | 0/17 | 0% | 0/16 | 0% | 0/49 | |
| build/src/common/delivery/goals/support | 0% | 0/233 | 0% | 0/137 | 0% | 0/69 | 0% | 0/205 | |
| build/src/common/delivery/goals/support/github | 0% | 0/76 | 0% | 0/41 | 0% | 0/19 | 0% | 0/67 | |
| build/src/common/listener | 0% | 0/40 | 0% | 0/6 | 0% | 0/6 | 0% | 0/40 | |
| build/src/common/listener/support | 0% | 0/137 | 0% | 0/62 | 0% | 0/66 | 0% | 0/105 | |
| build/src/common/listener/support/pushtest | 0% | 0/155 | 0% | 0/63 | 0% | 0/73 | 0% | 0/108 | |
| build/src/common/listener/support/pushtest/ci | 0% | 0/4 | 100% | 0/0 | 100% | 0/0 | 0% | 0/4 | |
| build/src/common/listener/support/pushtest/docker | 0% | 0/4 | 100% | 0/0 | 100% | 0/0 | 0% | 0/4 | |
| build/src/common/listener/support/pushtest/jvm | 0% | 0/24 | 0% | 0/9 | 0% | 0/11 | 0% | 0/14 | |
| build/src/common/listener/support/pushtest/node | 0% | 0/43 | 0% | 0/18 | 0% | 0/17 | 0% | 0/29 | |
| build/src/common/listener/support/pushtest/pcf | 0% | 0/19 | 0% | 0/9 | 0% | 0/9 | 0% | 0/11 | |
| build/src/common/log | 0% | 0/273 | 0% | 0/111 | 0% | 0/123 | 0% | 0/220 | |
| build/src/common/repo | 0% | 0/106 | 0% | 0/45 | 0% | 0/39 | 0% | 0/82 | |
| build/src/common/slack | 0% | 0/67 | 0% | 0/31 | 0% | 0/32 | 0% | 0/45 | |
| build/src/common/verify | 0% | 0/16 | 0% | 0/5 | 0% | 0/4 | 0% | 0/15 | |
| build/src/handlers/commands | 0% | 0/302 | 0% | 0/207 | 0% | 0/94 | 0% | 0/236 | |
| build/src/handlers/common | 0% | 0/23 | 0% | 0/33 | 0% | 0/4 | 0% | 0/18 | |
| build/src/handlers/events/delivery/build | 0% | 0/186 | 0% | 0/139 | 0% | 0/47 | 0% | 0/153 | |
| build/src/handlers/events/delivery/code | 0% | 0/57 | 0% | 0/38 | 0% | 0/20 | 0% | 0/45 | |
| build/src/handlers/events/delivery/deploy | 0% | 0/47 | 0% | 0/40 | 0% | 0/12 | 0% | 0/36 | |
| build/src/handlers/events/delivery/deploy/k8s | 0% | 0/142 | 0% | 0/107 | 0% | 0/35 | 0% | 0/116 | |
| build/src/handlers/events/delivery/goals | 0% | 0/592 | 0% | 0/325 | 0% | 0/153 | 0% | 0/506 | |
| build/src/handlers/events/delivery/goals/k8s | 0% | 0/54 | 0% | 0/19 | 0% | 0/16 | 0% | 0/48 | |
| build/src/handlers/events/delivery/verify | 0% | 0/91 | 0% | 0/59 | 0% | 0/27 | 0% | 0/72 | |
| build/src/handlers/events/dry-run | 0% | 0/57 | 0% | 0/50 | 0% | 0/11 | 0% | 0/46 | |
| build/src/handlers/events/issue | 0% | 0/132 | 0% | 0/118 | 0% | 0/36 | 0% | 0/102 | |
| build/src/handlers/events/repo | 0% | 0/320 | 0% | 0/272 | 0% | 0/92 | 0% | 0/243 | |
| build/src/ingesters | 0% | 0/16 | 0% | 0/2 | 0% | 0/5 | 0% | 0/15 | |
| build/src/spi/artifact | 0% | 0/1 | 100% | 0/0 | 100% | 0/0 | 0% | 0/1 | |
| build/src/spi/build | 0% | 0/1 | 100% | 0/0 | 100% | 0/0 | 0% | 0/1 | |
| build/src/spi/deploy | 0% | 0/2 | 100% | 0/0 | 100% | 0/0 | 0% | 0/2 | |
| build/src/spi/log | 0% | 0/32 | 0% | 0/11 | 0% | 0/11 | 0% | 0/25 | |
| build/src/typings | 0% | 0/611 | 0% | 0/102 | 0% | 0/51 | 0% | 0/611 | |
| build/src/util | 0% | 0/145 | 0% | 0/73 | 0% | 0/22 | 0% | 0/139 | |
| build/src/util/credentials | 0% | 0/8 | 0% | 0/4 | 0% | 0/1 | 0% | 0/8 | |
| build/src/util/fingerprint | 0% | 0/32 | 0% | 0/14 | 0% | 0/11 | 0% | 0/27 | |
| build/src/util/git | 0% | 0/117 | 0% | 0/40 | 0% | 0/34 | 0% | 0/105 | |
| build/src/util/github | 0% | 0/127 | 0% | 0/37 | 0% | 0/43 | 0% | 0/112 | |
| build/src/util/misc | 0% | 0/93 | 0% | 0/25 | 0% | 0/29 | 0% | 0/86 | |
| build/src/util/project | 0% | 0/133 | 0% | 0/56 | 0% | 0/56 | 0% | 0/105 | |
| build/src/util/slack | 0% | 0/102 | 0% | 0/47 | 0% | 0/27 | 0% | 0/90 | |
| build/src/util/sloc | 0% | 0/60 | 0% | 0/14 | 0% | 0/26 | 0% | 0/51 | |
| build/src/util/test | 0% | 0/35 | 0% | 0/10 | 0% | 0/13 | 0% | 0/30 | |
| build/src/util/webhook | 0% | 0/32 | 0% | 0/5 | 0% | 0/9 | 0% | 0/32 | |
| build/test | 0% | 0/17 | 100% | 0/0 | 0% | 0/4 | 0% | 0/17 | |
| build/test/blueprint | 0% | 0/148 | 0% | 0/18 | 0% | 0/55 | 0% | 0/113 | |
| build/test/blueprint/dsl | 0% | 0/241 | 0% | 0/36 | 0% | 0/112 | 0% | 0/171 | |
| build/test/common | 0% | 0/15 | 100% | 0/0 | 0% | 0/3 | 0% | 0/14 | |
| build/test/common/command/support | 0% | 0/13 | 100% | 0/0 | 0% | 0/6 | 0% | 0/11 | |
| build/test/common/command/support/java | 0% | 0/31 | 100% | 0/0 | 0% | 0/16 | 0% | 0/25 | |
| build/test/common/delivery/code | 0% | 0/47 | 0% | 0/11 | 0% | 0/14 | 0% | 0/40 | |
| build/test/common/delivery/code/autofix | 0% | 0/60 | 0% | 0/9 | 0% | 0/19 | 0% | 0/48 | |
| build/test/common/delivery/code/autofix/node | 0% | 0/72 | 0% | 0/18 | 0% | 0/26 | 0% | 0/57 | |
| build/test/common/delivery/code/fingerprint | 0% | 0/38 | 0% | 0/9 | 0% | 0/15 | 0% | 0/29 | |
| build/test/common/delivery/code/fingerprint/node | 0% | 0/51 | 0% | 0/10 | 0% | 0/16 | 0% | 0/42 | |
| build/test/common/delivery/code/fingerprint/support | 0% | 0/15 | 100% | 0/0 | 0% | 0/3 | 0% | 0/15 | |
| build/test/common/delivery/code/review | 0% | 0/92 | 0% | 0/11 | 0% | 0/26 | 0% | 0/81 | |
| build/test/common/delivery/code/review/support | 0% | 0/51 | 0% | 0/9 | 0% | 0/17 | 0% | 0/41 | |
| build/test/common/delivery/deploy/maven | 0% | 0/39 | 0% | 0/9 | 0% | 0/13 | 0% | 0/32 | |
| build/test/common/delivery/goals | 0% | 0/11 | 100% | 0/0 | 0% | 0/6 | 0% | 0/9 | |
| build/test/common/listener | 0% | 0/33 | 0% | 0/9 | 0% | 0/11 | 0% | 0/26 | |
| build/test/common/listener/support | 0% | 0/475 | 0% | 0/81 | 0% | 0/218 | 0% | 0/356 | |
| build/test/common/log | 0% | 0/210 | 0% | 0/27 | 0% | 0/73 | 0% | 0/174 | |
| build/test/handlers/events/delivery | 0% | 0/57 | 0% | 0/9 | 0% | 0/18 | 0% | 0/51 | |
| build/test/handlers/events/delivery/artifact | 0% | 0/27 | 100% | 0/0 | 0% | 0/6 | 0% | 0/27 | |
| build/test/handlers/events/delivery/build/local/lein | 0% | 0/24 | 0% | 0/9 | 0% | 0/9 | 0% | 0/18 | |
| build/test/handlers/events/delivery/build/local/maven | 0% | 0/38 | 100% | 0/0 | 0% | 0/6 | 0% | 0/38 | |
| build/test/handlers/events/delivery/build/local/npm | 0% | 0/27 | 100% | 0/0 | 0% | 0/5 | 0% | 0/27 | |
| build/test/handlers/events/delivery/deploy/pcf | 0% | 0/8 | 100% | 0/0 | 0% | 0/2 | 0% | 0/8 | |
| build/test/handlers/events/delivery/review/checkstyle | 0% | 0/87 | 0% | 0/27 | 0% | 0/31 | 0% | 0/66 | |
| build/test/handlers/events/delivery/scan/fingerprint/maven | 0% | 0/27 | 0% | 0/9 | 0% | 0/11 | 0% | 0/20 | |
| build/test/sloc | 0% | 0/58 | 0% | 0/9 | 0% | 0/19 | 0% | 0/45 | |
| build/test/util/fingerprint | 0% | 0/34 | 0% | 0/9 | 0% | 0/12 | 0% | 0/27 | |
| build/test/util/git | 0% | 0/22 | 100% | 0/0 | 0% | 0/13 | 0% | 0/20 | |
| build/test/util/misc | 0% | 0/42 | 0% | 0/9 | 0% | 0/16 | 0% | 0/33 | |
| build/test/util/project | 0% | 0/217 | 0% | 0/56 | 0% | 0/88 | 0% | 0/158 | |
| build/test/util/slack | 0% | 0/51 | 0% | 0/9 | 0% | 0/21 | 0% | 0/40 | |
| coverage | 0% | 0/606 | 0% | 0/321 | 0% | 0/52 | 0% | 0/105 | |
| src | 0% | 0/0 | 0% | 0/0 | 0% | 0/0 | 0% | 0/0 | |
| src/blueprint | 90.91% | 10/11 | 100% | 0/0 | 0% | 0/1 | 90.91% | 10/11 | |
| src/blueprint/dsl | 98.33% | 59/60 | 100% | 8/8 | 95.83% | 23/24 | 98.18% | 54/55 | |
| src/blueprint/support | 52.89% | 128/242 | 36.54% | 19/52 | 34.88% | 30/86 | 52.7% | 127/241 | |
| src/common/artifact/github | 60.38% | 32/53 | 0% | 0/2 | 40% | 4/10 | 59.62% | 31/52 | |
| src/common/command | 21.13% | 15/71 | 0% | 0/19 | 0% | 0/21 | 18.84% | 13/69 | |
| src/common/command/editor | 39.58% | 19/48 | 22.22% | 2/9 | 23.53% | 4/17 | 40% | 18/45 | |
| src/common/command/generator | 7.14% | 1/14 | 100% | 0/0 | 0% | 0/6 | 8.33% | 1/12 | |
| src/common/command/support | 40% | 4/10 | 100% | 0/0 | 0% | 0/6 | 44.44% | 4/9 | |
| src/common/command/support/java | 100% | 1/1 | 100% | 0/0 | 100% | 0/0 | 100% | 1/1 | |
| src/common/context | 0% | 0/0 | 0% | 0/0 | 0% | 0/0 | 0% | 0/0 | |
| src/common/delivery/build | 25% | 5/20 | 100% | 0/0 | 0% | 0/8 | 27.78% | 5/18 | |
| src/common/delivery/build/local | 22.4% | 28/125 | 10.71% | 3/28 | 9.68% | 3/31 | 22.95% | 28/122 | |
| src/common/delivery/build/local/lein | 57.14% | 4/7 | 100% | 0/0 | 50% | 1/2 | 57.14% | 4/7 | |
| src/common/delivery/build/local/maven | 44.44% | 12/27 | 50% | 5/10 | 57.14% | 4/7 | 44.44% | 12/27 | |
| src/common/delivery/build/local/npm | 54.88% | 45/82 | 44% | 11/25 | 30% | 6/20 | 54.32% | 44/81 | |
| src/common/delivery/code | 78.57% | 22/28 | 93.75% | 15/16 | 91.67% | 11/12 | 80% | 20/25 | |
| src/common/delivery/code/autofix | 83.61% | 51/61 | 55.56% | 10/18 | 100% | 8/8 | 83.33% | 50/60 | |
| src/common/delivery/code/fingerprint | 52.63% | 20/38 | 66.67% | 4/6 | 38.46% | 5/13 | 62.5% | 20/32 | |
| src/common/delivery/code/fingerprint/maven | 78.57% | 11/14 | 100% | 0/0 | 100% | 3/3 | 78.57% | 11/14 | |
| src/common/delivery/code/fingerprint/node | 88.24% | 15/17 | 100% | 2/2 | 100% | 2/2 | 88.24% | 15/17 | |
| src/common/delivery/code/fingerprint/support | 100% | 12/12 | 100% | 0/0 | 100% | 5/5 | 100% | 12/12 | |
| src/common/delivery/code/review | 85.71% | 30/35 | 100% | 6/6 | 88.24% | 15/17 | 83.87% | 26/31 | |
| src/common/delivery/code/review/checkstyle | 62.5% | 15/24 | 75% | 6/8 | 60% | 6/10 | 65.22% | 15/23 | |
| src/common/delivery/code/review/support | 60% | 3/5 | 100% | 2/2 | 100% | 0/0 | 60% | 3/5 | |
| src/common/delivery/deploy | 20% | 14/70 | 0% | 0/8 | 7.14% | 1/14 | 21.21% | 14/66 | |
| src/common/delivery/deploy/local | 64% | 32/50 | 37.5% | 9/24 | 61.54% | 8/13 | 66.67% | 32/48 | |
| src/common/delivery/deploy/local/maven | 50.67% | 38/75 | 21.43% | 6/28 | 52.63% | 10/19 | 49.3% | 35/71 | |
| src/common/delivery/deploy/pcf | 69.23% | 9/13 | 66.67% | 4/6 | 100% | 1/1 | 69.23% | 9/13 | |
| src/common/delivery/docker | 0% | 0/33 | 0% | 0/15 | 0% | 0/5 | 0% | 0/33 | |
| src/common/delivery/goals | 37.18% | 29/78 | 26.32% | 10/38 | 33.33% | 9/27 | 41.43% | 29/70 | |
| src/common/delivery/goals/common | 33.33% | 4/12 | 100% | 0/0 | 0% | 0/1 | 33.33% | 4/12 | |
| src/common/delivery/goals/graph | 45.45% | 20/44 | 25% | 2/8 | 66.67% | 6/9 | 45.24% | 19/42 | |
| src/common/delivery/goals/support | 46.71% | 71/152 | 30.34% | 27/89 | 37.5% | 15/40 | 48.59% | 69/142 | |
| src/common/delivery/goals/support/github | 37.5% | 18/48 | 0% | 0/17 | 0% | 0/10 | 40.91% | 18/44 | |
| src/common/listener | 50% | 4/8 | 33.33% | 2/6 | 33.33% | 1/3 | 50% | 4/8 | |
| src/common/listener/support | 86.79% | 46/53 | 76.47% | 13/17 | 85% | 17/20 | 85.71% | 42/49 | |
| src/common/listener/support/pushtest | 79.49% | 31/39 | 100% | 6/6 | 70% | 7/10 | 81.08% | 30/37 | |
| src/common/listener/support/pushtest/ci | 0% | 0/1 | 100% | 0/0 | 100% | 0/0 | 0% | 0/1 | |
| src/common/listener/support/pushtest/docker | 0% | 0/1 | 100% | 0/0 | 100% | 0/0 | 0% | 0/1 | |
| src/common/listener/support/pushtest/jvm | 60% | 3/5 | 100% | 0/0 | 100% | 2/2 | 60% | 3/5 | |
| src/common/listener/support/pushtest/node | 75% | 3/4 | 100% | 0/0 | 100% | 0/0 | 75% | 3/4 | |
| src/common/listener/support/pushtest/pcf | 0% | 0/3 | 100% | 0/0 | 0% | 0/2 | 0% | 0/2 | |
| src/common/log | 66.88% | 105/157 | 62.16% | 23/37 | 48.44% | 31/64 | 67.13% | 96/143 | |
| src/common/repo | 0% | 0/14 | 0% | 0/2 | 0% | 0/5 | 0% | 0/12 | |
| src/common/slack | 0% | 0/8 | 0% | 0/2 | 0% | 0/3 | 0% | 0/8 | |
| src/common/verify | 0% | 0/10 | 0% | 0/5 | 0% | 0/4 | 0% | 0/10 | |
| src/handlers/commands | 42.73% | 47/110 | 0% | 0/24 | 0% | 0/26 | 41.41% | 41/99 | |
| src/handlers/common | 0% | 0/0 | 0% | 0/0 | 0% | 0/0 | 0% | 0/0 | |
| src/handlers/events/delivery/build | 35.78% | 39/109 | 0% | 0/25 | 11.11% | 2/18 | 33% | 33/100 | |
| src/handlers/events/delivery/code | 25% | 8/32 | 100% | 0/0 | 0% | 0/11 | 21.43% | 6/28 | |
| src/handlers/events/delivery/deploy | 36.36% | 8/22 | 0% | 0/2 | 0% | 0/3 | 31.58% | 6/19 | |
| src/handlers/events/delivery/goals | 44.29% | 155/350 | 9.68% | 9/93 | 25.81% | 16/62 | 42.99% | 138/321 | |
| src/handlers/events/delivery/goals/k8s | 20% | 8/40 | 0% | 0/10 | 0% | 0/8 | 20% | 8/40 | |
| src/handlers/events/delivery/verify | 33.33% | 10/30 | 0% | 0/6 | 0% | 0/5 | 29.63% | 8/27 | |
| src/handlers/events/issue | 36.84% | 21/57 | 0% | 0/4 | 0% | 0/9 | 29.41% | 15/51 | |
| src/handlers/events/repo | 35.17% | 51/145 | 0% | 0/6 | 0% | 0/29 | 29.6% | 37/125 | |
| src/ingesters | 58.33% | 7/12 | 100% | 2/2 | 40% | 2/5 | 63.64% | 7/11 | |
| src/spi/artifact | 0% | 0/0 | 0% | 0/0 | 0% | 0/0 | 0% | 0/0 | |
| src/spi/build | 0% | 0/0 | 0% | 0/0 | 0% | 0/0 | 0% | 0/0 | |
| src/spi/log | 0% | 0/10 | 0% | 0/2 | 0% | 0/4 | 0% | 0/9 | |
| src/typings | 100% | 610/610 | 100% | 102/102 | 100% | 51/51 | 100% | 610/610 | |
| src/util | 30.56% | 22/72 | 8.33% | 3/36 | 40% | 2/5 | 31.88% | 22/69 | |
| src/util/credentials | 80% | 4/5 | 50% | 2/4 | 100% | 1/1 | 80% | 4/5 | |
| src/util/fingerprint | 50% | 2/4 | 100% | 0/0 | 0% | 0/1 | 50% | 2/4 | |
| src/util/git | 45.9% | 28/61 | 9.09% | 1/11 | 53.85% | 7/13 | 45.76% | 27/59 | |
| src/util/github | 23.81% | 10/42 | 0% | 0/11 | 0% | 0/13 | 25% | 10/40 | |
| src/util/misc | 73.17% | 30/41 | 69.23% | 9/13 | 53.85% | 7/13 | 72.5% | 29/40 | |
| src/util/project | 84.38% | 27/32 | 75% | 9/12 | 80% | 8/10 | 84.38% | 27/32 | |
| src/util/slack | 30.77% | 16/52 | 36% | 9/25 | 10% | 1/10 | 30.77% | 16/52 | |
| src/util/sloc | 93.02% | 40/43 | 80% | 4/5 | 88.89% | 16/18 | 94.74% | 36/38 | |
| src/util/test | 75% | 9/12 | 100% | 1/1 | 75% | 3/4 | 75% | 9/12 | |
| src/util/webhook | 36% | 9/25 | 0% | 0/5 | 0% | 0/8 | 36% | 9/25 | |
| test | 100% | 5/5 | 100% | 0/0 | 100% | 0/0 | 100% | 5/5 | |
| test/blueprint | 90.32% | 112/124 | 100% | 0/0 | 72.09% | 31/43 | 94.17% | 97/103 | |
| test/blueprint/dsl | 92.92% | 105/113 | 100% | 0/0 | 97.5% | 39/40 | 92.71% | 89/96 | |
| test/common | 100% | 14/14 | 100% | 0/0 | 100% | 3/3 | 100% | 13/13 | |
| test/common/command/support | 100% | 4/4 | 100% | 0/0 | 100% | 1/1 | 100% | 3/3 | |
| test/common/command/support/java | 100% | 9/9 | 100% | 0/0 | 100% | 7/7 | 100% | 8/8 | |
| test/common/delivery/code | 90% | 18/20 | 100% | 2/2 | 100% | 1/1 | 90% | 18/20 | |
| test/common/delivery/code/autofix | 95.83% | 46/48 | 100% | 0/0 | 84.62% | 11/13 | 100% | 41/41 | |
| test/common/delivery/code/autofix/node | 93.75% | 45/48 | 100% | 0/0 | 85.71% | 12/14 | 93.02% | 40/43 | |
| test/common/delivery/code/fingerprint | 100% | 26/26 | 100% | 0/0 | 100% | 8/8 | 100% | 21/21 | |
| test/common/delivery/code/fingerprint/node | 100% | 39/39 | 100% | 1/1 | 100% | 10/10 | 100% | 35/35 | |
| test/common/delivery/code/fingerprint/support | 100% | 3/3 | 100% | 0/0 | 100% | 0/0 | 100% | 3/3 | |
| test/common/delivery/code/review | 95.83% | 46/48 | 100% | 2/2 | 100% | 2/2 | 95.83% | 46/48 | |
| test/common/delivery/code/review/support | 100% | 39/39 | 100% | 0/0 | 100% | 11/11 | 100% | 34/34 | |
| test/common/delivery/deploy/maven | 62.96% | 17/27 | 100% | 0/0 | 57.14% | 4/7 | 64% | 16/25 | |
| test/common/delivery/goals | 100% | 3/3 | 100% | 0/0 | 100% | 3/3 | 100% | 3/3 | |
| test/common/listener | 100% | 21/21 | 100% | 0/0 | 100% | 5/5 | 100% | 19/19 | |
| test/common/listener/support | 100% | 367/367 | 100% | 0/0 | 100% | 164/164 | 100% | 293/293 | |
| test/common/log | 96.95% | 159/164 | 100% | 0/0 | 92.31% | 48/52 | 97.2% | 139/143 | |
| test/handlers/events/delivery | 100% | 27/27 | 100% | 0/0 | 100% | 7/7 | 100% | 26/26 | |
| test/handlers/events/delivery/artifact | 100% | 10/10 | 100% | 0/0 | 100% | 1/1 | 100% | 10/10 | |
| test/handlers/events/delivery/build/local/lein | 33.33% | 1/3 | 100% | 0/0 | 100% | 0/0 | 33.33% | 1/3 | |
| test/handlers/events/delivery/build/local/maven | 100% | 24/24 | 100% | 0/0 | 100% | 1/1 | 100% | 24/24 | |
| test/handlers/events/delivery/build/local/npm | 100% | 13/13 | 100% | 0/0 | 100% | 1/1 | 100% | 13/13 | |
| test/handlers/events/delivery/deploy/pcf | 100% | 3/3 | 100% | 0/0 | 100% | 2/2 | 100% | 3/3 | |
| test/handlers/events/delivery/review/checkstyle | 74.29% | 26/35 | 100% | 0/0 | 85.71% | 6/7 | 70.97% | 22/31 | |
| test/handlers/events/delivery/scan/fingerprint/maven | 100% | 15/15 | 100% | 0/0 | 100% | 5/5 | 100% | 13/13 | |
| test/sloc | 86.67% | 26/30 | 100% | 0/0 | 100% | 4/4 | 85.71% | 24/28 | |
| test/util/fingerprint | 54.55% | 6/11 | 100% | 0/0 | 0% | 0/1 | 54.55% | 6/11 | |
| test/util/git | 100% | 7/7 | 100% | 0/0 | 83.33% | 5/6 | 100% | 7/7 | |
| test/util/misc | 96.67% | 29/30 | 100% | 0/0 | 100% | 10/10 | 96.15% | 25/26 | |
| test/util/project | 76.92% | 30/39 | 100% | 0/0 | 80% | 8/10 | 77.78% | 28/36 | |
| test/util/slack | 100% | 39/39 | 100% | 0/0 | 100% | 15/15 | 100% | 33/33 |


|
The Detective Who Walks
By Himself
by Christine Alice Corcos
Monk, the detective series featuring the obsessive-compulsive
disorder-ridden former police officer played by Emmy winner Tony
Shalhoub, has been a hit for the USA network since its debut
on July 12, 2002. Heavily influenced by classic series that went
before, including Columbo, which still makes occasional
appearances on TV (although the latest seems to have been in
2003), Monk adds to the formula of the brilliant detective
with a few quirks the brilliant detective with quirks that threaten
to make him almost completely non-functional.
Monk's premise is that
the former police officer turned private detective left the force
when his wife died in a car bombing meant for him. Adrian Monk
(who carries, perhaps significantly, two clerical names) was
already rather strange. For example, we learn in the episode
"Mr. Monk and the Other Woman" that he doesn't
like different types of food to touch on his plate. Most of us
got over that little oddity when we were relatively young. I
think my nephews, who are nine and seven, are over it by now.
But not Adrian Monk. His wife Trudy, however, loved him in spite
of this foible, and in spite of his other weirdnesses, such as
his need to make certain that all the hangers in his closet face
the same way-I suppose that could be helpful in an emergency-and
the need not to step on cracks, and to touch all the parking
meters that he passes on the street. After Trudy's death, he
just gets stranger and stranger, and he refuses to take any medication
to calm him down. In one episode, "Mr. Monk Takes His
Medicine", we find out that this is not such a bad idea-medication
robs him of his ability to solve crimes even as it evens out
his OCD. Monk's peculiar personality makes him a trial to deal
with, certainly, but he has a good heart, and his friends recognize
his kindness, which earns him their loyalty. His nurse, Sharona,
and later his assistant, Natalie, his police officer friends
Lieutenant Disher and Captain Stottlemeyer, and the various people
he meets during his adventures, Trudy's parents, and even his
even weirder brother Ambrose, who suffers from agoraphobia, all
truly love him, and he loves them. Actor Tony Shalhoub's talent
sells Monk as a character-otherwise the detective would grate
on the viewer very quickly, because frankly, he is one odd bird.
He's afraid of over a hundred things, as Natalie points out,
though not public speaking: heights, dark places, crowds, germs-and
milk.
What motivates Monk is the desire to find his wife's killer.
While he seeks the person or persons responsible, he takes other
cases, high profile or not, particularly those that interest
him. Things that don't match, people who do things out of character,
push him to investigate. At the same time, he is often reluctant
to involve himself in a case that would force him to confront
a phobia. He doesn't like shaking hands, or elevators, or airplanes.
In many ways, Monk is frightened of life. Decisions paralyze
him. What unparalyzes him is the need for justice.
Many critics have hailed Monk as ingeniously plotted.
True, the writers have done many of the episodes quite cleverly,
but other entries been derivative. In particular, the two episodes
featuring Monk's brother Ambrose (John Turturro) were essentially
the same story. In both, the killer tries to reclaim evidence
of a crime that has gotten away from him; Monk has to retrace
the killer's steps and put together the crime from these clues.
The episode "Red Headed Stranger", featuring
country singer Willie Nelson, draws on several Columbo episodes
including "Swan Song" (1974) in which guest
star country singer Johnny Cash ("The Man in Black")
played a country singer who murders his wife, and "A
Deadly State of Mind" (1975) in which George Hamilton
sets Lesley Ann Warren up for murder. Nelson returns as a voice
on the tube in a later episode ("Mr. Monk and the Blackout").
Monk's obsessive-compulsive disorder and his inability to react
appropriately while on duty (for example, he can't bring himself
to fire his weapon even when someone's life is at stake) are
the reason for what is turning into his quasi-permanent suspension
from the San Francisco Police Force (note to the writers: he
would have been an inspector, not a "detective" while
on the force). He is on medical leave, which gives him certain
rights under the Americans with Disabilities Act. So why does
the Police Commissioner treat him so cavalierly in "Mr.
Monk Gets Fired" by "yanking" his private
detective's license? Let's leave aside exactly what his employment
relationship is with the department, and whether a police officer
can also hold a p.i.'s license. The San Francisco Police Commissioner
is not authorized to do that under California state law. Only
the Director of Professional and Vocational Standards may revoke
or suspend a p.i.'s license, and s/he surely wouldn't do it for
the reasons in this episode (Monk accidentally deleted some police
files from a computer, but the computer wasn't adequately backed
up. Sounds like improper police procedure, not Monk-i-shines,
to me.)
This program's major assets are not necessarily the plotting,
although it is usually clever, and considerable. They are the
acting talents of everyone concerned, not just Tony Shalhoub.
Ted Levine as the bemused Captain Stottlemeyer, Jason Gray-Stanford
as Lieutenant Randy Disher, the man who overestimates his own
abilities to solve crimes and who longs for a date with any pretty
girl who wanders into his field of vision, Sharona (Bitty Schramm),
the matter of fact nurse who spent two years dealing with Monk
before returning to her ex-husband, another man who has trouble
dealing with life, Natalie (Traylor Howard), recently hired on
as Monk's new assistant, Dr. Kroger (Stanley Kamel) as Monk's
long suffering psychiatrist, who just wants to get his patient
to a goal-any goal and himself to a summer vacation--these are
all worthy colleagues on the series. The guest stars are always
entertaining, from Adam Arkin as "Dale the Whale",
a marvelous bad guy who may hold the key to the identity of Trudy's
killer, to Lolita Davidovich as a beautiful trapeze artist, to
Glenne Headly (in an occasional role as Stottlemeyer's wife Karen).
Monk does not believe in coincidence. He does not believe in
psychic powers. He does not believe in accident. He believes
in logic. He believes in reason. He may have OCD and he may have
personal problems, but when he has a crime to solve it occupies
all of his attention. In the episode "Mr. Monk and the
Psychic," for example (aired July 19, 2002), Monk becomes
suspicious when a psychic claims that a dead woman's "aura"
leads her to the woman's body. He unravels the crime by deducing
that the victim's husband, a former police commissioner, murdered
her and used the psychic to deflect attention from himself. Monk
expresses his attitude to Sharona in a wonderful line. "You've
got to be a little skeptical, Sharona. Otherwise you end up believing
in everything--UFOs, elves, income tax rebates."
Some of the episodes are downright weak in terms of plot. The
March 16th episode, "Mr. Monk Gets Jury Duty,"
for example, featured Monk as a jury member unable to focus when
he realizes that someone has secreted a body in a dumpster just
below the window of the jury deliberation room. Since he has
already made a nuisance of himself, the bailiff won't pay any
attention to him. So he calls out to his assistant Natalie, who
is in the street below as she is bringing him lunch. (Why is
she bringing him lunch? Lunch should be provided by the court,
but of course, Monk's dietary requirements have already been
explained to the judge).
Of course, jury members are not supposed to contact anyone but
the bailiff during their deliberations, as both Monk and Natalie
know very well. But the contact goes on. Natalie summons Captain
Stottlemeyer, and Stottlemeyer communicates with Monk while Monk
is in the jury room. Eventually the judge spots Monk and the
police discussing the body and he sequesters the jury, who are
consequently enraged with Monk. The judge should probably have
declared a mistrial, but that would be the end of the episode,
and Monk would not get the chance to solve the other mystery
in the story, which is why one of the jurors keeps changing her
vote just as everyone else agrees on a verdict. Monk is, incidentally,
instrumental in convincing them that the case on which they are
deliberating is a frame-up: it's highly reminiscent of Twelve
Angry Men, down to the functional identifications of the
other jury members ("Postal Worker Juror", "Sports
Fan Juror", etc.).
The Monk writers and directors often indulge in these
kinds of popular culture references as if to invite the audience
into their tight little world. Guest stars like Tim Daly (with
whom Shalhoub co-starred on Wings) and Danny Bonaduce
play themselves. But one of the things that rapidly becomes annoying
is the lack of credibility that Monk enjoys week after week.
Monk is always right-so why don't people who have heard of him
believe him when he says he thinks he knows who the killer might
be? And why don't they run interference for him? In this country,
which caters so much to celebrities, it's very difficult to understand
why Monk has so much trouble getting himself heard. We know the
answer-the plot would evaporate because Monk would have many
fewer difficulties. His weird little phobias must also earn him,
if not enemies, then adversaries. Otherwise, things would be
much too easy. Those adversaries, if they are the criminals,
do eventually grant him their respect, as in "Mr. Monk
and the Astronaut." But it takes the entire episode,
and coupled with Monk's phobias, it can become wearying for the
viewer. This particular element-the criminal's lack of respect
for the detective, which sometimes degenerates into taunting-again
recalls Columbo.
Through the four seasons that the show has been on the air, all
the recurring characters have grown. Stottlemeyer has learned
not to take his marriage or his wife for granted, just as she
has left him. Disher has learned a little something about the
intelligence and the emotional reliability of the opposite sex.
Monk himself has learned that his dead wife would have wanted
him to try to move on with his life. Coming to that determination
hasn't been easy, even deliberately with the assistance of his
psychiatrist, or accidentally through the mishaps attendant on
assisting his friends.
In "Mr. Monk Goes to the Dentist" Lieutenant
Disher thinks he sees his dentist kill someone, but no one believes
him. Out of a mixture of pique and a sense that years on the
force have earned him no loyalty from either his superiors or
his friends he quits to pursue a career in rock music (a very
bad decision). Natalie convinces Monk to investigate. Now Monk
is in the position of being the person who doesn't believe, but
who gives a friend the benefit of the doubt, and who discovers
that the friend is correct. Through that experience, he grows
just a little more, as does Disher, who realizes that rock music
is a fine hobby for someone who is a good enough musician to
know that he's not good enough to be a professional musician.
Monk is a very moral show. Adrian Monk is a very moral
man. He believes in justice and he goes after crime and criminals
no matter where they may be. Working in the private sphere, assisting
the professionals in the public sphere, he still yearns to return
to the police force, even though he can still interact with his
old friends unofficially, and some of them still respect his
work. He knows that the likelihood that he will ever to that
life is small. Meanwhile, he continues to take private cases,
and those on which Captain Stottlemeyer invites him to assist.
He overcomes his own fears to do it. His friends, Natalie, like
Sharona before her, Disher, Stottlemeyer, all help him, but ultimately
the detective who walks by himself, and works by himself, Monk,
does it alone, as we all must. Facing his fears, he calls them
by name. As we now know, they include just about everything.
Even milk.
Posted March 23, 2006
|


--- layout: default format: blog-index ---
This is the site for Carrollton Manor, a Severna Park, MD, USA community. Find lots of community resources on this site. Also see our Facebook public and closed group pages for more.
* Updated rules and rental agreement documents have been posted on our Clubhouse page. Please send inquiries to<EMAIL_ADDRESS>* New board roles have been posted to our CMIA page. Welcome Jen, Alise, Jeff, and Chris!
{{ page.widget-1.text }}
{{ page.widget-2.text }}
{{ page.widget-3.text }}


Upload Your Image Below
Download
Customize Size
Force Resize:
x
Force Resize Now
Streth to Fit:
1600 x 1600
1080 x 1080
800 x 800
400 x 400
1200 x 280
Make Photo Larger By Percent
300%
100%
77%
40%
20%
-
Make Faster (takes more memory)
Resized in:
-
s
Real Time Manipulation Area


Please click here to go to the tutorial for DIALS 2.2.
Processing in Detail with DUI¶
Introduction¶
This tutorial follows the same steps as the command line tutorial Processing in Detail, but here processing will be driven graphically through the DIALS User Interface, DUI.
An older version of DUI is available in CCP4 7.1, but in this case we want to use an updated version that works with DIALS 3.7. If you are at Diamond Light Source this version is already installed, otherwise if you want to install DUI into an existing DIALS 3.7 installation, you can follow these instructions.
Tutorial data¶
The following example uses a Beta-lactamase dataset collected using beamline I04 at Diamond Light Source, and reprocessed especially for these tutorials.
Hint
If you are physically at Diamond on the CCP4 Workshop, then
this data is already available in your training data area. After
typing module load ccp4-workshop
you’ll be moved to a working
folder, with the data already located in the tutorial-data/summed
subdirectory.
The data is otherwise available for download from .
We’ll only be using the first run of data in this tutorial,
C2sum_1.tar
, extracted to a tutorial-data/summed
subdirectory.
Import¶
When DUI starts up you will initially be presented by a window like the following.
At this stage you can resize various parts of the interface until you are comfortable with the layout, but you can’t do much else until the dataset is imported by DIALS. To do this, click on the “Select file(s)” button, navigate to the location of the images and select any one of them. DUI will automatically determine the filename template and will show that with a wildcard in the text box. If there are problems with this template it is possible to edit this before importing the images. Otherwise, just click the “Run” button to proceed.
What happens then is that that the metadata are read for all the images in the dataset. If these are consistent, then the dataset is imported and initial models for the “Beam”, “Scan” and “Detector” are created. The images are now also displayed within the “Image” tab. You can adjust the contrast and colour scheme by controls under the “Display” pull-down.
Find Spots¶
The first “real” task in any processing using DIALS is the spot finding. To run this job, click on the “find” button at the upper-left of the window. When you do this you will see a new node will be created in the “History Tree”. This node is currently green, which indicates that it has not been run yet. By contrast, the import step is blue, which means this has been run. In general, it is always possible to navigate between each step of processing by clicking on the relevant position in the history. Advanced users will find this gives a great deal of control, allowing them to keep track of complex history, including parallel branches.
Spot-finding, like most of the other processing steps in DUI, presents user parameters at two levels of detail. The “Simple” tab contains the basic parameters that are the most commonly changed. The “Advanced” tab contains all of those again, plus other parameters that may be required for expert use with challenging data sets. In many cases, however, the default settings are fine.
Note that spot-finding is done on every image in the dataset. This means the job can take some time, but by default it will be run in parallel using multiple processors. To proceed, press the “Run” button below the input parameters.
Once the job is finished, the image viewer will display small blue boxes around the pixels that have been marked as strong. It is also useful to click on the “Report View” tab and scroll down to the “Analysis of strong reflections”. This shows a graph of the number of strong spots found per image. In this case there is a pretty steady rate of around 150 spots found on each image. If instead we had seen the number of strong spots drop off over the dataset, or otherwise show large variability we would start to worry about issues such as radiation damage or a poorly-centred crystal.
The cyan button at the bottom left of the graph opens a help window with a description of how the appearance of this plot may be affected by various data collection issues. In the “Log Text” window you can see the text output from the dials.find_spots program, which also includes an ASCII-art version of this plot.
The default parameters for spot finding usually do a good job for Pilatus images, such as these. However they may not be optimal for data from other detector types, such as CCDs or image plates. If you have a case where spot-finding has gone badly, it may be helpful to debug using the dials.image_viewer and dials.reciprocal_lattice_viewer, which can be launched via buttons shown on the “Tools” tab.
In particular, the effect of changing the spot-finding parameters can be explored interactively with the dials.image_viewer. The image mode buttons at the bottom of the “Settings” window allow a preview of how the parameters affect the spot finding algorithm. The final image, (“threshold”) is the one on which spots were found, so ensuring this produces peaks at real diffraction spot positions will give the best chance of success.
The second external viewer, the dials.reciprocal_lattice_viewer, displays the strong spots in 3D, after mapping them from their detector positions to reciprocal space. In a favourable case you should be able to see the crystal’s reciprocal lattice by eye in the strong spot positions. Some practice may be needed in rotating the lattice to an orientation that shows off the periodicity in reciprocal lattice positions.
Although the reciprocal spacing is visible, in this data, there are clearly some systematic distortions. These will be solved during indexing.
Indexing¶
The next step will be indexing of the strong spots. Click on the “Index” button
to move on to this step, and form a new node in the history tree. Here we see
that the simple parameters allows to select between different “Indexing
Methods”, the default of which is the 3D FFT algorithm. The other options include
the 1D FFT (DPS) algorithm and a special version of the 3D FFT called
real_space_grid_search
, which is particularly useful for narrow wedges
containing multiple lattices, but requires a known cell and space group to be
set under the “Advanced” parameters. If we do know the cell and space group,
these can also be set as hints for any of the other indexing algorithms.
This can help in difficult cases and will be used to constrain the lattice
during refinement. Otherwise
indexing and refinement will be carried out in the primitive lattice
using space group \(P\ 1\).
In this case, keep the method set to the default fft3d
and click “Run” to
start the indexing job. Once the job has finished running, you can see in the
“Experiment” tab that the experimental models have now been completed with a
“Crystal” model.
Now let’s click through the tabs of output. First, on the “Image” tab you will now see that indexed strong spots are assigned Miller indices. By default only the nearest one to the mouse cursor is shown, but this can be changed under the “Display” settings. If you also click on the “Predictions” checkbox, under “Reflection Type” you will in addition see centroid positions and Miller indices for all predicted reflections, not just the strong spots.
Moving to the “Log Text” tab, it is worth reading through the output to understand what the indexing program has done. Inspecting the beginning of the log shows that the indexing step is done at a resolution lower than the full dataset; 1.84 Å:
Found max_cell: 94.4 Angstrom
Setting d_min: 1.84
FFT gridding: (256,256,256)
The resolution limit of data that can be used in indexing is determined by the size of the 3D FFT grid, and the likely maximum cell dimension. Here we used the default 256³ grid points. These are used to make an initial estimate for the unit cell parameters.
What then follows are ‘macro-cycles’ of refinement where the experimental model
is first tuned to get the best possible fit from the data, and then the
d_min
limit is reduced to cover more data than the previous cycle. 16
parameters of the diffraction geometry are tuned: 6 for the detector, one for
beam angle, 3 crystal orientation angles and the 6 triclinic cell parameters.
At each stage only 36000 reflections are used in the refinement job. In order
to save time, a subset of the input reflections are used - by default using 100
reflections for every degree of the 360° scan.
We see that the first macrocycle of refinement makes a big improvement in the positional RMSDs:
+--------+--------+----------+----------+------------+
| Step | Nref | RMSD_X | RMSD_Y | RMSD_Phi |
| | | (mm) | (mm) | (deg) |
|--------+--------+----------+----------+------------|
| 0 | 36000 | 0.56197 | 0.55131 | 0.13413 |
| 1 | 36000 | 0.24338 | 0.26503 | 0.15575 |
| 2 | 36000 | 0.10648 | 0.13198 | 0.13476 |
| 3 | 36000 | 0.055785 | 0.059567 | 0.10888 |
| 4 | 36000 | 0.051066 | 0.052336 | 0.10514 |
| 5 | 36000 | 0.050906 | 0.052372 | 0.10505 |
| 6 | 36000 | 0.050901 | 0.052378 | 0.10505 |
+--------+--------+----------+----------+------------+
Second and subsequent macrocycles are refined using the same number of reflections, but after extending to higher resolution. The RMSDs at the start of each cycle are worse than at the end of the previous cycle, because the best fit model for lower resolution data is being applied to higher resolution reflections. As long as each macrocyle shows a reduction in RMSDs then refinement is doing its job of extending the applicability of the model out to a new resolution limit, until eventually the highest resolution strong spots have been included. The final macrocycle includes data out to 1.30 Å and produces a final model with RMSDs of 0.050 mm in X, 0.049 mm in Y and 0.104° in φ, corresponding to 0.29 pixels in X, 0.28 pixels in Y and 0.21 image widths in φ.
Despite the high quality of this data, we notice from the log that at each macrocycle there were some outliers identified and removed from refinement as resolution increases. Large outliers can dominate refinement using a least squares target, so it is important to be able to remove these. More about this is discussed below in Refinement. It’s also worth checking the total number of reflections that were not assigned an index:
+------------+-------------+---------------+-------------+
| Imageset | # indexed | # unindexed | % indexed |
|------------+-------------+---------------+-------------|
| 0 | 107264 | 733 | 99.3% |
+------------+-------------+---------------+-------------+
because this can be an indication of poor data quality or a sign that more care needs to be taken in selecting the indexing parameters.
Now the “Report View” contains more information than just after spot-finding. The “Spot count per image” plot also contains information about the number of indexed spots. In addition there are heat maps giving information about the positions of indexed and unindexed spots. Here we see that most of the unindexed spots are found in the region around the rotation axis. The “Analysis of reflection centroids” plots provide lots of detail regarding how well the predicted spot positions match the observed positions, both in image space and as a function of the position within the rotation scan.
After indexing it can be useful to inspect the reciprocal lattice again under the “External Tools”. Now indexed/unindexed spots are differentiated by colour, and it is possible to see which spots were marked by dials.refine as outliers. If you have a dataset with multiple lattices present, it may be possible to spot them in the unindexed reflections.
In this case, we can see that the refinement has clearly resolved whatever systematic error was causing distortions in the reciprocal space view, and the determined reciprocal unit cell fits the data well:
Bravais Lattice Refinement¶
Since we didn’t know the Bravais lattice before indexing, we can now determine likely candidates - by taking the results of the \(P\ 1\) autoindexing, and running refinement with all of the possible Bravais settings applied. You can then choose your preferred solution. This step is accessed by the “Lattice” button on the left of the DUI window. As before, run this without altering any of the defaults, as they are suitable for the majority of data sets.
Once the job has run, a window will pop up containing scoring data and the unit cell for each Bravais setting.
The scores for each setting include max δ (a metric fit measured in degrees), RMSDs (in mm), and the best and worse correlation coefficients for data related by symmetry elements (the symmetry elements implied by the lowest symmetry space group from the Bravais setting). This only uses the raw spot intensity measurement from the spot-finding procedure (uncorrected and unscaled) but still provides a very useful check to see if the data does appear to adhere to the proposed symmetry operators.
DIALS uses an heuristic to determine which solutions are acceptable or not, indicated on this window by either a green highlighted “Y” or a red highlighted “N”. In addition, the single “best” solution (the highest symmetry of the acceptable results) is pre-selected (highlighted in blue). To pick this solution, simply click “OK” while the chosen solution is highlighted. This will automatically apply the symmetry constraints and will reindex the reflections ready for further refinement.
Refinement¶
The model is already refined during indexing, but we can also add explicit refinement steps here, now including the monoclinic constraints from our chosen reindexed solution. An extra refinement step is also beneficial because it will use all reflections in refinement rather than a subset, uses a more sophisticated outlier rejection algorithm and allows us to fit a scan-varying model of the crystal. This allows small misset rotations to occur over the course of the scan. There are usually even small changes to the cell dimensions (typically resulting in a net increase in cell volume) caused by exposure to radiation during data collection.
There are various choices of outlier rejection algorithm allowed by refinement. The default selection of “auto” will choose the “mcd” algorithm for a rotation scan like this, which performs outlier rejection on the X, Y and φ residuals simultaneously, taking into account the multivariate nature of the data. This is appropriate for the ‘polishing up’ stage of refinement, whereas before during indexing the rougher, but less computationally expensive “tukey” option was used instead.
As before, click “Run” to start the job. The “Log Text” is familiar from the indexing stage, but now there are two macrocyles: one for scan-static refinement and a second for scan-varying refinement of the crystal orientation and unit cell. The log output shows a decrease in each dimension, but especially in Y.
+--------+--------+----------+----------+------------+
| Step | Nref | RMSD_X | RMSD_Y | RMSD_Phi |
| | | (mm) | (mm) | (deg) |
|--------+--------+----------+----------+------------|
| 0 | 95684 | 0.046337 | 0.048039 | 0.10463 |
| 1 | 95684 | 0.046274 | 0.047964 | 0.10467 |
| 2 | 95684 | 0.046255 | 0.047941 | 0.10472 |
| 3 | 95684 | 0.046259 | 0.047928 | 0.10474 |
| 4 | 95684 | 0.046263 | 0.047924 | 0.10475 |
+--------+--------+----------+----------+------------+
The final RMSDs are less than a quarter of a pixel in both X and Y, and just under a fifth of a pixel in φ. This is about as good as we can expect from a high quality Pilatus data set such as this.
On the “Report” tab we can now see plots of how the cell and orientation changes during the scan. The smoothness of these plots is guaranteed by the smoother model used by dials.refine. However, we are satisfied that this model is sufficient to match real changes present in the dataset because of the very low overall RMSDs.
Other useful plots in the report are:
Difference between observed and calculated centroids vs phi, which shows how the average residuals in each of X, Y, and φ vary as a function of φ. If scan-varying refinement has been successful in capturing the real changes during the scan then we would expect these plots to be straight lines.
Centroid residuals in X and Y, in which the X, Y residuals are shown directly. The key point here is to look for a globular shape centred at the origin.
Difference between observed and calculated centroids in X and Y, which show the difference between predicted and observed reflection positions in either X or Y as functions of detector position. From these plots it is very easy to see whole tiles that are worse than their neighbours, and whether those tiles might be simply shifted or slightly rotated compared to the model detector.
In this tutorial, we see no overall increase in all three cell parameters. If significant cell volume increases had been observed that might be indicative of radiation damage. However we can’t yet conclude that there is no radiation damage from the lack of considerable change observed.
Integration¶
After the refinement is done, the next step is integration. Click on the “integrate” button to move to this job. Mostly, the default parameters are fine for Pilatus data, which will perform XDS-like 3D profile fitting while using a generalized linear model in order to fit a Poisson-distributed background model. Click “Run” to start integration. This is the most computationally-demanding stage of processing, so it will take a while to complete.
Checking the “Log” output, we see that after loading in the reference
reflections, new predictions are made up to the highest resolution at the
corner of the detector. This is fine, but if we wanted to we could have
adjusted the high resolution limit using the control on the simple input tab.
To adjust the low resolution limit, or any other parameter for integration, you
can also use the “Advanced” tab, where the resolution limits d_min
and d_max
are under the prediction
section. The predictions are
made using the scan-varying crystal model from the previous step. As this
scan-varying model was determined in advance of integration, each of the
integration jobs is independent and we can take advantage of true parallelism
during processing.
The profile model is then calculated from the reflections file resulting from refinement. First reflections with a too small ‘zeta’ factor are filtered out. This essentially removes reflections that are too close to the spindle axis. In general these reflections require significant Lorentz corrections and as a result have less trustworthy intensities anyway. From the remaining reflection shoeboxes, the average beam divergence and reflecting range is calculated, providing the two Gaussian width parameters \(\sigma_D\) and \(\sigma_M\) used in the 3D profile model.
Following this, independent integration jobs are set up. These jobs overlap, so reflections are assigned to one or more jobs. What follows are blocks of information specific to each integration job.
After these jobs are finished, the reflections are ‘post-processed’, which includes the calculation of the LP correction for the intensities. Then summary tables are printed giving quality statistics first by frame, and then by resolution bin.
On the “Image” tab we can now see integration “shoeboxes” around the spots, not just tight boxes around the strong pixels. If all stages up to this point have gone well, then the boxes should be centred on the strong pixels and should extend beyond the strong pixels to include pixels used for local background level determination.
The “Report” now contains additional plots under the “Analysis of reflection intensities” and “Analysis of reference profiles” sections. It is worth checking through these, particularly paying attention to the following:
Reflection and reference correlations binned in X/Y. These are useful companions to the plots of centroid residual as a function of detector position above. Whereas the previous plots show systematic errors in the positions and orientations of tiles of a multi-panel detector, these plots indicate what effect that (and any other position-specific systematic error) has on the integrated data quality. The first of these plots shows the correlation between reflections and their reference profiles for all reflections in the dataset. The second shows only the correlations between the strong reference reflections and their profiles (thus these are expected to be higher and do not extend to such high resolution).
Distribution of I/Sigma vs Z. This reproduces the \(\frac{I}{\sigma_I}\) information versus frame number given in the log file in a graphical form. Here we see that \(\frac{I}{\sigma_I}\) is fairly flat over the whole dataset, which we might use as an indication that there were no bad frames, not much radiation damage occurred and that scale factors are likely to be fairly uniform.
At this point we could export the integrated data set in MTZ format, however we will continue with this tutorial to demonstrate scaling within DIALS.
Checking the symmetry¶
After integration we can return to our hypothesis of the space group of the crystal. Although we made an assessment of that when we chose a Bravais lattice after indexing, we now have better, background-subtracted, values for the intensities, and for all reflections, not just the strong spots. So, it is prudent to repeat the assessment to see if there is any indication that our initial assessment should be revised.
This job is run using the “symmetry” button. We will again run with default settings only. Once the job is finished, check the “Log Text” output. The most important part here is the table printed at the end:
Scoring all possible sub-groups
---------------------------------------------------------------------------------------------
Patterson group Likelihood NetZcc Zcc+ Zcc- CC CC- delta Reindex operator
---------------------------------------------------------------------------------------------
C 1 2/m 1 *** 0.909 9.72 9.72 0.00 0.97 0.00 0.0 -a,b,-c
P -1 0.091 0.11 9.77 9.66 0.98 0.97 0.0 -x-y,-x+y,-z
---------------------------------------------------------------------------------------------
Best solution: C 1 2/m 1
Here we see clearly that the best solution is given by C 1 2/m 1
, with
a high likelihood, in agreement with the result from
dials.refine_bravais_settings
. As we remain confident with this choice,
we now continue to scaling.
Scaling¶
Before the data can be reduced for structure solution, the intensity values must be corrected for experimental effects which occur prior to the reflection being measured on the detector. These primarily include sample illumination/absorption effects and radiation damage, which result in symmetry-equivalent reflections having unequal measured intensities (i.e. a systematic effect in addition to any variance due to counting statistics). Thus the purpose of scaling is to determine a scale factor to apply to each reflection, such that the scaled intensities are representative of the ‘true’ scattering intensity from the contents of the unit cell.
During this process, a scaling model is created, from which we derive scale factors for each reflection. By default, three components are used to create a physical model for scaling, in a similar manner to that used in the program aimless. This model consists of a smoothly varying scale factor as a function of rotation angle, a smoothly varying B-factor to account for radiation damage as a function of rotation angle and an absorption surface correction, dependent on the direction of the incoming and scattered beam vector relative to the crystal.
Let’s scale the Beta-lactamase dataset, after setting a resolution cutoff of 1.4 Å. This job is created by clicking the “scale” button. Enter 1.4 in the “High resolution limit” field in the “Simple” tab and click “Run” to start the job.
As can be seen from the “Log”, a subset of reflections are selected to be used in scaling model minimisation, which helps to speed up the algorithm (the model is used to calculate scales for all reflections at the end). Outlier rejection is performed at several stages, as outliers have a disproportionately large effect during scaling and can lead to poor scaling results. During scaling, the distribution of the intensity uncertainties are also analysed and an error model is optimised to transform the intensity errors to an expected normal distribution. An error estimate for each scale factor is also determined based on the covariances of the model parameters. At the end of the output, a table and summary of the merging statistics are presented, which give indications of the quality of the scaled dataset.
-------------Summary of merging statistics--------------
Overall Low High
High resolution limit 1.40 3.80 1.40
Low resolution limit 69.19 69.28 1.42
Completeness 94.1 99.0 90.5
Multiplicity 6.9 6.7 6.1
I/sigma 19.8 69.6 2.0
Rmerge(I) 0.063 0.037 0.643
Rmerge(I+/-) 0.053 0.030 0.581
Rmeas(I) 0.068 0.040 0.703
Rmeas(I+/-) 0.063 0.035 0.704
Rpim(I) 0.026 0.015 0.280
Rpim(I+/-) 0.033 0.019 0.391
CC half 0.999 0.998 0.887
Anomalous completeness 94.3 99.1 89.2
Anomalous multiplicity 3.5 3.5 3.1
Anomalous correlation 0.362 0.375 -0.013
Anomalous slope 1.185
dF/F 0.059
dI/s(dI) 1.308
Total observations<PHONE_NUMBER>4 11794
Total unique 41136 2234 1935
Inspecting the results¶
To see what the scaling is telling us about the dataset, plots of the scaling model should be viewed. These are visible within the “Report” tab, at the bottom under “Analysis of scaling results”.
What is immediately apparent is the periodic nature of the scale term, with peaks
and troughs 90° apart. This indicates that the illuminated volume was changing
significantly during the experiment: a reflection would be measured as twice as
intense if it was measured at rotation angle of ~120° compared to at ~210°.
What is less clear is the form of the relative B-factor, which also has a
periodic nature. As a B-factor can be understood to represent radiation damage,
this would not be expected to be periodic, and it is likely that this model
component is accounting for variation that could be described only by a scale
and absorption term. To test this, we can repeat the scaling process but turn
off the decay_correction
. Other options which
could be explored under the “Advanced” tab are the numbers of parameters used
for the various components, for example by changing the scale_interval
,
or by adjusting the outlier rejection criterion with a different
outlier_zmax
.
Exporting as MTZ¶
Once we are happy with the results from scaling, the data can be exported in MTZ format. To do this, click on the “export” button. Make sure the “Output scaled intensities” box is ticked otherwise the exported MTZ will only contain intensities from integration. The next choice is whether to merge the symmetry-related reflections or not. Some downstream steps require merged MTZ data, but it is always possible to do this later within CCP4. This time we will export both versions, starting with the unmerged file. So, leave this box unticked and then click on “Change output file” to give the file a sensible name, for example “unmerged.mtz”. Click “Run” to export the file. The “Log” view gives some basic information about the MTZ file that was created.
Now, to export a merged MTZ, click back on the parent “scale” job in the “History Tree” and then click on “export” to get a fresh export node in the tree. This time, tick “Output merged reflections” and write to a new file, say “merged.mtz”. After you run the job, the log file will show merging statistics as well as basic information about the MTZ that was created.
These files can then be imported into CCP4 Cloud or ccp4i2 to continue to structure solution and refinement.


Form with Tabs and Columns
You can use a basic column layout with the auto template. If you do not provide a page attribute, the field will be rendered to page 0. If you do not provide a column attribute, the field will be rendered to column 0. See field middle_name for an example of omitting page and column.You should give fields ascending column values (0, 1, 2, 3, ...). Do not mix the order of fields with column values on the same page (0, 2, 5, 1, 3, ...), especially when you're using groups.


WQMY
Sky TV, Phone and Broadband Packages & Deals from £21.50
Compare Sky TV, phone and broadband packages in the UK. Deals start from just £21.50 a month. Ofcom approved comparison.
http://www.cable.co.uk/compare/sky-broadband-tv-phone/
| longitude latitude maps for teachers/national park service mn/ gs pay seattle 2008 |
|
|---|---|
| large maps of michigan | Williamsport |
| Branding | MyNetworkTV sky tv broadband phone |
| thermostat for a water heater | software copy vhs to dvd: 29 (ensino a dist ncia) & joanne alleyn npr radio-DT 45.3 (UHF) |
| bosch aquastar 6.4 gpm indoor tankless | see article |
| Owner | New Age Media, LLC Join Sky Ireland now - Get bundles and offers on 3D TV and HD TV |
| First air date | December 30, 1988 |
| jain irrigation inc aquarius | MYNetworkTV |
| america's carpet outlet austin | WOLF-TV, computer time monitor for kids |
| barbara ann's country home furnishings | WILF (1988-2006) |
| Former channel number(s) | Find TV, broadband and phone packages - moneysupermarket.com |
| oreo and black stools | hp cue scanning flow component (1988-1998) cbs and shark and return / best supercharger for ls1 f-body (1998-2006) |
| longitude latitude maps for teachers | 50 bed n breackfast hove brighton 420 kW (WOLF-DT3) |
| adair county kentucky court dockets | 243 m 488 m (WOLF-DT3) |
| jackson supply new orleans | 52075 73375 (WOLF-DT3) |
| Transmitter coordinates | the six blind man origins of symbiosis by leon shernoff (WOLF-DT3) |
SKY with Vodafone broadband | TV | Vodafone NZ
When you buy your Vodafone fixed broadband package and/or home phone services, you can order SKY TV as well. Plus, if you're on selected Vodafone fixed .
http://www.vodafone.co.nz/tv/sky/sky-with-broadband/
Sky Broadband, Phone & TV | Should You Buy Sky? | Recombu Digital
Dec 3, 2012 . The UK's leading digital pay-TV provider not only has the best choice of sports, films and TV shows, it's also offering affordable broadband and .
http://recombu.com/digital/providers/sky/
Contents |
[horoscope for taurus 2010] History
Broadband and Phone Packages | Sky Products
Learn about our broadband and phone packages with our reliable Sky Talk and Broadband services. Find out more today.
http://www.sky.com/products/broadband-talk/
MY SKY discount | TV | Vodafone NZ
If you're on a Naked Broadband plan or an eligible home phone and broadband pack, we'll upgrade you to MY SKY HDi for free every month (normally $15) or .
https://www.vodafone.co.nz/entertainment/tv/sky/mysky/
Popular Sky Bundles - Get the best Sky TV and Broadband bundles ...
Sky TV, broadband and calls bundles. Great Sky TV and Broadband offers available when you join Sky TV.
http://www.sky.com/shop/bundles/popular/
Sky Broadband - Get the best Broadband deals when you join Sky
Totally Unlimited Broadband for just £7.50 a month. Join Sky and enjoy broadband with no usage limits. Get the best broadband deals from Sky.
http://www.sky.com/shop/broadband-talk/
Sky | TV, Broadband & Phone Provider | Sky+ HD & 3D TV
Sky provides satellite TV, phone & truly unlimited broadband. Check availability, read the latest Sky news & compare Sky deals from just a month.
http://www.cable.co.uk/providers/sky/
BBC News - Sky Broadband struggles with demand after adding ...
Jan 23, 2013 . The firm said that it was working to boost capacity at telephone exchanges in the worst hit areas. The news coincided with the launch of Sky Go .
http://www.bbc.co.uk/news/technology-21164871
Sky Deals - Sky TV, Broadband & Home Phone Offers. Latest Sky ...
Sky Broadband Bundle Deals. Sky Unlimited Broadband Deals - Latest Sky Bundles with Sky Broadband, Sky Digital TV & Home Phone. Compare Sky...
http://www.uswitch.com/broadband/providers/sky/
TV, Broadband & Phone - Confused.com
Why pay more for TV, broadband and calls when you could pay one low cost amount . overall cost; Benefit from top-quality providers such as Virgin, BT and Sky .
http://www.confused.com/tv-broadband-phone
Buy Sky now - Get bundles and offers on HD TV, broadband and calls
Buy Sky online - Sky TV, broadband & calls. Experience Sky Sports, Sky Movies and more in HD or even in 3D, plus get Sky Broadband and Talk.
http://www.sky.com/shop/
Sky » Compare Sky TV, broadband & phone deals with Simplifydigital
Sky offers a great range of TV with 6 Entertainment Packs to choose from plus 11 Sky Movie channels and 5 Sky Sports channels. You can add HD to your .
http://www.simplifydigital.co.uk/providers/sky/
Sky Broadband and Talk - Broadband and Wireless Offers ...
Enjoy the peace of mind of truly unlimited broadband with no usage caps. . to you and find out the approximate download speed your phone-line should support . Sky Broadband set-up fees for existing Sky TV customers £60 for Lite, £30 for .
http://www.sky.com/shop/customer-shop/broadband-talk/
[large maps of michigan] Digital channels
| Channel | Name | star tribune interview skills behavior questions | population of wa state towns | Programming |
|---|---|---|---|---|
| 53.1 | sky tv broadband phone DT | videos of girls in bikinis wrestling | classifieds for old tractors new york | Main sky tv broadband phone programming / MyNetworkTV |
| 53.2 | WOLF DT | one girls two k9 s | national bowling stadium in nevada | Simulcast of the dill company norristown pa |
| 53.3 | WSWB DT | 480i | 4:3 | Simulcast of america's carpet outlet austin |
Sky Broadband Unlimited Get the best broadband deals when you ...
Enjoy your favourite shows with the UK's biggest catch up TV service, now . 24/ 7 Sky Broadband technical support online and on the telephone, so no need to .
http://www.sky.com/shop/broadband-talk/broadband-unlimited/
[model railroad hobby shops palymra pa] References
[roadtrip an best places and california] External links
- pete kaufman oregon pigeons
- cape dory 36 cutter
- electric specialty vehicles for disablities
- philips dvd player uk
- ernest deininger in philadelphia
- intel's matrix storage technology
|
|


Converters can be thought of as "post-processors" for response POJOs before they get passed to the serializer.
Converters are associated with resource classes and methods via the following:
- {@link oajr.annotation.Rest}
- {@link oajr.annotation.Rest#converters() converters}
- {@link oajr.annotation.RestOp}
- {@link oajr.annotation.RestOp#converters() converters}
| // GET person request handler.
| // Traversable conversion enabled to allow nodes in returned POJO tree to be addressed.
| // Queryable conversion enabled to allow returned POJO to be searched/viewed/sorted.
| @RestGet(
| path="/people/{id}/*",
| converters={Traversable.class,Queryable.class}
| )
| public Person getPerson(@Path("id") int id) {
| return findPerson(id);
| }
Juneau defines the following converters out-of-the-box:
- {@link oajr.converter.RestConverter}
-
{@link oajr.converter.Queryable}
Provides query parameters that can be used to transform the response (i.e. search/view/sort the
POJO response before being serialized).
-
{@link oajr.converter.Traversable}
Allows nodes in the POJO response tree to be individually accessed through additional path info on
the request.
-
{@link oajr.converter.Introspectable}
Allows method calls to be made on the response POJO, and for the result of that method call to be
serialized as the response.


SELCT consists of faculty and students who work across a range of audio-based fields. As an interdisciplinary research group, SELCT contains researchers from composition, music technology, and engineering backgrounds.
The diverse range of interests and areas of expertise among SELCT researchers paves the way for a wide range of inventive collaborations: postgraduate students may choose to work with any of the SELCT faculty, allowing for innovative fusions of sub-disciplines.
In addition to the SELCT members listed below, SELCT engages with a worldwide array of collaborators and colleagues.