This is a brief run-through of how to reproduce (some of) the key performance results for the Differential Gene Expression (DGE) tools examined in Schurch et. al. (2015). This is not an extensive description of how to use all the scripts in the repository or even all the scripts used to generate the results and plots presented in Gierlinski et. al. (2015).
The raw fastq data for The Great RNA-seq Experiment has been deposited in the European Nucleotide Archive and can be downloaded from here. The lane, sample and replicate metadata for the rather anonymously named ENA fastq files can be found in ENAdata_ERP004763_sample_mapping.tsv or can be downloaded independently from figshare here.
For Section 3.1 of Gierlinski et. al. (2015) the lane data are examined independently but for the majority of the work presented in both papers the lane data are summarized to give biological replicate data. The simplest way to do that is to cat the lane fastq files for each biological replicate into a single file for each replicate.
The resulting reads then need to be aligned to genome with your preferred alignment tool. We used bowtie v2.0.0 (beta7) and TopHat v2.0.5 to align the reads to the Saccharomyces cerevisiae EF4 genome from Ensembl release v68. This specific Ensembl release is no longer available, but the EF4 genome is available here as part of the Ensembl v70 archive.
If the alignment tool doesn’t produce BAM format output by default, then the output alignments will then need to be converted to BAM format. The BAM files need to be position sorted and indexed. There are several tools availble for these steps including samtools, sambamba and Picard.
The BAM files (.bam) and their indexes (.bai) files for the replicates of each condition then need to be separated into two individual directories that will be passed to the script generic_wrapper.py which will generate the count summaries from the bam data.
Alternatively, generic_wrapper.py can operate directly on appropriately named (<name>.gbgout by default) htseq-count count data by specifying the --precounts flag (again separated into two directories, one for each condition). For convenience, the count files for each condition from our analysis are included in the repository as gzipped tar archives in the Preprocessed_data directory. We’ll perform the example run in the directory testDGE:
mkdir testDGE
cd testDGE
mkdir WT
mkdir Snf2
cd WT
tar zxvf Preprocessed_data/WT_countdata.tar.gz
cd ../Snf2
tar zxvf Preprocessed_data/Snf2_countdata.tar.gz
cd ../
The performance of each DGE tool as a function of replicate number and expression fold‐change was evaluated by comparing the DGE results from sub‐sets of the full set of clean replicates against a ‘gold standard’ set of DGE results calculated for each tool using the full set of clean replicates. These bootstrap DGE results are computed by providing the generic_wrapper.py script with details of which tool to use, how many bootstrap calculations to perform, how many replicates to use for each bootstrap.
By default generic_wrapper.py runs in DRMAA-cluster-aware mode that spawns a set of cluster jobs for performing the bootstrap runs efficiently (please make sure that the relevant environmental variables are set appropriately for the python DRMAA library to successfully access your cluster). If you do not have access to a DRMAA-compatible cluster, the bootstraps can be run serially on a single machine by specifying the --nocluster flag but this is likely to take a considerable amount of time.
The generic_wrapper.py. needs the following external tools to run:
- samtools (--samtoolspath)
- R v3.2.2 (--Rpath)
- perl v5.8.9 (--perlpath)
By default these are set to /usr/bin/<perl/Rscript/samtools>. If the defaults are incorrect for your setup you’ll need to provide the full paths to these tools.
We’ll also need to provide the details of the DGE tool to use, the path data, which data are bad, the gene annotations, the number of bootstrap iterations to perform and the number of replicates to use from each condition for each bootstrap and, finally, the output sqlite database to write the results too (the path for this output needs to exist already) and a log file to record out run [1]:
- -r - the path to the DGE tool Rscript to use. These can be found in the DE_tool_scripts directory.
- -d - the path to the two data directories to use. For our example this is testDGE.
- -e - a file listing the bad replicates to be excluded. An example file can be found in the General directory but this will need to be edited to reflect your data location.
- -a - the path to the gene annotation we want to use. This can be found in the Annotations directory.
- -b - the number of bootstrap runs to perform.
- -k - the number of replicates to select for each bootstrap.
- -o - the output file.
- -l - the log file.
In our case the resulting command looks like this:
Bootstrapping/generic_wrapper.py -r DE_tool_scripts/edgeR.R -d testDGE -a Annotations/Saccharomyces_cerevisiae.EF4.68.gtf
-b 10 -k 3 --precounts -e General/exclude_badreps.lst -o edgeRa/edgeR_k03.db -l edgeR_k03.log
This should produce a single sqlite database (.db) file containing all the results and logfiles from these bootstrap runs and a log file. In order to make the plots from Schurch et. al. (2015) we will need to run this for and range of tool, each with a range of sample sizes, k=2..40. The wrapper bash-scripts qsub_bootstraps_withexcludelist.sh & qsub_bootstraps_withoutexludelist.sh are quick-and-dirty utility scripts to automate stepping through -k. The final result should be a set of 39 sqlite databases and their associated logfiles for each tool.
In order to assess the performance of each tool, first we need to define a ‘truth’ against which to test it. In Schurch et. al. (2015) we defined the truth for each tool as the differential expression calls using that tool with the full set of ‘clean’ replicate data. For convenience, these gold-standard truths are provided for the tools examined in Schurch et. al. (2015) as a compredssed tar archive in the Preprocessed_data directory.
Alternatively, you can generate the appropriate gold-standard truth with a call to generic_wrapper.py without specifying any replicate subselection or bootstrapping [2]:
Bootstrapping/generic_wrapper.py -r DE_tool_scripts/edgeR.R -d testDGE -a Annotations/Saccharomyces_cerevisiae.EF4.68.gtf
--precounts -e General/exclude_badreps.lst -o edgeR_gold.txt -l edgeR_gold.log
This may take a few minutes since the code calls the perl Ensembl API to provide gene names and descriptions for the output results.
To assess the performace of each individual tool we then look at the total number of genes called as Significantly Differentially Expressed (SDE) in each bootstrap replicate subselection and compare this with the tool gold-standard truth to define the True Positive, False Positive, True Negative and False Negative Rates (TPR, FPR, TNR, FNR) as a function of the number of replicates and as a function of fold-change threshold.
First we need to summarize the boostrap data for the tool using make_powerstats_db.pl. This script submits jobs to a DRMAA-enabled cluster and will not operate on a stand-alone machine. Before we run this script we need to edit the configuration file de_tests.txt to point the fullfile field at the gold-standard truth file for each tool and to point the repfile field to the bootstrap database files we just created for each tool. Note that the repfile field can use perl regex wildcards and because of historical oddities the entry must end with .tsv instead of .db (don’t worry, it’ll find the right .db files if you follow along!).
For our example using edgeR the entry looks like this:
TEST edger
name = edgeR
repfile = edgeR/edgeR_k%02d.tsv
fullfile = edgeR_gold.txt
adjustment = bh
FCsig = -1
With that done we can then run make_powerstats_db.pl [3]:
DE_tool_comparison/make_powerstats_db.pl -test=edger -testinfofile=General/de_tests.txt
-script=DE_tool_comparison/one_bs_powerstats.pl -genlist=General/genlist.tsv -powerdir=edger_powerstats
-reffcfile=Preprocessed_data/full_rep_gold_standards/WT_Snf2_deseq_clean_mw_test.tsv
This will create a set os summary statistics files in the edger_powerstats directory. The final plots are made with plot_powerstats_db.pl which uses these summary statistic files and outputs a postscript file:
Plotting/plot_powerstats_db.pl -test=edger -psfile=powertest_edger.ps -testinfofile=General/de_tests.txt
-powerdir=edger_powerstats minnrep=2
The result should be the following four panel postscript figure showing the performance of the tool:
Generating the other figures for the paper is a more involved process and is not covered by this introduction. For help using the codebase to generate these figures, or if you have a tool you’d like us to add into our analysis and generate figures for, please contact Prof. Geoff Barton at the University of Dundee.
Footnotes
| [1] | Please also ensure that your PYTHONAPTH environmental variable includes the path to the root directory of the codebase. |
| [2] | Please also ensure that your PERL5LIB environmental variable includes the path to the Modules directory of the codebase and includes the full path to the ensembl API bioperl-live and modules directories. |
| [3] | Please ensure that your PERL5LIB environmental variable includes the path to the Modules directory of the codebase. |


The Athens County Sheriff’s Office responded to a call for a report of a suspicious person on Aug. 9 on North Plains Road in The Plains.
The caller said a man was hitting the vending machine and seemed to be trying to break the machine. Deputies patrolled the area but were unable to find a man to match the description. Deputies returned to patrol.
Did you hear that?
The sheriff’s office responded to Strouds Run Road on Aug. 10 for a complaint from a resident that someone had pushed her bathroom floor up from underneath the house.
According to the report, the house had been settling more on one side than the other, which caused the floors to bow and the paneling to come loose. The woman said other weird things had been happening. Deputies advised her to set up a trail camera to try to catch something.
Good Dog
On Aug. 10, deputies responded to Big Bailey Road for a report of an aggressive dog on the caller’s porch.
Once deputies arrived, the dog ran home. The dog ended up being “very friendly,” according to the report. Deputies spoke to the owner of the dog, who said the dog had been able to get through the fence in the backyard.
Phone troubles
On July 5, deputies were dispatched to Laughlin Hill for a 911 call.
After speaking with the homeowner, it was determined that there were issues with the landline. The homeowner said they contact their service provider, reported the problem and were waiting to hear back. No further action was taken.
Pain in the grass
On July 3, the sheriff’s office responded to a call of a naked man running and screaming on Salem Road in Athens.
Deputies spoke to the caller, and the suspect was found. According to the report, the man was not naked and actually had cut his foot in the yard, which explained the yelling and screaming. The man refused medical treatment, and deputies returned to patrol.
Good Dog
On Aug. 10, deputies responded to Big Bailey Road for a report of an aggressive dog on the caller’s porch.
Once deputies arrived, the dog ran home. The dog ended up being“very friendly,” according to the report. Deputies spoke to the owner of the dog, who said the dog had been able to get through the fence in the backyard.
Borrowed from a friend
On July 3, deputies responded to Pine Street in The Plains for the report of two suspicious women pushing a wheelbarrow down the street.
Deputies spoke to the females on Ohio Avenue. They said they had just picked up the wheelbarrow at a friend’s house and were heading home. No criminal activity was observed and deputies returned to patrol.
Free Wi-Fi
The sheriff’s office responded to a report on State Street in Amesville for a report of people hanging around the bank.
Deputies spoke to the people, who said they were using the WiFi.
Pizza Miscommunication
On July 16, deputies responded to State Route 13 in Glouster for a well-being check.
The woman said she received a message from her friend asking her to order her a pizza. When the caller went to check on her friend, no one answered the door. Deputies spoke to the woman, who said she was fine and that everyone in the house was asleep. Deputies returned to patrol.
Quick Nap
On July 16, Deputies responded to New Floodwood Road in Nelsonville for a report of a man passed out behind the wheel.
Deputies spoke to the driver. According to the report, he was taking a nap due to his vehicle being broken down. No further action was taken.


From pulled pork with baked beans to fried chicken and coleslaw, you can find everything on our Moonswiners full menu page.
In addition to our famous BBQ dishes, we sell Moonswiners t-shirts, hats, and even our signature sauces in our store.
We are always looking to provide great service, a friendly atmosphere, and outstanding food here at Moonswiners. Let us know how we are doing.


Fermented Vegetable Safety
& Troubleshooting
Fermented Vegetables Are Safer Than Fresh
Food Preservation
- Freezers
- Refrigerators
- Canning
- Additives
- Cooking
- Smoking
- Sun Drying
bread
beer
chocolate
coffee
pickles
cheese
yogurt
Pickles
not just for cucumbers
What makes fermenting vegetables safe?
- High Salinity
- Lactic Acid Bacteria Protection
- Anaerobic Environment
- Low pH
What is Botulism?

- Soil contact = C. botulinum spores
- Inactive spores are like seeds
- Spores produce active cells in ideal conditions
Fermented Vegetables are Botulism Bullies
Why can't C. botulinum succeed?
- Salinity
- High salt slows down C. botulinum
- LAB love salt!
- LAB outcompete C. botulinum
- LAB lower pH
- Acidity
- C. botulinum can't survive below 4.6 ph
Real Danger: Improper Home Canning
- C. botulinum spores withstand high heat
- Heat wipes out competing bacteria
- Low-acid foods are C. botulinum playgrounds
CDC Botulism Surveillance Reports
- http://www.cdc.gov/nationalsurveillance/botulism-surveillance.html
- Reports from 2001 to 2012
Other Big and Scary Food Poisoners
- E. coli, Salmonella, and other pathogenic bacteria
- They can't keep up with LAB
- Escherichia coli O157:H7
- FDA Bacterial Pathogen Growth and Inactivation
Fermented Vegetables are Safer because...
- High Salinity
- Lactic Acid Bacteria Protection
- Low pH
- Anaerobic Environment
#1 Mistake: Non-Anaerobic Environment
Keep Your Vegetables Below the Brine
- Finger method
- Weights
- Glass weights
- Clay weights
- Rocks
- Jar-inside-jar
- Covered with cloth
- Closed inside jar lid
- Plastic bag


Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.
For the best experience please use the latest Chrome, Safari or Firefox browser.
Data Security Breaches In US Health Care
2009-2013
User story/Scenario
This overview provides a quick overview for the different users.
The health care sector works with a lot of sensitive and private data such as social security numbers, addresses, medical diagnoses etc.
A total of
0 security breaches reported.
Design choices
The glyphs was chosen to provide the user a quick overview and differentiation
Thefts
0
Unauthorized Access
0
Loss
0
Hacking/IT Incidents
0
Disposal
0
Others
0
Design choices
A description button exists for the user to get more information about what the different categories (e.g Thefts) mean. Press it!
Below a description of the different breaches exist
Theft is the act of physically taking someone elses property without their permission.
Unauthorized Access is when someone gains access to access to an area of a system that they are not permitted to access
Loss is when information is destroyed by different type of failures in a system.
Hacking/IT Incidents is when someone exploits a system by using different vulnerabilities such as bugs or exploits to access computer systems.
Disposal includes incident where data has been overwritten and/or destroyed.
Other incidents include data breaches that could not be categorized by the other ones.
Highlight!
Group presentation provided feedback about not having information of what the different categories mean. Therefor it was added to the individual project!
Affected Individuals
User story/Scenario
The header provides the user with a clear description of what to find. User interested: Student Reason: Provides information about how widespread the attacks are and amount of people affected.
Design choices
Bar chart: Quick overview of quantity and ease. Ref: https://tinyurl.com/y79k8ukp
Design choices
Bar chart: The colors chosen corresponds to the other charts which helps connecting to the user and providing familiarity.
These data breaches affect many people. The chart on the right show the total number of affected people per breach type.
Design choices
Informative text that helps the user understand the chart.
Design choices
Bar chart: Quite thick bars makes it easier to locate and differentiate. The text at the bottom legend becomes less cluttered.
Types of attacks and target items
User story/Scenario
The header provides the user with a clear description of what to find. User interested: Hospital manager & IT Responsible Reason: The hospital manager most likely wants to know some of the most targeted items. The IT responsible is interested in the hacking trend but also the number of cases IT related items was stolen.
Stolen items
Visualization of the items stolen and in how many cases that has happened. During some cases, several items were stolen.
Pro
The venn diagram and the chosen colors makes it easy to check where several items were stolen. Ref: https://tinyurl.com/yc9yvvr8
Con
The different types text makes it look cluttered, a better solution might have been to provide a separate legend with the types.
Design choices
Venn diagram especially good for cases where several items were stolen at the same time. Ref: https://tinyurl.com/yc9yvvr8
Behaviour over the years
Visualization of the different types of breaches over the years 2009 - 2013.
Design choices
Line chart suitable for displaying change over time. Ref: https://tinyurl.com/y9pchjjz
Design choices
The filtering option helps the users to reach their goal by providing flexibility of use.
Number of Breaches per state
User story/Scenario
The header provides the user with a clear description of what to find. User interested: Hospital Manager & Student Reason: The hospital manager most likely wants to know information about their state. The student is interested in overall general information about the number of attacks.
Number of breaches per facilities in that state
Hover over the states to show details!
Highlight!
Group presentation provided feedback about per capita (instead of total amount per state). What I thought was more interesting to see was the amount of breaches per facilities in that state instead, which made more sense towards user stories as well. New data set was added for this (see references!)
Design choices
The map was chosen because the data was state focused.
Con
The gradient makes it hard to distinguish different amounts. A better solution would probably be to have clear color codes (the span is only up to 10%).
1%
5%
10%
Information on underlying data
The data was processed by finding a source data-set for the chosen topic. Some manual sorting of the data-set was then made because some fields contained unimportant/unrelevant content. Dimple and some D3 was then used in order to visualize the data in different forms. The number of facilities data was found for the indivudual project, no manual sorting was needed because the data set. In short: Find data-set --> Possible manual sorting --> Dimple and D3 --> Different visualizations
References & Highlight!
The material was re-used from the group project with some change in data. Feedback that the group-project webpage lacked navigation was given so one of the biggest changes is the structure, "Overview first, zoom and filter then details-on-demand", so the user is now provided with a clear overview which will zoom in on chosen part.
Use a spacebar or arrow keys to navigate. Use 'esc' to toggle overview.
Design choices/Highlight!
The navigation at the bottom provides the user with an extra way of navigating the site. Cons: Titles are not so obvious and NO HINTS are given regarding use of arrow keys!


(PECL getdns >= 0.11.0)
php_getdns_root_trust_anchor — Retrieve the default list of trust anchor records.
&$anchorDate
)This function retrieves the default list of trust anchor records that is used by the getdns library to validate DNSSEC.
anchorDate
An integer that will be set to the number of seconds since epoch that the trust anchors were obtained. Note that this argument is passed by reference and any existing value will be overwritten.
This function returns an integer representing the trust anchor list. Zero (0) is returned if no default trust anchor is present.


|
| static Func< IQueryCursor< T > > | Compile< T > (Func< IQueryable< T >> query) |
| | Creates a new delegate that represents the compiled cache query. More...
|
| |
| static Func< T1, IQueryCursor< T > > | Compile< T, T1 > (Func< T1, IQueryable< T >> query) |
| | Creates a new delegate that represents the compiled cache query. More...
|
| |
| static Func< T1, T2, IQueryCursor< T > > | Compile< T, T1, T2 > (Func< T1, T2, IQueryable< T >> query) |
| | Creates a new delegate that represents the compiled cache query. More...
|
| |
| static Func< T1, T2, T3, IQueryCursor< T > > | Compile< T, T1, T2, T3 > (Func< T1, T2, T3, IQueryable< T >> query) |
| | Creates a new delegate that represents the compiled cache query. More...
|
| |
| static Func< T1, T2, T3, T4, IQueryCursor< T > > | Compile< T, T1, T2, T3, T4 > (Func< T1, T2, T3, T4, IQueryable< T >> query) |
| | Creates a new delegate that represents the compiled cache query. More...
|
| |
| static Func< T1, T2, T3, T4, T5, IQueryCursor< T > > | Compile< T, T1, T2, T3, T4, T5 > (Func< T1, T2, T3, T4, T5, IQueryable< T >> query) |
| | Creates a new delegate that represents the compiled cache query. More...
|
| |
| static Func< T1, T2, T3, T4, T5, T6, IQueryCursor< T > > | Compile< T, T1, T2, T3, T4, T5, T6 > (Func< T1, T2, T3, T4, T5, T6, IQueryable< T >> query) |
| | Creates a new delegate that represents the compiled cache query. More...
|
| |
| static Func< T1, T2, T3, T4, T5, T6, T7, IQueryCursor< T > > | Compile< T, T1, T2, T3, T4, T5, T6, T7 > (Func< T1, T2, T3, T4, T5, T6, T7, IQueryable< T >> query) |
| | Creates a new delegate that represents the compiled cache query. More...
|
| |
| static Func< T1, T2, T3, T4, T5, T6, T7, T8, IQueryCursor< T > > | Compile< T, T1, T2, T3, T4, T5, T6, T7, T8 > (Func< T1, T2, T3, T4, T5, T6, T7, T8, IQueryable< T >> query) |
| | Creates a new delegate that represents the compiled cache query. More...
|
| |


Yellow weather warnings in Portugal
Ten districts of mainland Portugal will be under yellow warning on Wednesday and Thursday due to the forecast of strong sea unrest, according to the Portuguese Institute of Sea and Atmosphere (IPMA).
The districts of Viana do Castelo, Braga, Porto, Aveiro, Coimbra, Leiria, Lisbon, Setubal, Beja and Faro will be under yellow alert between 12:00 on Wednesday and 6:00 on Thursday.
For the entire Portuguese coast, IPMA forecasts northwest waves of 4 to 4.5 metres.
The IPMA has also placed the western (Flores and Corvo) and central (Graciosa, São Jorge, Terceira, Pico and Faial) groups under yellow warning because of the sea unrest (between 06:00 today and 06:00 Wednesday). Thursday) and precipitation (between 21:00 today and 06:00 Wednesday).
The IPMA forecasts for today on the continent a very cloudy or overcast sky, there is also a possibility of snowfall above 1200/1300 metres in the northern region from the afternoon.
Minimum temperatures on the continent will range from -1 degrees Celsius (in Bragança) to 7 (in Lisbon and Faro) and maximums between 6 (in Guarda) and 16 (in Faro).


Gallery
Everything we make in-shop, we make with love and care, with 100% locally sourced ingredients from trusted farmers and partners! Over the past few years, we've gathered some photos of our progress and best pastries, winning over 5 awards for our service, our food, and our staff. From all of us at A Teaspoon Of Sugar, we'd like to say: Thank you for all of your support!


cars
List of cars in service
| car | plate | delivery date | deadline | client | cost | action |
|---|---|---|---|---|---|---|
| {{ car?.model | uppercase }} | {{ car?.plate | uppercase }} | {{ car?.deliveryDate | date:'shortDate' }} | {{ car?.deadline | date:'shortDate' }} | {{ car?.clientFirstName }} {{ car.clientSurname | surnameShortCut }} | {{ car?.cost | currency:'PLN':true }} | ( X ) |
Currently no cars in service
COST BRUTTO: {{ grossCost }} PLN
Add new a car


influenza antibodies []. virus cells viral infected infection ADCC surface {border-style cell proteins px;} #ffffff;} involved mice broad-spectrum target vaccines Antibodies conserved effector level various activation cellular complement non-neutralizing stem (Fig. antibodies, antigens immune shown activity antibody-dependent cytotoxicity action interaction protect protein sialic virus. However, able activate development domain highly macrophages mechanisms new particles protection response serum stem-specific ADCP HA, IgG addition, antigen based human induce neuraminidase neutralization neutralizing protective px; {font-family animals anti-influenza antibody bind expressing font-size hemagglutinin inhibit inhibition mechanism methods monoclonal phagocytosis production seasonal vaccine viruses Influenza Moreover, NA, NA-specific Virology antibodies. binds bound budding capable cells, cells. complement-dependent double; head immunization influenza-infected instance, ion presence using vaccination CDC Fc-FcγR Infect. Neutralizing Rev. [], ability acid alveolar antibody-mediated antigens. assay border-color border-width contribute detected effect exposed fusion including mainly neutrophils pandemic people process reactions release showed solid; spectrum terminal titers virions {font-style {font-weight ELLA Evaluation Fig. NP, NP-specific Nat. PLoS Thus, annual antiviral blood bold broad cell, children containing conventional courier; crucial death defense ectodomain effectiveness em; endosomal evaluated formation head-specific hemagglutination important increase laboratory macrophages, marker membrane necessary number passive prevent pt;} recombinant reduced region required respiratory rule, significantly strain strains study used vaccines. variable


Post-operative complications.
CPR Cardiopulmonary resuscitation, ECMO Extra corporeal membrane oxygenation, OR Operating room.


Paper 1: Explorations in creative reading and writing
The source for the reading questions will be a literature fiction text. It will be drawn from either the 20th or 21st century. Its genre will be prose fiction. It will include extracts from novels and short stories and focus on openings, endings, narrative perspectives and points of view, narrative or descriptive passages, character, atmospheric descriptions and other appropriate narrative and descriptive approaches. As a stimulus for students’ own writing, there will be a choice of scenario, written prompt or visual image that is related to the topic of the reading text in section A. The scenario sets out a context for writing with a designated audience, purpose and form that will differ to those specified on Paper 2. The aim of this paper is to engage students in a creative text and inspire them to write creatively themselves:Paper 2: Writers’ viewpoints and perspectives
The sources for the reading questions will be non-fiction and literary non-fiction texts. They will be drawn from the 19th century, and either the 20th or 21st century depending on the time period assessed in Paper 1 in each particular series. The combination selected will always provide students with an opportunity to consider viewpoints and perspectives over time. Choice of genre will include high quality journalism, articles, reports, essays, travel writing, accounts, sketches, letters, diaries, autobiography and biographical passages or other appropriate non-fiction and literary non-fiction forms. In section B, there will be a single writing task related to the theme of section A. It will specify audience, purpose and form, and will use a range of opinions, statements and writing scenarios to provoke a response. The aim of this paper is to develop students’ insights into how writers have particular viewpoints and perspectives on issues or themes that are important to the way we think and live our livesWhat's Being Assessed
| AO Number | Assessment Objective (AO) |
|---|---|
| A01 |
|
| A02 | Explain, comment on and analyse how writers use language and structure to achieve effects and influence readers, using relevant subject terminology to support their views |
| A03 | Compare writers’ ideas and perspectives, as well as how these are conveyed, across two or more texts |
| A04 | Evaluate texts critically and support this with appropriate textual references |
| A05 | Communicate clearly, effectively and imaginatively, selecting and adapting tone, style and register for different forms, purposes and audiences. Organise information and ideas, using structural and grammatical features to support coherence and cohesion of texts |
| A06 | Candidates must use a range of vocabulary and sentence structures for clarity, purpose and effect, with accurate spelling and punctuation. (This requirement must constitute 20% of the marks for each specification as a whole.) |


This document references a font that is licensed to Laurence Penney. Special permission has been granted to crosslink to it for demo purposes only. You must obtain an appropriate license at djr.com/fit before linking to this font or using it in any other context.


Birthday Horoscope
Month
January
February
March
April
May
June
July
August
September
October
November
December
Day
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Submit


For many hundreds of years, Kamigawa's denizens peacefully worshipped the spirits of their world. Then suddenly their gods attacked, forcing the world into brutal war.
Reminiscent of sengoku-era Japan, this plane contains two symbiotic worlds: the utsushiyo, or material realm, and the kakuriyo, or kami spirit realm. Each kami was a divinity, and the way to happiness was to honor these gods and live by their ways. The inhabitants of Kamigawa were content with this life of devotion. Then the unimaginable happened. Their gods turned on them.
Slowly at first, the kami began to take form in the material world. Some scholars believed they were delivering a message or a warning. But their appearance was so alien and surreal, no true meaning could be discerned.
Meanwhile, the plane's most powerful warlord, the daimyo Takeshi Konda, ruled over the Towabara Plains from his stronghold at Eiganjo. Even as his armies and samurai secured more territory in Konda's name, the kami manifested in ever-greater numbers.
Then came the night that changed Kamigawa forever. A few miles from Eiganjo Castle, the kami set upon the town of Reito. Scores of spirit-world monstrosities swept through the town, killing nearly every living thing. Hundreds were slain and few survived. The Kami War had begun. Over the next twenty years, spirits of every shape and size would descend on the plains, ravaging everything in their path.
Throughout this siege, Konda remained within his stronghold, mysteriously safe from harm.
Kamigawa's people wondered why the kami betrayed them, even as they fought for survival. What had they done wrong?
In truth, it was the proud daimyo Konda who had begun the war. With aid from moonfolk allies, Konda kidnapped a kami to secure his own power and immortality. This outraged the great O-Kagachi, kami of all things, igniting an ire that would claim countless lives.
Only Konda's daughter Michiko and a stolen kami—an entity who calls herself Kyodai—have any hope of placating the kami and restoring a fragile peace to the land.
From behind the impenetrable walls of Eiganjo castle, Konda rules Kamigawa. Driven to ensure the prosperity of his kingdom, he crossed into the spirit world, bringing back immortality. This enraged the O-Kagachi, who retaliated with a spirit war against the plane's mortals.
This ronin samurai is driven by the desire for freedom and power. Bargaining with the myojin, he gained enough power to assist Michiko Konda in her quest to end the kami wars. Unfortunately, he quickly found himself at odds with his former partner Hidetsugu in the process.
Hidetsugu devoted his shaman talents to worshipping the Oni of Chaos. Believing all things shall be consumed by Oni, Hidetsugu worked to hasten this end through widespread destruction. Eventually defeated by the O-Kagachi, Oni scattered to the winds, reconstituted, and merged with Hidetsugu.
Konda bound the essence he stole from O-Kagachi in a physical disc that he kept hidden away. The O-Kagachi and kami manifested in the mortal world, slaying mortals in their hunt to find it. With O-Kagachi closing in, Toshiro performed a ritual to release the essence, which became the kami Kyodai.
Michiko set out to stop the kami war at any cost. With the help of Toshiro, she released the spirit imprisoned by her father, Konda. Wishing only for peace, Michiko merged with the spirit to become the new guardian of the spirit-mortal barrier, finally ending the war she despised.
These samurai dutifully protect Eiganjo castle. They ensure peace across Kamigawa by quickly silencing anyone who would dare oppose Konda. Though efficient and able to repel nearly all kami attacks, they were no match for O-Kagachi’s assault.
Under the leadership of Sensei Hisoka, scholars at the Minamo Academy research methods to defeat and pacify spirits. During the kami war, the Academy and its mages failed to repel an assault by Hidetsugu, who slaughtered all he found and summoned the Oni of Chaos to destroy the school.
The outcasts of Takenuma (mostly disgraced ronin and thieves) only look out for their own safety. Many find that the easiest way to do so is to become the hired muscle for the criminal overlord of Takenuma Swamp.
The shaman of the Sokenzan Mountains possess chilling attacks that can banish kami from the world of the living. In addition to fighting spirit invaders, they use their powerful defenses against the numerous akki and ogres that inhabit this mountain region.
The Jukai live in quiet reflection of nature and the spirit world around them. Calling themselves budoka, these monks have a greater understanding of the necessity for peace between mortals and the spirit world than anyone. Yet even they did not hesitate to defend themselves when the kami attacked.
Kami are the spiritual reflection of a physical object in the mortal world. When kami manifest in the mortal world, their appearance is chaotic and unnatural, yet distinguishable by the small orbiting extensions of their spiritual being.
Bloodthirsty and brutal, these creatures secure their territory by brute force and sinister deals with Oni. In exchange for power and assistance, the ogres destroy, inflict pain, and slaughter—all to satisfy the blood pacts with their dark divine one.
Dark and mighty forces of chaos and destruction, the oni seek to bring about the end to all life on Kamigawa. By making blood pacts with ogres, the oni grow in power—while also giving ogres permission to slaughter indiscriminately, without mercy.
Seldom seen outside of Jukai Forest, these fierce serpent warriors train to use all four of their arms during combat—to deadly perfect coordination. The orochi want no part in the kami war, other than to defend their territory and perhaps grow their own numbers.
Kitsune are the light and elegant humanoid fox creatures of Kamigawa. Quick with a blade and agile, these master swordsmen train many of the best samurai of the land. Their piety that is equaled only by the monks of Jukai Forest.
Soratami live among the clouds of Kamigawa, where they watch and learn. Known for their wisdom, they frequent Minamo Academy to share knowledge—but only as a means of advancing their own secret agenda.
These creatures have hard-shell backs and elongated limbs. They mainly reside in the Sokenzan Mountains. Known for their deadly pranks, the akki are very territorial and see all of Sokenzan as their domain.
Living primarily in the Takenuma Swamp, nezumi are shifty and strike only in their enemies' moments of greatest weakness. While easily defeated in outright single combat, most nezumi utilize their natural dexterity and ninja training to strike unseen from the shadows.
A prodigy with a sometimes dangerous appetite for knowledge, Jace’s skills in illusion, mind-reading, and memory modification are nearly limitless as a Planeswalker.
This artificer’s body is enhanced by the magical alloy etherium. Enslaved by one Planeswalker and mind-wasted by another, he continues to seek perfection of body and mind.
A member of the secretive moonfolk, Tamiyo is driven to understand the Multiverse. She believes every plane holds a mystery, and she eagerly seeks to understand them all.


Go Fishing
问题描述 :
This summer vacation, FZU-ACM members get together for training in the name of dream. Some of them like fishing. One afternoon M members of them go fishing together around the lake, they bring many buckets with them and put their fish in either one of N buckets, they can only remember the number of fish they catch, and the number of fish in every bucket. When the sun went down, everyone wants to take away the part belonging to him, so they need to split the N buckets into more buckets (here we can assume the number of buckets they own is unlimited). They want to minimize the times of split. They are so tired, so ask you to help them solve their puzzle. Each time they can only split the fish in one bucket into two buckets.
输入:
The input consists of several test cases. The first line of each case contains two integers N,M.(1<=N,M<8)
N representing the number of buckets they put their fish in, and M representing the number of ACM members that go fishing.
The next line contains N integers representing the number of fish in each bucket.
The next line contains M integers representing the number of fish each ACM member catch.
N representing the number of buckets they put their fish in, and M representing the number of ACM members that go fishing.
The next line contains N integers representing the number of fish in each bucket.
The next line contains M integers representing the number of fish each ACM member catch.
输出:
The input consists of several test cases. The first line of each case contains two integers N,M.(1<=N,M<8)
N representing the number of buckets they put their fish in, and M representing the number of ACM members that go fishing.
The next line contains N integers representing the number of fish in each bucket.
The next line contains M integers representing the number of fish each ACM member catch.
N representing the number of buckets they put their fish in, and M representing the number of ACM members that go fishing.
The next line contains N integers representing the number of fish in each bucket.
The next line contains M integers representing the number of fish each ACM member catch.
样例输入:
2 3 1 2 1 1 1 4 3 2 4 4 3 5 5 3
样例输出:
1 1
(adsbygoogle = window.adsbygoogle || []).push({});
我们家乌龟今天冬眠醒了….
我们家乌龟今天冬眠醒了….
我们家乌龟今天冬眠醒了….
正解，我的方法占用的内存更多些
18题的C也是错误的
第2题，TCP不支持多播，多播和广播仅应用于UDP。所以B选项是不对的。第2题，TCP不支持多播，多播和广播仅应用于UDP。所以B选项是不对的。
妈呀！这个Dijkstra模板好长OwQ！
居然看懂了
博主的C++功底真是好
华为这题目略显简单啊
楼主你能把scanf( "%d%*" ,&T );中%*的用法详细说明吗
样例输出和程序输出不吻合，修改一下样例输出吧。我用的是VC编译器，会提示我的i和j变量重复定义
输出规范写错了哦~
I go through some of your put up and I uncovered a good deal of expertise from it. Many thanks for posting this sort of exciting posts
不错，值得借鉴
3，求得所有的为的总和sum—->所有数的总和
printf( "Not Possible" );—->printf("impossible");
对吗？
漏了一个"不"，已修正:)


Happily Employed Hello, my name is Eli. I'm a developer passionate about opensource software/hardware. My mantra is do more with less; restrictions breed creativity. ❤ Golang Contact me by email, or @EliGladman.


{% extends "layouts/_block_content.html" %} {% from "components/list/_macro.njk" import onsList %} {% set page_title = "Privacy and data protection" %} {% block main %}
This means that we will:
{{ onsList({ "itemsList": [ { "text": 'recognise that you are sharing personal information with us and treat it as confidential, as directed by the Code of Practice for Statistics' }, { "text": 'only use your information for statistical purposes, or to help us run our surveys, and not publish anything that identifies an individual, household or business' }, { "text": 'only hold your information for as long as it is being used for producing statistics' }, { "text": 'provide survey information to other government departments, approved organisations and approved researchers for statistical purposes only, subject to the same standards of protection we apply (and according to the provisions of the Data Protection Legislation, the Statistics and Registration Services Act and the Code of Practice for Statistics)' }, { "text": 'ensure our staff are aware of their obligations to protect your confidential information' }, { "text": 'maintain the security of our systems and our buildings' } ] }) }}We employ third-party providers to assist us in survey data collection. These third parties work under our instruction, and are strictly used as technical service providers in a capacity as a data processor. We retain your data and control how this is used. The third parties we work with are:
{{ onsList({ "itemsList": [ { "text": 'Google Cloud Platform service' }, { "text": 'Amazon Web Services' }, { "text": 'GOV.UK Notify' } ] }) }}If you have a question about how we process your personal data or want to find out more about your rights under data protection legislation, please see our protection page.
{% endblock main %}


{{ data_table | markdownify }}
{{ notes | markdownify }}
{% if page.locale_siblings == empty %}
This Page has no other versions
{%- if mode == 'auto' %} as this page has been explicitly listed under the `exclude_set` {% endif %}.
{% else %}
This Page is also available under the following locales:
{% endif %}
{{ 'now' | localize_date }}


Keep an eye on your mailbox for the next 4-6 business days for your free gift card.
CLICK HERE TO REFER ANOTHER FRIEND!
Learn a review on our Facebook page!


Choose Your Own Recipe
This should now work with any recipe from diy.soylent.me. Find your favorite recipe, add "/json" to the end of the URL, copy the resulting text and paste it into the box below.
Warning: This is still very experimental. I've tried it with my own recipe and one other and it has worked, but I haven't double checked the numbers.
What is this?
Genetic Soylent is an attempt to automatically create a Soylent recipe given a list of ingredients and a target nutrient profile.
You can play with it by pressing to step to the next generation, to step to next generations automatically and to reset the simulation.
Original code by nick: http://github.com/nick/genetic-soylent
This version by 2potatoes: http://github.com/2potatoes/genetic-soylent
Notes on genetic soylent can be found on 2potatoes blog.
How it works
- Generate 100 recipes, each recipe containing a random amount of each ingredient.
- Score each recipe based on how close all the nutrients are to 100%.
- Sort the recipes from best to worst.
- Show the best one in the table above.
On each subsequent 'generation', the following happens:
- Remove the worst 30 recipes from the list
- Create 30 new Child recipes containing ingredient amounts taken from two randomly selected Parent recipes.
- Ingredient amounts in each Child can also be mutated if the 'mutation probability' is met.
- A mutation works by taking a random ingredient and increasing or decreasing the amount defined by the 'mutation multiplier'. For example, a mutation multiplier of 0.1 will increase or decrease the amount of an ingredient by 10%.
- Finally, we re-calculate the scores for each recipe, sort them, and show the best one in the table.


Log into Båttleship 2
Sign up to Båttleship 2
Oopsy...
{{ errorLogIn.message }}
Get your phone ready, sending SMS verification code now!
Almost there!
Oopsy...
{{ errorLogIn.message }}
Validating coordinates... Better not be lying!
Don't have an account? Sign up.


You beseech an otherworldly entity for aid. The being must be known to you: a god, a primordial, a demon prince, or some other being of cosmic power. That entity sends a celestial, an elemental, or a fiend loyal to it to aid you, making the creature appear in an unoccupied space within range. If you know a specific creature's name, you can speak that name when you cast this spell to request that creature, though you might get a different creature anyway (DM's choice).
When the creature appears, it is under no compulsion to behave in any particular way. You can ask the creature to perform a service in exchange for payment, but it isn't obliged to do so. The requested task could range from simple (fly us across the chasm, or help us fight a battle) to complex (spy on our enemies, or protect us during our foray into the dungeon). You must be able to communicate with the creature to bargain for its services.
Payment can take a variety of forms. A celestial might require a sizable donation of gold or m agic items to an allied temple, while a fiend might demand a living sacrifice or a gift of treasure. Some creatures might exchange their service for a quest undertaken by you.
As a rule of thumb, a task that can be measured in minutes requires a payment worth 100 gp per minute. A task measured in hours requires 1,000 gp per hour. And a task m easured in days (up to 10 days) requires 10,000 gp per day. The DM can adjust these payments based on the circumstances under which you cast the spell. If the task is aligned with the creature's ethos, the payment might be halved or even waived. Nonhazardous tasks typically require only half the suggested payment, while especially dangerous tasks might require a greater gift.
Creatures rarely accept tasks that seem suicidal.
After the creature completes the task, or when the agreed-upon duration of service expires, the creature returns to its home plane after reporting back to you, if appropriate to the task and if possible. If you are unable to agree on a price for the creature's service, the creature immediately returns to its home plane.
A creature enlisted to join your group counts as a member of it, receiving a full share of experience points awarded.


omaha package¶
Subpackages¶
Submodules¶
omaha.client module¶
-
class
omaha.client.
Client
(apikey)[source]¶ Bases:
object
Buffett Code API Client
-
apikey
¶ Apikey for BuffettCode API
- Type
str
-
ENDPOINT
= 'https://api.buffett-code.com'¶
-
companies
()[source]¶ Company endpoint
See: http://docs.buffett-code.com/#/default/get_api_v2_company
-
quarter
(ticker, from_q, to_q)[source]¶ Quarter endpoint
See: http://docs.buffett-code.com/#/default/get_api_v2_quarter
- Parameters
ticker (str) – Ticker symbol
from_q (str) – Beginning quarter of the target range
to_q (str) – End quarter of the target range
-
search
(keywords)[source]¶ Search endpoint
See: http://docs.buffett-code.com/#/default/get_api_v2_search
-
omaha.company module¶
-
class
omaha.company.
Company
(ticker, from_q, to_q, client)[source]¶ Bases:
omaha.joinable.Joinable
Container for the financial indicators of the public company
-
ticker
¶ Ticker symbol
- Type
str
-
from_q
¶ Beginning quarter of the target range
- Type
str
-
to_q
¶ End quarter of the target range
- Type
str
-
-
class
omaha.company.
Stockprice
(ticker, start_date, end_date)[source]¶ Bases:
omaha.joinable.Joinable
Container for the daily stockprice of the public company.
omaha.indicator module¶
omaha.joinable module¶
-
class
omaha.joinable.
Joinable
(joinables)[source]¶ Bases:
object
Joinable views
The dataframe of the class can be joined with the end date of the financial report.
omaha.omaha module¶
-
class
omaha.omaha.
Omaha
(bc_apikey, quandl_apikey)[source]¶ Bases:
object
Omaha provides a unified view of the financial information of the public companies.
-
bc_apikey
¶ Apikey of BuffettCode API
- Type
str
-
quandl_apikey
¶ Apikey of Quandl
- Type
str
-
category
(cat, from_q, to_q)[source]¶ List of companies filtering by the given TSE 33 sectors.
See: https://www.jpx.co.jp/english/markets/indices/line-up/files/e_fac_13_sector.pdf
- Parameters
keywords (str) – Keyword used for searching companies
from_q (str) – Beginning quarter of the target range
to_q (str) – End quarter of the target range
- Returns
List of companies matching with the given TSE 33 sectors.
- Return type
list
Example
>>> factory = Omaha(bc_apikey='xxxx'), quandl_apikey='yyyy') >>> factory.category('サービス業', '2019-01-01', '2019-12-31')
-
company
(ticker, from_q, to_q)[source]¶ Basic financial indicators of the company
- Parameters
ticker (str) – Ticker symbol
from_q (str) – Beginning of the target quarter
to_q (str) – End of the target quarter
- Returns
Target company
- Return type
Example
>>> factory = Omaha(bc_apikey='xxxx'), quandl_apikey='yyyy') >>> factory.company('1111', '2019Q1', '2019Q4')
-
search
(keywords, from_q, to_q)[source]¶ List of matched companies with given search keyword
- Parameters
keywords (str) – Keyword used for searching companies
from_q (str) – Beginning quarter of the target range
to_q (str) – End quarter of the target range
- Returns
List of companies matching with the given keyword.
- Return type
list
Example
>>> factory = Omaha(bc_apikey='xxxx'), quandl_apikey='yyyy') >>> factory.search('不動産', '2019-01-01', '2019-12-31')
-
stockprice
(ticker, start_date, end_date)[source]¶ Stockprice of the given company
- Parameters
ticker (str) – Ticker symbol
start_date (str) – Start date of the target range
end_date (str) – End date of the target range
- Returns
Object containing stock prices
- Return type
Example
>>> factory = Omaha(bc_apikey='xxxx'), quandl_apikey='yyyy') >>> factory.stockprice('1111', '2019-01-01', '2019-12-31')
-


--- layout: post title: Episode 070 | Eric Lawrence - Fiddler on the HTTP Port link: http://traffic.libsyn.com/developeronfire/DeveloperOnFire-70-EricLawrence.mp3 length: 57671680 speaker: Dave Rael duration: '01:01:14' subtitle: 'Developer On Fire: Eric Lawrence' guest_name: Eric Lawrence image: /assets/images/EricLawrence.jpg guest_blog: http://textslashplain.com/ guest_twitter: ericlaw disqus_url: http://developeronfire.com/Podcast/Episodes/eric-lawrence-fiddler-on-the-http-port episode_number: 70 redirect_from: - "/70/" - "/070/" - "/0070/" - "/eric-lawrence-fiddler-on-the-http-port/" - "/-Eric-Lawrence/" - "/EricLawrence/" - "/Podcast/Episodes/70/" - "/Podcast/Episodes/070/" - "/Podcast/Episodes/0070/" - "/Podcast/Episodes/eric-lawrence-fiddler-on-the-http-port/" - "/Podcast/Episodes/-Eric-Lawrence/" - "/Podcast/Episodes/EricLawrence/" guid: http://developeronfire.com:80/Podcast/Episodes/eric-lawrence-fiddler-on-the-http-port ---
Eric Lawrence (@ericlaw) is best known as the developer of the Fiddler web debugging platform, used by web professionals worldwide. After building websites and browsers for over a decade at Microsoft, Eric joined Telerik to develop Fiddler full-time. Outside of work, he blogs at textslashplain.com and develops and maintains the freeware tools at bayden.com.
1. Dogfood it - You must use your product
2. Be incredibly passionate about getting feedback
3. Curiosity - Don't be satisfied with not knowing


--- layout: post title: 'Review: Concrete Desert' date: 2012-02-27 10:52:57.000000000 -06:00 type: post parent_id: '0' published: true password: '' status: publish categories: [] tags: [] meta: publicize_results: a:2:{s:7:"twitter";a:1:{i:14787941;a:2:{s:7:"user_id";s:8:"darribas";s:7:"post_id";s:18:"174054402720661504";}}s:2:"fb";a:1:{i:513130402;a:2:{s:7:"user_id";s:9:"513130402";s:7:"post_id";s:17:"10151332887860403";}}} _wpas_done_twitter: '1' _wpas_done_fb: '1' author: login: dreamessenceonthemove email<EMAIL_ADDRESS>display_name: darribas first_name: Daniel last_name: Arribas-Bel permalink: "/2012/02/27/review-concrete-desert/" ---
Concrete Desert by Jon Talton
My rating: 4 of 5 stars
I started reading 'Concrete Desert' at Lux Cafe on Central Av. (Phoenix) on a saturday morning and by sunday night I had finished it. For someone who's never been to Phoenix, the book will look no more (and no less) than a good thriller story with the twist of a PhD in history involved in it. Something like a book version of an episode of Cold Case that you can easily imagine turned into a movie; an American version of Millenium where the cold Swedish snow has been traded for the equally extreme July heat of the Valley of the Sun.
But for those whose life has somehow crossed the city, the book will uncover a rare extra layer of sense of place; it'll sketch a city overwhelmed by its own growth but that not very long ago was a small desert town in a remote place of which Evil didn't seem to be aware of. Clearly written by a native who grew up along with the suburban machine, Concrete Desert shows the local aspect of the city with probably the least "localness" of the world. And that in itself is worth much more than the dollar that Amazon will charge you for reading in on a screen.


📱 Get the app
Log in
Sign up
zomato
Discover the best food & drinks in Kingman, KS
Popular localities in and around Kingman, Kansas
Get the Zomato App
We will send you a link, open it on your phone to download
the app.
Email
Phone
Share App Link
Download app from
Explore other options for you here
Popular cuisines near me
American food near me
BBQ food near me
Bar food near me
Burger food near me
Cafe food near me
Chinese food near me
Coffee and Tea food near me
Desserts food near me
German food near me
Greek food near me
Ice Cream food near me
Italian food near me
Japanese food near me
Mexican food near me
Pizza food near me
Sandwich food near me
Seafood food near me
Steak food near me
Sushi food near me
Tea food near me
Popular restaurant types near me
Bakeries near me
Bars near me
Cafés near me
Casual Dining near me
Dessert Shops near me
Fast Casual near me
Fast Food near me
Pizzerias near me
Quick Bites near me
Sandwich Shops near me
Taquerias near me
zomato
COMPANY
Who We Are
Blog
Careers
Report Fraud
Investor Relations
FOR FOODIES
Code of Conduct
Community
Blogger Help
Mobile Apps
FOR RESTAURANTS
Add restaurant
Business App
Restaurant Widgets
Products for Businesses
Jobs
FOR YOU
Privacy
Terms
Security
SiteMap
SOCIAL LINKS
By continuing past this page, you agree to our Terms of Service, Cookie Policy, Privacy Policy and Content Policies. All trademarks are properties of their respective owners. 2008-2021 © Zomato™ Ltd. All rights reserved.


{% extends "tutorial.html" %} {% load mixin from templatefilters %} {% block pagebreadcrumb %}{{ tut.title }}{% endblock %} {% block head %} {% endblock %} {% block iscompatible %} return !!HTMLElement.prototype.createShadowRoot; {% endblock %} {% block html5badge %} {% endblock %} {% block share_image %} {% endblock %} {% block content %}
This article describes an old version of Shadow DOM (v0). If you're interested in using Shadow DOM, check out our new article at developers.google.com, "Shadow DOM v1: self-contained web components". It covers everything in the newer Shadow DOM v1 spec shipping in Chrome 53, Opera, and Safari 10.
This article discusses more of the amazing things you can do with Shadow DOM. It builds on the concepts discussed in Shadow DOM 101. If you're looking for an introduction, see that article.
Let's face it. There's nothing sexy about unstyled markup. Lucky for us, the brilliant folks behind Web Components foresaw this and didn't leave us hanging. The CSS Scoping Module defines many options for styling content in a shadow tree.
In Chrome, turn on the "Enable experimental Web Platform features" in about:flags to experiment with everything covered in this article.
One of the core features of Shadow DOM is the shadow boundary. It has a lot of nice properties, but one of the best is that it provides style encapsulation for free. Stated another way:
CSS styles defined inside Shadow DOM are scoped to the ShadowRoot. This means styles are encapsulated by default.
Below is an example. If all goes well and your browser supports Shadow DOM (it doesn't!), you'll see "Shadow DOM".

Light DOM

There are two interesting observations about this demo:
Moral of the story? We have style encapsulation from the outside world. Thanks Shadow DOM!
The :host
allows you to select and style the element hosting a shadow tree:
<button class="red">My Button</button>

One gotcha is that rules in the parent page have higher specificity than :host
rules defined in the element, but lower specificity than a style
attribute
defined on the host element. This allows users to override your styling from the outside.
:host
also only works in the context of a ShadowRoot so you can't use it outside of Shadow DOM.
The functional form of :host(<selector>)
allows you to target the host element if it matches a <selector>
.
Example - match only if the element itself has the class .different
(e.g.. <x-foo class="different"></x-foo>
):
:host(.different) {
...
}
A common use case for :host
is when you're creating a Custom Element and want to react to different user states (:hover, :focus, :active, etc.).

The :host-context(<selector>)
pseudo class matches the host element if it or any of its ancestors matches <selector>
.
A common use of :host-context()
is for theming an element based on its surrounds. For example,
many people do theming by applying a class to
or
:

<x-foo></x-foo>

You can :host-context(.different)
to style <x-foo>
when it's a descendant of an element with the class .different
:
:host-context(.different) {
color: red;
}
This gives you the ability encapsulate style rules in an element's Shadow DOM that uniquely style it, based on its context.
Another use for :host
is if you're creating a theming library and want to
support styling many types of host elements from within the same Shadow DOM.
:host(x-foo) {
/* Applies if the host is a <x-foo> element.*/
}
:host(x-foo:host) {
/* Same as above. Applies if the host is a <x-foo> element. */
}
:host(div) { {
/* Applies if the host element is a
. */
}
The ::shadow
pseudo-element and /deep/
combinator are like having a Vorpal sword of CSS authority.
They allow piercing through Shadow DOM's boundary to style elements within shadow trees.
If an element has at least one shadow tree, the ::shadow
pseudo-element matches the shadow root itself.
It allows you to write selectors that style nodes internal to an element's shadow dom.
For example, if an element is hosting a shadow root, you can write #host::shadow span {}
to style all of the spans within its shadow tree.

Light DOM

Example (custom elements) - <x-tabs>
has <x-panel>
children in its Shadow DOM. Each panel hosts its own shadow tree containing h2
headings. To style those headings from the main page, one could write:
x-tabs::shadow x-panel::shadow h2 {
...
}
The /deep/
combinator is similar to ::shadow
, but more powerful. It completely ignores all shadow boundaries and crosses into any number of shadow trees. Put simply, /deep/
allows you to drill into an element's guts and target any node.
The /deep/
combinator is particularly useful in the world of Custom Elements where it's common to have multiple levels of Shadow DOM. Prime examples are nesting a bunch of custom elements (each hosting their own shadow tree) or creating an element that inherits from another using <shadow>
.
Example (custom elements) - select all <x-panel>
elements that are descendants of
<x-tabs>
, anywhere in the tree:
x-tabs /deep/ x-panel {
...
}
Example - style all elements with the class .library-theme
, anywhere in a shadow tree:
body /deep/ .library-theme {
...
}
Just like .shadowRoot
opens
shadow trees up for DOM traversal, the combinators open shadow trees for selector traversal.
 Many people simply give up
and roll their own. However, with ::shadow
and /deep/
, any element in the web platform that
uses Shadow DOM can be styled. Great examples are the <input>
types and <video>
:
video /deep/ input[type="range"] {
background: hotpink;
}
Do the::shadow
pseudo-element and/deep/
combinator defeat the purpose of style encapsulation? Out of the box, Shadow DOM prevents accidental styling from outsiders but it never promises to be a bullet proof vest. Developers should be allowed to intentionally style inner parts of your Shadow tree...if they know what they're doing. Having more control is also good for flexibility, theming, and the re-usability of your elements.
Customization is good. In certain cases, you may want to poke holes in your Shadow's styling shield and create hooks for others to style.
There's a lot of power behind /deep/
. It gives component authors a way to designate
individual elements as styleable or a slew of elements as themeable.
Example - style all elements that have the class .library-theme
, ignoring all shadow trees:
body /deep/ .library-theme {
...
}
{% comment %}
Both WebKit and
Firefox define pseudo elements for styling internal pieces of native browser elements. A good example
is the input[type=range]
. You can style the slider thumb blue by targeting ::-webkit-slider-thumb
:
input[type=range].custom::-webkit-slider-thumb {
-webkit-appearance: none;
background-color: blue;
width: 10px;
height: 40px;
}
Similar to how browsers provide styling hooks into some internals, authors of Shadow DOM content can designate certain elements as styleable by outsiders. This is done through custom pseudo elements.
You can designate an element as a custom pseudo element by using the pseudo
attribute.
Its value, or name, needs to be prefixed with "x-". Doing so creates
an association with that element in the shadow tree and gives outsiders a
designated lane to cross the shadow boundary.
Here's an example of creating a custom slider widget and allowing someone to style its slider thumb blue:

What's really neat about custom pseudo elements? You can style them with outside CSS but can't access them via outside JS. The shadow boundary is preserved for JS but loosened for custom pseudo element definitions.
{% endcomment %}
A powerful way to create theming hooks will be through CSS Variables. Essentially, creating "style placeholders" for other users to fill in.
Imagine a custom element author who marks out variable placeholders in their Shadow DOM. One for styling an internal button's font and another for its color:
button {
color: var(--button-text-color, pink); /* default color will be pink */
font-family: var(--button-font);
}
Then, the embedder of the element defines those values to their liking. Perhaps to match the super cool Comic Sans theme of their own page:
#host {
--button-text-color: green;
--button-font: "Comic Sans MS", "Comic Sans", cursive;
}
Due to the way CSS Variables inherit, everything is peachy and this works beautifully! The whole picture looks like this:

Host node

I've already mentioned Custom Elements a few times in this article. For now, just know that Shadow DOM forms their structural foundation by providing styling and DOM encapsulation. The concepts here pertain to styling Custom Elements.
{% comment %}
Inheritable styles like fonts, colors, and line-heights continue to affect elements
in the Shadow DOM. However for maximum flexibility, Shadow DOM gives us the
resetStyleInheritance
property to control what happens at the shadow boundary.
Think of it as a way to start fresh when creating a new component.
resetStyleInheritance
false
- Default. inheritable CSS properties continue to inherit.true
- resets inheritable properties to initial
at the boundary.Below is a demo that shows how the shadow tree is affected by changing resetStyleInheritance
:

Light DOM

Understanding .resetStyleInheritance
is a bit trickier, primarily because it
only has an affect on CSS properties which are inheritable. It says: when
you're looking for a property to inherit, at the boundary between the page and
the ShadowRoot, don't inherit values from the host but use the initial
value instead (per the CSS spec).
If you're unsure about which properties inherit in CSS, check out this handy list or toggle the "Show inherited" checkbox in the Element panel. {% endcomment %}
Distributed nodes are elements that render at an insertion point (a <content>
element). The <content>
element allows you to select nodes from the Light DOM and render them at predefined locations in your Shadow DOM. They're not logically in the Shadow DOM; they're still children of the host element. Insertion points are just a rendering thing.
Distributed nodes retain styles from the main document. That is, style rules from the main page continue to apply to the elements, even when they render at an insertion point. Again, distributed nodes are still logically in the light dom and don't move. They just render elsewhere. However, when the nodes get distributed into the Shadow DOM, they can take on additional styles defined inside the shadow tree.
Distributed nodes are children of the host element, so how can we target
them from within the Shadow DOM? The answer is the CSS ::content
pseudo element.
It's a way to target Light DOM nodes that pass through an insertion point. For example:
::content > h3
styles any h3
tags that pass through an insertion point.
Let's see an example:

Light DOM

I'm not underlined

I'm underlined in Shadow DOM!

I'm underlined in Shadow DOM!
You should see "Shadow DOM" and "Light DOM" below it. Also note that "Light DOM" is still retaining the styles (margins etc.) defined on this page. That's because the page's styles still match!
{%comment%}
When creating a ShadowRoot, you have the option of resetting the inherited styles.
<content>
and <shadow>
insertion points also have this option. When using
these elements, either set the .resetStyleInheritance
in JS or use the boolean
reset-style-inheritance
attribute on the element itself.
For a ShadowRoot or <shadow>
insertion points: reset-style-inheritance
means inheritable CSS properties are set to initial
at the host, before they
hit your shadow content. This location is known as the upper boundary.
For <content>
insertion points: reset-style-inheritance
means inheritable
CSS properties are set to initial
before the host's children are distributed
at the insertion point. This location is known as the lower boundary.
{%endcomment%}
Remember: styles defined in the host document continue to apply to nodes they target, even when those nodes get distributed "inside" the Shadow DOM. Going into an insertion point doesn't change what's applied.
As authors of custom elements, we have a ton of options for controlling the look and feel of our content. Shadow DOM forms the basis for this brave new world.
Shadow DOM gives us scoped style encapsulation and a means to let in as much (or as little) of the outside world as we choose. By defining custom pseudo elements or including CSS Variable placeholders, authors can provide third-parties convenient styling hooks to further customize their content. All in all, web authors are in full control of how their content is represented.
Thanks to Dominic Cooney and Dimitri Glazkov for reviewing the content of this tutorial.
{% block relatedreading %} {% endblock %}
{% endblock %}


Guitr.js
Needs Canvas Support
Info
E
G#
B
D
Position
Low limit fret
No limit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
High limit fret
No limit
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
Skip String
6
5
4
3
2
1
Key
C
C#
D
D#
E
F
F#
G
G#
A
A#
B
Chord
Scale
Interval
Tuning
Standard
Standard (Hendrix-tuned)
Standard (detuned to D)
C6/A7 (steel guitar)
Drop D
DADGAD
Sebastapol (open D)
Sebastapol (open E)
Spanish (open G)
Spanish (open A)
Dobro (open G)
Dobro (open A)
New Standard Tuning
Orkney Tuning
Baritone (B)
Baritone (C#)
Scale/Mode
Chromatic
Major
Minor
Harmonic Minor
Pentatonic Major
Pentatonic Minor
Blues (pentatonic minor)
Bebop Scale
Traditional Japanese
Hungarian Minor
Arabian
Whole Tone
Whole/Half
Lydian Mode
Ionian Mode
Mixolydian Mode
Dorian Mode
Aeolian Mode
Phrygian Mode
Locrian Mode
Lydian b7
Altered
Summetrical Diminished
"B.B. Box"
s
Harmonic Minor
Japanese
Chinese
Phyrygian Dominant
Gypsy
Persian
Chord/Interval
Note
Fifth
Major
Minor
Diminished
Dominant Seventh
Major Seventh
Minor Seventh
Diminished Seventh
Augmented
Suspended 2nd
Suspended 4th
6th
6/9
Ninth
Major Ninth
Minor Ninth
Add Ninth/Mu Chord
Eleventh
Major Eleventh
Minor Eleventh
Thirteenth
Intervals
Root
Minor 2nd
Major 2nd
Minor 3rd
Major 3rd
Perfect 4th
Flat 5th/Tritone
Perfect 5th
Minor 6th
Major 6th
Dominant 7
Major 7


Saturday's Best Bet: Thousand Words should have big say in Bob Hope
by Jarrod HorakSaturday’s 8th race from Del Mar is the Grade 3 Bob Hope Stakes for 2-year-olds dashing seven furlongs on the main track (Post Time - 7:03 p.m. ET).
Click here for Del Mar Entries & Results
#3 THOUSAND WORDS (7-5) was a professional winner in his 6.5 furlong bow at Santa Anita Oct. 26. In that race, he stalked from the outside post and smartly wore down experienced foe Thunder Code, and the show finisher was more than six lengths back. Flavien Prat sticks with Bob Baffert’s $1 million purchase, and he could easily take a step forward and win a stakes race second time out.
#1 Rager (12-1) stalked and pulled off a 19-1 upset in his turf sprint bow Oct. 20. Andrew Lerner has good stats with his turf/dirt starters, and with his recent graduates trying winners for the first time.
#5 High Velocity (5-2) is a $350k Keeneland sales grad exiting an easy debut victory as the chalk. Drayden Van Dyke wins races with Bob Baffert, and he should be forwardly placed.
#6 Strongconstitution (9-5) went all the way in his five panel turf bow, and just missed while well clear of the show in the restricted Sunny Slope at six furlongs on dirt Oct. 20. He drew well and projects an outside tactical trip under Abel Cedillo. He drilled a local bullet for this Nov. 9.
#4 Zimba Warrior (12-1) finished a non-threatening 3rd in the Sunny Slope. He will probably like seven panels but will have to run faster to compete here.
Wagers:
Exact 3-1
November 2019 Best Bet Winners
Nov 4 - KARSAVINA ($9.60), Quinella ($15.80)
Nov 5 - MISCHEVIOUS ALEX ($7.00)
Nov 6 - FINAL CUT ($8.00), Trifecta ($47.80)
Nov 7 - HAY FIELD ($7.50), Exacta ($20.80)
Nov 10 - FLY SO PRETTY ($23.20), Exacta ($79.50)


BY EDWIN JAHIEL
KIKUJIRO (Kikujro no natsu) (Japan, 1999) ***. Directed, written, edited by Takeshi Kitano. Photography, Katsumi Yanagishima. Art editor, Norihiro Isoda. Music, Joe Hisaishi. Cast: Beat Takeshi (Kikujiro), Yusuke Sekiguchi (Masao), et al. In Japanese, with subtitles. A Sony release. 116 minutes. PG-13.
Takeshi Kitano (b. 1947) is now probably the best-known media person in Japan. He started out in a comedy-club stand-up duo "The Two Beats" which went on to television. "Beat Takeshi," became one of the names Kitano uses as an actor. He then became a TV superstar ( to this day he appears in 8 programs a week), a movie actor and a director-writer-editor as well as a literary person and a cartoonist and painter, Some of his art work can be seen in "Kikujiro." The Kitano cult in Japan roughly approximates the American enthusiasm for Quentin Tarantino, with whom Kitano superficially shares violence and cool. But Kitano consciously changes styles. He prefaces the notes on "Kikujiro" with this statement::
"After 'Hana-Bi' ['Fireworks'] I couldn't help feeling that my films were being stereotyped: 'gangster, violence, life and death.' It becomes difficult for me to identify with them. So I decided to try and make a film no one would expect from me. To tell the truth, the story of this film belongs to a genre which is outside my specialty. But I decided to make this film because it would be a challenge for me to cope with this ordinary story and try to make it my very own through my direction, and I tried lots of experiments with imagery. I think it ended up being a very strange film with my trademark all over it. I hope to continue upsetting people's expectations in a positive way."
The genre Kitano refers to is the old one about a kid bonding with an adult. The many reviewers of "Kikujiro" have mentioned a plethora of titles. although no one seems to remember one of the best, the French "The Two of Us." The reviews have been overall middling to negative, which is unfair.
Summer holidays finds Tokyo schoolboy Masao at loose ends, bereft of pals and things to do. He is also bereft of a mother. She's stepped out of his life long ago, left him with his grandma, a working woman, yet regularly sends money for the kid. Masao is nine, a bit fat by Japanese standards, a bit short by American standards, a bit moody and pretty quiet by any standards. He decides to go and visit his mother.
From this point on the spectator must forget about realism, verissimilitude and logic. Grandma has a friend whose middle-aged husband Kikujiro is a fellow who strikes rough poses, is gruff, insulting and aggressive, but probably has a heart of deeply hidden gold. The wife orders him to accompany the kid's peregrinations, so that we get a sort of road movie with semi-picaresque sides.
The film is, depending on your reactions, slow, leisurely, with an oriental tempo (whatever that is), sweet, full of chutzpah (amply provided by Kikujiro), improbable, absurd but nice, absurd and irritating, charming but predictable, charming and full of surprises, unreal, surreal, silly, dull, quietly exciting and inventive, and so on...
I will not get into details, descriptions or even an outline. My own reaction to the movie is most positive. I like its quiet surprises, a great deal of subtly humorous inventions, a few cliches and many anti-cliches, the rough but not objectionable edges, sparse dialogue, and its originality disguised as deja vu. The main annoyance is not the story but a simple, very nice jazz-like music score (piano and strings) by the director's pal and collaborator. This gets repeated so incredibly often that with all due respect to the most talented Kitano, you wonder about his musical ear. Otherwise, this movie is one that I enjoyed at the 1999 Cannes Festival and which I just saw again with undiminished pleasure.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


This port is situated on the northern shore of the Laitimore Peninsular, which forms the southern third of the island of Ambon.
Ambon suffered with riots some years ago, but cruisers visiting since 2013 have reported that Ambon is now peaceful and an interesting place to visit.
Position 3°42’S 128°10’E
This is is an official Port of Entry.
NEW Indonesian CIQP procedures came into effect from the 27th February, 2016.
A CAIT, Green Book/Sailing Permit and use of an Agent to obtain clearance papers are no longer required. See Noonsite Indonesia Formalities for full details.
This is useful port for clearing in or out (internationally) of Indonesia.
To clear in, take your clearance permit to the Harbourmaster.
To clear out, visit Immigration (4 copies of the crew list plus usual papers), then Quarantine and finally, visit the Harbourmaster.
The Harbourmaster and Quarantine offices are almost opposite each other at the entrance to Pelni Port.
Immigration
The get to their office, Ttke a Bemo to the "Terminal". Then take Bus #12. Ask if they will take you to 'Imigrasi Kantor". It will be up a hill, behind gates on the right hand side.
To get a Visa extension, it is currently unclear what paperwork you will need when you visit their office.
You will then be given 2 papers, you take them to the cashier and pay 300,000 rupiahs per passport. After a short wait, you take the stamped paperwork back to the front. You will then be advised when you can collect your passport. When you return to collect your passport, the officials will request a copy of the stamped page (they do not have a copier in their own office!). There is a a place just down the road across from the hospital where a copy can be made for less than 1000 Rp. Being obliging about this will keep you, the officials and the cruisers following in your wake, happy.
For a cruiser's experience on extending a visa here - see report January 2015 on Indonesian Officialdom, however, with the new regulations, the situation may have changed.
Last updated March 2016.
A swell often works its way into the harbour here and there can be frequent squalls.
Anchoring off Anahusu Beach (where the Darwin Ambon Rally finishes) is a beautiful spot and adequate in settled weather, however holding here is very patchy. Anchor on a shelf of coral very close to shore in approx. 20m. This is a long way from town.
A quieter more protected anchorage is to be found by passing through the channel in the NE corner of the harbour into an inner lagoon. The best shelter is to be found along the west, north and north east shores. The bottom is sand/mud, approx. 15m.
The Marine Police dock and station here (approx. 03 38.3811 S / 128 14.3379 E) have a dock which they may permit you to use for dinghy landing. The Police may also be able to assist with fuel.
An alternative to anchoring in the harbour, is to anchor in the bay to the east of Passo. This is a large sandy bay with depths from 5 to 10m. Access to Ambon is excellent using the local minivan transport ("bemos").
Last updated June 2016.


ÁVision Build Log
Tool Versions:
IDE-Version: Ž╠Vision V<IP_ADDRESS> Copyright (C) 2017 ARM Ltd and ARM Germany GmbH. All rights reserved. License Information: gao bo, HIT, LIC=EPYBS-L50GD-FAKD6-DA4D0-P51I9-PPTGW Tool Versions: Toolchain: MDK51 Professional Version: <IP_ADDRESS> Toolchain Path: C:\Keil_v5\C51\BIN C Compiler: C51.exe V<IP_ADDRESS> Assembler: A51.exe V<IP_ADDRESS> Linker/Locator: BL51.exe V<IP_ADDRESS> Library Manager: LIB51.exe V<IP_ADDRESS> Hex Converter: OH51.exe V<IP_ADDRESS> CPU DLL: S8051.DLL V<IP_ADDRESS> Dialog DLL: DP51.DLL V<IP_ADDRESS>Project:
C:\Users\lenovo\Desktop\LPF\LPF_keil.uvproj Project File Date: 02/10/2020Output:
Rebuild target 'Target 1' assembling STARTUP.A51... compiling main.c... compiling LPF.c... compiling LPF_data.c... compiling rt_nonfinite.c... rt_nonfinite.c(38): warning C275: expression with possibly no effect compiling rtGetInf.c... compiling rtGetNaN.c... linking... *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?LPF_TERMINATE?LPF *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_RTISINFF?RT_NONFINITE *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_RTISNANF?RT_NONFINITE Program Size: data=105.0 xdata=0 code=3025 creating hex file from ".\Objects\LPF_keil"... ".\Objects\LPF_keil" - 0 Error(s), 4 Warning(s). Build Time Elapsed: 00:00:01


VisitorChain
public struct VisitorChain<Graph, Head: GraphVisitor, Tail: GraphVisitor>: GraphVisitor
where Head.Graph == Graph, Tail.Graph == Graph
extension VisitorChain: TreeSearchVisitor where Head: TreeSearchVisitor, Tail: TreeSearchVisitor
extension VisitorChain: DFSVisitor where Head: DFSVisitor, Tail: DFSVisitor
extension VisitorChain: BFSVisitor where Head: BFSVisitor, Tail: BFSVisitor
extension VisitorChain: DijkstraVisitor where Head: DijkstraVisitor, Tail: DijkstraVisitor
A chain of two graph visitors of different types.
-
The first visitor in the chain.
Declaration
Swift
public private(set) var head: Head
-
The rest of the chain.
Declaration
Swift
public private(set) var tail: Tail
-
Builds a chain of
DFSVisitor
s, composed ofHead
, andTail
.Declaration
Swift
public init(_ head: Head, _ tail: Tail)
-
discover(vertex:_:)
is called upon first discoveringvertex
in the graph.Declaration
Swift
public mutating func discover(vertex: Graph.VertexId, _ graph: inout Graph) throws
-
Called when
vertex
is at the front of the queue and is examined.Declaration
Swift
public mutating func examine(vertex: Graph.VertexId, _ graph: inout Graph) throws
-
Called for each edge associated with a freshly discovered vertex.
Declaration
Swift
public mutating func examine(edge: Graph.EdgeId, _ graph: inout Graph) throws
-
Called once for each vertex right after it is colored black.
Declaration
Swift
public mutating func finish(vertex: Graph.VertexId, _ graph: inout Graph) throws
-
start(vertex:_:)
is called once for each start vertex.In the case for single-source search,
start(vertex:_:)
will be called exactly once. In cases where search may begin at multiple verticies (e.g. BreadthFirstSearch),start
will be called once for each start vertex.Declaration
Swift
public mutating func start(vertex: Graph.VertexId, _ graph: inout Graph) throws
-
Called for each edge that discovers a new vertex.
These edges form the search tree.
Declaration
Swift
public mutating func treeEdge(_ edge: Graph.EdgeId, _ graph: inout Graph) throws
-
Called for each back edge in the search tree.
Declaration
Swift
public mutating func backEdge(_ edge: Graph.EdgeId, _ graph: inout Graph) throws
-
Called for edges that are forward or cross edges in the search tree.
Declaration
Swift
public mutating func forwardOrCrossEdge(_ edge: Graph.EdgeId, _ graph: inout Graph) throws
-
Retrieves the next vertex to visit.
Declaration
Swift
public mutating func popVertex() -> Graph.VertexId?
-
Called for each non-tree edge encountered.
Declaration
Swift
public mutating func nonTreeEdge(_ edge: Graph.EdgeId, _ graph: inout Graph) throws
-
Called for each edge with a gray destination
Declaration
Swift
public mutating func grayDestination(_ edge: Graph.EdgeId, _ graph: inout Graph) throws
-
Called for each edge with a black destination.
Declaration
Swift
public mutating func blackDestination(_ edge: Graph.EdgeId, _ graph: inout Graph) throws
-
Called for each edge that results in a shorter path to its destination vertex.
Declaration
Swift
public mutating func edgeRelaxed(_ edge: Graph.EdgeId, _ graph: inout Graph) throws
-
Called for each edge that does not result in a shorter path to its destination vertex.
Declaration
Swift
public mutating func edgeNotRelaxed(_ edge: Graph.EdgeId, _ graph: inout Graph) throws