Class WpfTextBuilder
Inheritance
WpfTextBuilder
Assembly: SharpVectors.Rendering.Wpf.dll
Syntax
public abstract class WpfTextBuilder
Constructors
WpfTextBuilder(CultureInfo, Double)
Declaration
protected WpfTextBuilder(CultureInfo culture, double fontSize)
Parameters
WpfTextBuilder(CultureInfo, String, Double, Uri)
Declaration
protected WpfTextBuilder(CultureInfo culture, string fontName, double fontSize, Uri fontUri = null)
Parameters
Fields
_buildPathGeometry
Declaration
protected bool _buildPathGeometry
Field Value
_culture
Declaration
protected CultureInfo _culture
Field Value
_dpiX
Declaration
protected readonly double _dpiX
Field Value
_dpiY
Declaration
protected readonly double _dpiY
Field Value
_fontName
Declaration
protected readonly string _fontName
Field Value
_fontSize
Declaration
protected readonly double _fontSize
Field Value
_fontUri
Declaration
protected readonly Uri _fontUri
Field Value
_textDecorations
Declaration
protected TextDecorationCollection _textDecorations
Field Value
Properties
Alphabetic
Declaration
public abstract double Alphabetic { get; }
Property Value
Ascent
Declaration
public abstract double Ascent { get; }
Property Value
Baseline
Gets the distance from the top of the first line to the baseline of the first
line of a WpfTextBuilder object.
Declaration
public virtual double Baseline { get; }
Property Value
| Type |
Description |
| Double |
The distance from the top of the first line to the baseline of the first line,
provided in device-independent units (1/96th inch per unit).
|
BuildPathGeometry
Declaration
public bool BuildPathGeometry { get; set; }
Property Value
Culture
Declaration
public CultureInfo Culture { get; }
Property Value
DpiScaleX
Gets the DPI scale on the X axis.
Declaration
public double DpiScaleX { get; }
Property Value
| Type |
Description |
| Double |
The DPI scale for the X axis.
|
DpiScaleY
Gets the DPI scale on the Yaxis.
Declaration
public double DpiScaleY { get; }
Property Value
| Type |
Description |
| Double |
The DPI scale for the Y axis.
|
FlowDirection
Gets or sets the System.Windows.FlowDirection of a WpfTextBuilder object.
Declaration
public FlowDirection FlowDirection { get; set; }
Property Value
| Type |
Description |
| FlowDirection |
The System.Windows.FlowDirection of the formatted text.
|
FontFamilyType
Declaration
public abstract WpfFontFamilyType FontFamilyType { get; }
Property Value
FontName
Declaration
public string FontName { get; }
Property Value
FontSize
Declaration
public double FontSize { get; }
Property Value
FontSizeInPoints
Declaration
public double FontSizeInPoints { get; }
Property Value
FontUri
Declaration
public Uri FontUri { get; }
Property Value
IsBoldSimulated
Gets a value that determines whether to simulate a bold weight for the glyphs represented by the typeface.
Declaration
public abstract bool IsBoldSimulated { get; }
Property Value
| Type |
Description |
| Boolean |
true if bold simulation is used for glyphs; otherwise, false.
|
IsObliqueSimulated
Gets a value that determines whether to simulate an italic style for the glyphs represented by the typeface.
Declaration
public abstract bool IsObliqueSimulated { get; }
Property Value
| Type |
Description |
| Boolean |
true if italic simulation is used for glyphs; otherwise, false.
|
OverlinePosition
Gets a value that indicates the distance of the overline from the baseline for the typeface.
Declaration
public abstract double OverlinePosition { get; }
Property Value
| Type |
Description |
| Double |
A Double that indicates the overline position, measured from the baseline
and expressed as a fraction of the font em size.
|
OverlineThickness
Gets a value that indicates the thickness of the overline relative to the font em size for the typeface.
Declaration
public abstract double OverlineThickness { get; }
Property Value
| Type |
Description |
| Double |
A Double that indicates the overline thickness, expressed as a fraction
of the font em size.
|
PixelsPerDip
Get or sets the PixelsPerDip at which the text should be rendered.
Declaration
public double PixelsPerDip { get; }
Property Value
| Type |
Description |
| Double |
The current PixelsPerDip value.
|
PixelsPerInchX
Gets the DPI along X axis.
Declaration
public double PixelsPerInchX { get; }
Property Value
| Type |
Description |
| Double |
The DPI along the X axis.
|
PixelsPerInchY
Gets the DPI along Y axis.
Declaration
public double PixelsPerInchY { get; }
Property Value
| Type |
Description |
| Double |
The DPI along the Y axis.
|
StrikethroughPosition
Gets a value that indicates the distance from the baseline to the strikethrough for the typeface.
Declaration
public abstract double StrikethroughPosition { get; }
Property Value
| Type |
Description |
| Double |
A Double that indicates the strikethrough position, measured from the baseline and expressed
as a fraction of the font em size.
|
StrikethroughThickness
Gets a value that indicates the thickness of the strikethrough relative to the font em size.
Declaration
public abstract double StrikethroughThickness { get; }
Property Value
| Type |
Description |
| Double |
A Double that indicates the strikethrough thickness, expressed as a fraction
of the font em size.
|
TextAlignment
Declaration
public TextAlignment TextAlignment { get; set; }
Property Value
| Type |
Description |
| TextAlignment |
One of the System.Windows.TextAlignment values that specifies the alignment of
text within a WpfTextBuilder object.
|
TextDecorations
Sets the System.Windows.TextDecorationCollection for the entire set of characters
in the WpfTextBuilder object.
Declaration
public TextDecorationCollection TextDecorations { get; set; }
Property Value
Trimming
Gets or sets the means by which the omission of text is indicated.
Declaration
public TextTrimming Trimming { get; set; }
Property Value
| Type |
Description |
| TextTrimming |
One of the System.Windows.TextTrimming values that specifies how the omission
of text is indicated. The default is System.Windows.TextTrimming.WordEllipsis.
|
UnderlinePosition
Gets a value that indicates the distance of the underline from the baseline for the typeface.
Declaration
public abstract double UnderlinePosition { get; }
Property Value
| Type |
Description |
| Double |
A Double that indicates the underline position, measured from the baseline
and expressed as a fraction of the font em size.
|
UnderlineThickness
Gets a value that indicates the thickness of the underline relative to the font em size for the typeface.
Declaration
public abstract double UnderlineThickness { get; }
Property Value
| Type |
Description |
| Double |
A Double that indicates the underline thickness, expressed as a fraction
of the font em size.
|
Width
Declaration
public abstract double Width { get; }
Property Value
XHeight
Gets the distance from the baseline to the top of an English lowercase letter for a typeface.
The distance excludes ascenders.
Declaration
public abstract double XHeight { get; }
Property Value
| Type |
Description |
| Double |
A Double that indicates the distance from the baseline to the top of an
English lowercase letter (excluding ascenders), expressed as a fraction of the font em size.
|
XmlLang
Declaration
public string XmlLang { get; }
Property Value
Methods
Build(SvgTextContentElement, String, Double, Double)
Declaration
public abstract Geometry Build(SvgTextContentElement element, string text, double x, double y)
Parameters
Returns
Create(WpfFontFamilyInfo, CultureInfo, Double)
Declaration
public static WpfTextBuilder Create(WpfFontFamilyInfo familyInfo, CultureInfo culture, double fontSize)
Parameters
Returns
Create(String, CultureInfo, Double)
Declaration
public static WpfTextBuilder Create(string familyInfo, CultureInfo culture, double fontSize)
Parameters
Returns
Create(FontFamily, CultureInfo, Double)
Declaration
public static WpfTextBuilder Create(FontFamily fontFamily, CultureInfo culture, double fontSize)
Parameters
Returns
Create(FontFamily, FontStyle, FontWeight, CultureInfo, Double)
Declaration
public static WpfTextBuilder Create(FontFamily fontFamily, FontStyle fontStyle, FontWeight fontWeight, CultureInfo culture, double fontSize)
Parameters
Returns
MeasureChars(SvgTextContentElement, String, Boolean)
Declaration
public abstract IList<Rect> MeasureChars(SvgTextContentElement element, string text, bool canBeWhitespace = true)
Parameters
Returns
MeasureText(SvgTextContentElement, String, Boolean)
Declaration
public abstract Size MeasureText(SvgTextContentElement element, string text, bool canBeWhitespace = true)
Parameters
Returns


Command Line Parameters
There are a number of command line options that may be passed to the pgAdmin executable
when starting it.
- -h Display command line option help.
- -s <server description> Auto connect to the specified server.
<server description> is the description entered when you added the server to
the treeview in pgAdmin, quoted if required. If multiple servers are
registered with the same description, the first found will be auto-connected.
- -S Open a Server Status window upon connection. If used
together with the -s <server description> option, the server status window
will automatically be connected to this server.
If used alone, a dialog box will appear prompting for the connection information.
This switch cannot be used together with the -Sc <connection string> option.
- -Sc <connection string> Open a Server Status window upon
connection. The server status window will automatically be connected to the
server specified in the connection string. This option cannot be used together
with the -S switch.
- -q Open a Query Tool window upon connection. If used
together with the -s <server description> option, the query tool
will automatically be connected to this server.
If used alone, a dialog box will appear prompting for the connection
information. This switch cannot be used together with the -qc
<connection string> option.
- -qc <connection string> Open a Query Tool window upon
connection. The query tool will automatically be connected to the server
specified in the connection string. This option cannot be used together with
the -q switch.
- -f <SQL script> Automatically open the specified SQL script in the
Query Tool. Only useful with -q or -qc.
- -ch <hba file> Edit the specified pg_hba.conf config file.
- -cm <config file> Edit the specified postgresql.conf config file.
- -cp <pgpass file> Edit the specified .pgpass/pgpass.conf config file.
- -c <dir> Edit the config files in specified cluster directory.
- -t Start in dialogue translation test mode. This mode allows each dialogue
to be viewed without running the application to assist with string translation.


--- title: "ggplot2: exploration of the group aesthetics" author: "Ildi Czeller" date: '2017-01-08' categories: ["R"] tags: ["ggplot2"] ---
I have made several plots with ggplot2
in the past 2 years and occasionally got errors related to the group aesthetics. I solved these issues without once taking the time to fully understand how the group aesthetic works. This blogpost is a result of my experiments to finally explore how it works. My understanding is a combination of my experiments and Hadley Wickhams outstanding book about ggplot2. (https://github.com/hadley/ggplot2-book)
Our dummy data will be a unit square. We labeled its points as common in maths: counter-clockwise.
dt <- data.table(
x = c(0, 0, 1, 1),
y = c(0, 1, 0, 1),
grp = c('red', 'blue', 'blue', 'red'),
id = c('A', 'D', 'B', 'C')
)
dt %>% ggplot(aes(x, y, col = I(grp))) +
geom_point(size = 3) +
geom_label(aes(label = id), vjust = "inward", hjust = "inward")
We may want to join the points with segments. By default, the line geom inherits the color argument from the call to ggplot
. The group aesthetic is a combination of all discrete mappings, in this case the default group for the line geom will be the same as for the colors.
dt %>% ggplot(aes(x, y, col = I(grp))) +
geom_point(size = 3) +
geom_line() +
geom_label(aes(label = id), vjust = "inward", hjust = "inward")
We may want to link the points with segments joining together. One option is to overwrite the color mapping for this layer.
dt %>% ggplot(aes(x, y, col = I(grp))) +
geom_point(size = 3) +
geom_line(aes(col = NULL)) +
geom_label(aes(label = id), vjust = "inward", hjust = "inward")
Another option is to overwrite the silently set group
aesthetic and setting it constant. This way the segments will inherit their color from their (left) neighbour point.
dt %>% ggplot(aes(x, y, col = I(grp))) +
geom_point(size = 3) +
geom_line(aes(group = 'arbitrary_constant_value')) +
geom_label(aes(label = id), vjust = "inward", hjust = "inward")
What order are the points linked? Now left-to-right, and order of appearance in data is coincidentally the same order as the points appear in the dataset, so we have to make further experiments.
dt_mixed <- data.table(
x = c(1, 0, 1, 0),
y = c(1, 0, 0, 1),
grp = c('red', 'red', 'blue', 'blue'),
id = c('A', 'C', 'B', 'D')
)
dt_mixed %>% ggplot(aes(x, y, col = I(grp))) +
geom_point(size = 3) +
geom_line(aes(group = 'arbitrary_constant_value')) +
geom_label(aes(label = id), vjust = "inward", hjust = "inward")
We can safely conclude that the order in which the points are linked is left-to-right, order of appearance.
A slightly different case when the aesthetic defined in the ggplot
call is not applicable to lines. It will still effect the silently set group aesthetics.
dt %>% ggplot(aes(x, y, pch = grp)) +
geom_point(size = 3) +
geom_line() +
geom_label(aes(label = id), vjust = "inward", hjust = "inward")
We can still overwrite the pch
aesthetics in the geom_line
call thus silently unsetting the group
variable.
dt %>% ggplot(aes(x, y, pch = grp)) +
geom_point(size = 3) +
geom_line(aes(pch = NULL)) +
geom_label(aes(label = id), vjust = "inward", hjust = "inward")
However in this case explicitly setting the group
aesthetics is inarguably more clear. We even got a warning saying “Ignoring unknown aesthetics: shape”.
dt %>% ggplot(aes(x, y, pch = grp)) +
geom_point(size = 3) +
geom_line(aes(group = 1)) +
geom_label(aes(label = id), vjust = "inward", hjust = "inward")
What happens when the group variable is a combination of more mappings?
To join the points in a group with line segments we need at least two points so we need to define a slightly bigger dataset to experiment with.
dt <- data.table(
x = c(0,2,4,5,4,2,0,-1),
y = c(0,-1,0,2,4,5,4,2),
grp_1 = c('red','blue','red','blue','red','blue','red','blue'),
grp_2 = c(2,2,4,4,2,2,4,4),
id = LETTERS[1:8]
)
dt %>% ggplot(aes(x, y, col = I(grp_1), size = I(grp_2))) +
geom_point() +
geom_label(aes(label = id), vjust = "inward", hjust = "inward")
By default we will have 2 group of 4 points linked together: one group for each value of the discrete variable used in the aesthetics call in ggplot
.
dt %>% ggplot(aes(x, y, col = I(grp_1), size = I(grp_2))) +
geom_point() +
geom_line() +
geom_label(aes(label = id), vjust = "inward", hjust = "inward")
One option is to overwrite the color and size mapping in geom_line
:
dt %>% ggplot(aes(x, y, col = I(grp_1), size = I(grp_2))) +
geom_point() +
geom_line(aes(col = NULL, size = NULL)) +
geom_label(aes(label = id), vjust = "inward", hjust = "inward")
Another option is to set the group aesthetics to a constant:
dt %>% ggplot(aes(x, y, col = I(grp_1), size = I(grp_2))) +
geom_point() +
geom_line(aes(group = 1)) +
geom_label(aes(label = id), vjust = "inward", hjust = "inward")
dt <- data.table(
x = c(0,2,4,5,4,2,0,-1),
y = c(0,-1,0,2,4,5,4,2),
grp_1 = c('red','blue','red','blue','red','blue','red','blue'),
grp_2 = c('a', 'a', 'b', 'b', 'a', 'a', 'b', 'b'),
id = LETTERS[1:8]
)
By default we have 4 pair of pairwise linked points: one for each combination of the two discrete variables used in the aesthetics call of ggplot
.
dt %>% ggplot(aes(x, y, col = I(grp_1), pch = grp_2)) +
geom_point(size = 3) +
geom_line() +
geom_label(aes(label = id), vjust = "inward", hjust = "inward")
We can overwride one or two of these in the aes call in geom_line
:
dt %>% ggplot(aes(x, y, col = I(grp_1), pch = grp_2)) +
geom_point(size = 3) +
geom_line(aes(pch = NULL)) +
geom_label(aes(label = id), vjust = "inward", hjust = "inward")
dt %>% ggplot(aes(x, y, col = I(grp_1), pch = grp_2)) +
geom_point(size = 3) +
geom_line(aes(col = NULL, pch = NULL)) +
geom_label(aes(label = id), vjust = "inward", hjust = "inward")
We can also set the group aesthetics to constant or combine these two approaches.
dt %>% ggplot(aes(x, y, col = I(grp_1), pch = grp_2)) +
geom_point(size = 3) +
geom_line(aes(group = 1)) +
geom_label(aes(label = id), vjust = "inward", hjust = "inward")
dt %>% ggplot(aes(x, y, col = I(grp_1), pch = grp_2)) +
geom_point(size = 3) +
geom_line(aes(group = 1, pch = NULL)) +
geom_label(aes(label = id), vjust = "inward", hjust = "inward")
What happens if we specify the group
variable outside aes
?
dt %>% ggplot(aes(x, y, col = I(grp_1), pch = grp_2)) +
geom_point(size = 3) +
geom_line(group = 1) +
geom_label(aes(label = id), vjust = "inward", hjust = "inward")
The order in which the segments are linked has been changed. But to what? Let’s find out by targeted experiments.
dt %>% ggplot(aes(x, y, col = I(grp_1), pch = grp_2)) +
geom_point(size = 3) +
geom_line(group = 1, aes(col = NULL)) +
geom_label(aes(label = id), vjust = "inward", hjust = "inward")
dt %>% ggplot(aes(x, y, col = I(grp_1), pch = grp_2)) +
geom_point(size = 3) +
geom_line(group = 1, aes(pch = NULL)) +
geom_label(aes(label = id), vjust = "inward", hjust = "inward")
dt %>% ggplot(aes(x, y, col = I(grp_1), pch = grp_2)) +
geom_point(size = 3) +
geom_line(group = 1, aes(col = NULL, pch = NULL)) +
geom_label(aes(label = id), vjust = "inward", hjust = "inward")
This way in the background we still have the group in aesthetics: it has effect although we overwrote the effect of joining lines, we did not overwrote every effect of the aesthetics mapping. So the order in which the points are linked: first levels of the group, then left to right, then order of appearance in dataset. Check for yourself with the above examples!
e.g. blue < red, circle < triangle.
Group is the interaction of discrete variables set inside aes
unless explicitly overwritten.
The order in which the points are linked:


Use the Databound Select to create Select elements populated by databinding.
This text file:
Creates the OPTION elements in this SELECT element


Before you sign out, please complete this short survey to help us improve the service
The survey should take no more than 2 minutes
Don't include any personal or financial information, eg your name, address, bank or tax details or National Insurance number.


Work Experience
DePaul University
Chicago, IL
Developer(On-Campus job)
Independently investigated cross-platform solutions for the school’s online course system, built prototypes with HTML5, jQuery, ASP.NET, phoneGap, C# and Xamarin, created investigation document. Leading a small team to develop an online video share web application with Facebook React, jQuery and ASP.NET MVC. Finished the requirement and design document.
2014/09 - present
SAP Labs China
Shanghai, China
Senior Developer/Architect
Worked in GRC (Governance, Risk, and Compliance) Department, first acted as developer for SAP PC(Process Control), then moved to SAP GTS(Global Trade Service) and was promoted to architect later. Have the knowledge of other ERP modules: SD, MM, FI, HCM, etc. Key developer for PC dashboards built with BOBJ Dashboard(Xcelsius), supporter engineer for core function of GTS SPL. Lead team to finish the development for China localization of GTS. Created design and technical documents, transferred GTS knowledge to team members, communicated smoothly with internal/external stakeholders.
2009/10 - 2014/08
Infosys Technologies China
Shanghai, China
Senior Software Engineer
Joined Syngenta support team at first as software engineer, then transferred to MSSolve development team and was promoted to senior software engineer later. Led team to develop a newsletter subscription web application with ASP.NET. Fully took over maintenance task from India team, analyzed the complex requirements and enhanced the current system.
2007/11 - 2009/09
Personal Information
Software Architect with 10+ years in large scale software development and maintenance for a wide variety of companies. Exceptional skills and experience in planning, detailing, designing and programming, familiar with SDLC (software development life cycle). Proven remarkable ability in translating business requirements to technical solutions with excellent documentation and communication skills; proficient in both SAP Netweaver and Microsoft .NET platform. A self-motivated, independent-thinking team player and a quick learner.
Education
DePaul University
Chicago, IL, US
Master Degree in Computer Science (Full Scholarship), GPA: 3.9 (until present)
Graduate Coursework: Algorithms; Concepts of Programming Languages; OO Software Development; Database Technologies; Mining Big Data; iOS Development; Android Development; Distributed System; Intelligent Information Retrieval; Software Security Assessment;
2014/09 - 2016/06
East China University of Science & Technology
Shanghai, China
Bachelar Degree in Computer Science and Technology
Undergraduate Coursework: Computer Mathematics, Operating Systems; Algorithms; Programming Languages; Database; Data Structure, Principle of Software Engineering, Computer Networks, Computer Architecture, Parallel and Distributed Computing, System Software Design.
2000/09 – 2004/06
IT Skills
C#, ASP.NET MVC
SAP, ABAP, GTS
iOS(Swift), Android(Java)
Html5, javascript, bootstrap, ReactJs
PhoneGap/Cordova, Xamarin
Languages
Chinese
English
Japanese
Highlights & Additional Info
- Awarded 3rd prize with an ‘SAP dictionary’ app on Windows Phone, out of 15 competitors in 2011 Developer Challenge of SAP Labs China.
- Developed a multi-threaded elevator system with JAVA in the course of 'OO Software Development'.
- Analyzed data by using Hadoop MapReduce over Amazon EC2 in the course of 'Mining Big Data'.
- Built iOS Apps(eg. Remote TV controller, Travel Note) with Swift in the course of 'Mobile APP Dev For iOS'.
- Built Android Apps(eg. Remote TV controller, Restaurant Recommendation) with Java in the course of 'Mobile APP Dev For Android’. The Restaurant app communicates with data server which is built with ASP.NET MVC to get restaurant list, images, comments, etc.
- Built a Web Server through socket programming with Java in the course of ‘Distributed System’.


Overview of cpalgorithm¶
cpalgorithm is a Python package for finding core-periphery structure in networks.
cpalgorithm provides:
- various algorithms for finding single or multiple core-periphery pairs in networks, and
- statistical tests for detected core-periphery structure.
Despite the importance of core-periphery structure, a few software implements core-periphery detection algorithms. In many cases, authors provide the code for their algorithms independently. The aim of cpalgorithm is to provide an access to the algorithms, making the analysis of core-periphery structure easier.
Core-periphery structure¶
Core-periphery structure is a mesoscale structure of networks, where a core is a group of densely interconnected nodes, and a periphery is a group of sparsely interconnected nodes. The core can be densely interconnected with the periphery or not. Core-periphery structure has been found in various empirical networks such as social networks, biological networks and transportation networks [1]. For example, a political blog network [2] consists of two core-periphery pairs, each of which consists of the blogs sharing the same political agenda [3,4]. Each core-periphery pair consists of a set of core blogs that are linking each other and a set of peripheral blogs that links mainly to the core blogs.
In the worldwide airport network [5], there are 28 core-periphery pairs, each of which mostly consists of the airports in the same geographical region [3,4]. The core and peripheral ports largely correspond to the hubs and regional airports.
Core-periphery structure may play a crucial role in complex systems. For example, core-periphery structure is the most robust structure against random attacks to nodes [6]. Transportation networks with core-periphery structure are economically efficient [7].
References¶
- [1] P. Csermely, A. London, L.-Y. Wu, and B. Uzzi, J. Complex Netw. 1, 93 (2013).
- [2] L. A. Adamic and N. Glance, in Proceedings of the 3rd International Workshop on Link Discovery (ACM, New York, 2005), pp. 36–43.
- [3] S. Kojaku and N. Masuda, Phys. Rev. 96, 052313 (2017).
- [4] S. Kojaku and N. Masuda, N. J. Phys. 20, 043012 (2018).
- [5] T. Opsahl, “Why Anchorage is not (that) impor- tant: Binary ties and sample selection” (2011) [https://toreopsahl.com/2011/08/12/why-anchorage-is-not- that-important-binary-ties-and-sample-selection].
- [6] T. Peixoto and S. Bornholdt, Phys. Rev. Lett. 109, 118793 (2012)
- [7] T. Verma, F. Russmann, N. A. M. Araújo, J. Nagler, and H. J. Herrmann, Nat. Commun. 7, 10441 (2016).
Scope¶
Among various algorithms, cpalgorithm focuses density-based core-periphery structure. Other types of core-periphery structure such as transportation-based core-periphery structure is left for future update.


--- layout: post title: Creamy Polenta with Mushrooms, Chickpeas, & Olives Recipe | MyRecipes date: type: post parent_id: '0' published: false image: assets/images/post-img/ status: draft categories: - Etc. tags: [] meta: {} author: login: mkelley email<EMAIL_ADDRESS>display_name: Mike first_name: Mike last_name: Kelley ---
Source: Creamy Polenta with Mushrooms, Chickpeas, & Olives Recipe | MyRecipes


Performs demographic, bifurcation and evolutionary analysis of physiologically structured population models, which is a class of models that consistently translates continuous-time models of individual life history to the population level. A model of individual life history has to be implemented specifying the individual-level functions that determine the life history, such as development and mortality rates and fecundity. M.A. Kirkilionis, O. Diekmann, B. Lisser, M. Nool, B. Sommeijer & A.M. de Roos (2001) <doi:10.1142/S0218202501001264>. O.Diekmann, M.Gyllenberg & J.A.J.Metz (2003) <doi:10.1016/S0040-5809(02)00058-8>. A.M. de Roos (2008) <doi:10.1111/j.1461-0248.2007.01121.x>.
| Version: | 0.2.1 |
| Depends: | R (≥ 3.1) |
| Imports: | pkgbuild (≥ 1.0) |
| Suggests: | testthat, knitr, rmarkdown |
| Published: | 2018-10-23 |
| Author: | Andre M. de Roos [aut, cre], Ernst Hairer [ctb], Gerhard Wanner [ctb] |
| Maintainer: | Andre M. de Roos <A.M.deRoos at uva.nl> |
| License: | GPL-3 |
| NeedsCompilation: | yes |
| Citation: | PSPManalysis citation info |
| CRAN checks: | PSPManalysis results |
| Reference manual: | PSPManalysis.pdf |
| Vignettes: |
PSPManalysis PSPManalysis |
| Package source: | PSPManalysis_0.2.1.tar.gz |
| Windows binaries: | r-devel: PSPManalysis_0.2.1.zip, r-release: PSPManalysis_0.2.1.zip, r-oldrel: PSPManalysis_0.2.1.zip |
| OS X binaries: | r-release: PSPManalysis_0.2.1.tgz, r-oldrel: PSPManalysis_0.2.1.tgz |
| Old sources: | PSPManalysis archive |
Please use the canonical form https://CRAN.R-project.org/package=PSPManalysis to link to this page.


Adjusting her stole, Egwene studied Mat. She expected him to look like a cornered bear, but he just looked poleaxed and sweaty. There were so many questions she wanted to ask—How did Rand know about Salidar? How could he possibly know she had worked out Traveling? What did Rand think he was doing?—but she was not going to ask them. Mat and his Band of the Red Hand had her head buzzing. Maybe Rand had handed her a gift from the sky.
“My chair?” she said quietly. She hoped he had noticed that she was not sweating, nor Elayne or Nynaeve; Nynaeve not very much anyway. Siuan had revealed the trick, nothing to do with the Power at all, just a matter of concentrating in a certain way. Nynaeve had been rather angry, small surprise, that Siuan had not taught it to them before, but Siuan just replied calmly that it was for Aes Sedai, not Accepted. So far Egwene had managed to hold her thoughts properly when there were sisters about, and a cool face instead of a sweaty did seem to help their attitudes a little. Some of them. It should do wonders for Mat. If he ever stopped staring and saw. “Mat? My chair?”
He gave a start, then rose and moved aside, wordlessly staring from her to Elayne to Nynaeve as though they were some sort of puzzle. Well, Nynaeve and Elayne were looking at him in much the same way, and they surely had better reason.
She dusted the cushions before replacing them in the chair with a fond thought for Chesa. After two days, she did not need them any longer, not really, but either she gave up bathing or accepted cushions until not a hint of a bruise showed. Chesa would remove the cushions if Egwene said to. Sweaty face or cool, Egwene was the Amyrlin Seat, before whom kings bowed and queens curtsied, even if none had yet, who would have Elaida tried and executed in short order and all put right with the White Tower, and thus with the world. Chesa would do it, and give Egwene such hurt, reproachful glances for not being allowed to take care of her that leaving the cushions there was much easier to bear.
Settling herself with her hands folded on the table, she said, “Mat—” He broke in immediately.
“This really is madness, you know,” he said quietly. Quietly, but quite firmly.  All of you will. Your heads—cut—off.”
“Mat,” she said in a stronger tone, but he went right on.
“Listen, you can still get out of this. If they think you’re the Amyrlin, you can come out with me to . . . to inspect the Band.
Nynaeve had seen saidar fail around him, but she had dealt with recalcitrant men long before she learned to channel. With a muttered growl of “Warm my bottom?” that Egwene did not think was intended to be heard, Nynaeve deftly hiked up her skirts and kicked Mat squarely in his, so hard that he staggered all the way to the wall before catching himself with a hand. Elayne burst into laughter, and suppressed it just as quickly, but she still quivered, and her eyes shone.
Egwene bit her lip to keep from laughing too. It really was comical.  Then his brows lowered, and jerking his undone coat as if to straighten it, he began to stalk slowly toward her. Slowly because he was limping. Egwene covered her mouth. It really would not do to laugh.
Nynaeve drew herself up sternly, and then perhaps a few things occurred to her. She might be angry enough to channel, but saidar was apparently useless with him. Mat was tall for a Two Rivers man, considerably taller than she, considerably stronger, and there was a decidedly dangerous glint in his eye. She glanced at Egwene, and smoothed her dress, trying to maintain her stern face. Mat stalked nearer, face like thunder. Another hasty glance, worry beginning to show, was followed by a small step back.
“Mat,” Egwene said in a level tone. He did not stop.  You are in quite a predicament, but I should be able to get you out of it, if you listen to reason.”
Finally he halted. With a glare and a warning shake of his finger at Nynaeve, he turned his back on her and planted his fists on the writing table. “I am in a predicament? Egwene, you’ve jumped out of a tree toward a bear pit, and you think everything is fine because you haven’t landed yet!”
She smiled at him calmly. “Mat, not many here in Salidar think very well of Dragonsworn. Lord Bryne certainly doesn’t, nor his soldiers. We have heard some very disturbing stories. And some sickening ones.”
“Dragonsworn!” he yelped. “What do they have to do with me?  She made it sound the most obvious thing in the world. Which it was, if you only thought. “You go where Rand sends you. What else are you but Dragonsworn?  Actually, I don’t think Lord Bryne would use a pike—he always complains he doesn’t have enough—but I am sure he would figure out something.”
Mat looked at the other two women, and Egwene compressed her lips for an instant. She had made herself plain, but he appeared to be hunting for a clue to what she was talking about.  She might not see where Egwene was going, yet she knew she was not talking for the sound of her voice. Nynaeve, still struggling to keep a severe face and tugging at her braid, only glared at him, but maybe that was even better. Though she was beginning to sweat; Nynaeve lost concentration when she grew angry.
“Now, listen, Egwene,” Mat said. Then again, maybe neither response was really enough. He managed to combine a reasonable tone with indulgence in the most offensive way possible.  Rand would welcome you with open arms in Caemlyn even if you don’t bring all these Aes Sedai to him, but I know he will be overjoyed if you do. Whatever your problems are with Elaida, he can work them out. She knows he’s the Dragon Reborn. Light, you remember her letter. Why, you will have your White Tower all mended before you can say Jak o’ the Wisps. No battles. No bloodshed. You know you don’t want bloodshed, Egwene.”
That she did not. Once the first blood was shed between Salidar and Tar Valon, it would be difficult to make the Tower whole again. Once the first Aes Sedai blood was shed, it might be impossible. Still, Elaida had to be brought down, and Egwene would do what she had to do. She just did not like it. And she did not like Mat telling her what she knew, liked it the less so for being right. Definitely the less so in that tone. It was a real effort to keep her hands still on the table. She wanted to stand and box his ears.
“However I deal with Rand,” she said coolly, “you can be sure it will not be by leading Aes Sedai to swear fealty to him or any other man.” Cool, and not at all arguing; a calm statement of simple facts. “How I deal with Elaida is my concern, and none of yours.  You start telling other Aes Sedai what Rand is going to do just as soon they kneel to him, and you might not like the answers you get. Talk about carrying me off, or Nynaeve or Elayne, and you will be very lucky not to get a sword through you.”
He jerked upright with a glare. “I’ll talk to you again when you’re ready to listen to reason, Egwene. Is Thom Merrilin around?” She gave a curt nod. What did he want with Thom? Probably to douse himself in wine. Well, good luck to him finding a tavern here. “When you’re ready to listen,” he repeated grimly, and stalked—limped—to the door.
“Mat,” Elayne said, “I would not try to leave were I you. Getting into Salidar is much easier than getting out.”
He grinned at her insolently, and the way he eyed her up and down, he was lucky Elayne did not slap him hard enough to loosen all his teeth. “You, my fine Lady, I am taking back to Caemlyn if I have to tie you up in a package to hand to Rand, burn me if I don’t.  His bow was mocking, to Elayne and to Egwene. Nynaeve got only a glower and another shake of his finger.
“How can Rand have such a low, insufferable lout for a friend?” Elayne asked no one in particular before the door was well closed behind him.
“His language has certainly slipped downhill,” Nynaeve grumbled darkly, tossing her head so her braid swung over her shoulder. Egwene thought she might be afraid she would pull it out by the roots if she did not put it out of reach.
“I should have let him do as he wanted, Nynaeve. You have to remember you’re Aes Sedai now. You can’t go around kicking people, or boxing their ears, or thumping them with sticks.” Nynaeve stared at her, mouth working, face growing redder and redder. Elayne began assiduously studying the carpet.
With a sigh, Egwene folded the striped stole and laid it on the table to one side. That was her way of making sure Elayne and Nynaeve remembered they were alone; sometimes the stole made them start talking to the Amyrlin Seat instead of Egwene al’Vere. As usual, it worked. Nynaeve took a very deep breath.
Before she could speak, though, Elayne said, “Do you mean to join him and this Band of the Red Hand to Gareth Bryne?”
Egwene shook her head. The Warders said there were six or seven thousand in Mat’s Band now, more than she remembered from Cairhien, and a considerable number, if not nearly so many as those two captured men claimed, but Bryne’s soldiers truly would not take kindly to Dragonsworn. Besides, she had her own scheme, which she explained while they drew the other chairs to the table. It was very like sitting in a kitchen talking. She moved the stole farther over.
“That is brilliant.” Elayne’s grin said she meant it. But then, Elayne always said what she meant. “I didn’t think the other would work either, but this really is brilliant.”
Nynaeve sniffed irritably. “What makes you think Mat will go along? He’ll stick a pole through the spokes just for the fun of it.”
“I think he made a promise,” Egwene said simply, and Nynaeve nodded. Slowly, reluctantly, but she nodded. Elayne looked lost, of course; she did not know him. “Elayne, Mat does exactly as he pleases; he always has.”
“No matter how many turnips he had to peel for it,” Nynaeve muttered, “or how often he was switched.”
“Yes, that is Mat,” Egwene sighed. He had been the most irresponsible boy in Emond’s Field, maybe in the Two Rivers. “But if he gives his word, he keeps it. And I think he promised Rand to see you back in Caemlyn, Elayne. You notice he retreated to asking me”—in a way he had—“but you he never changed a hair on. I think he’ll try to stay as close to you as your belt pouch. But we won’t let him even see you unless he does as we want.” She paused. “Elayne, if you want to go with him, you can. To Rand, I mean. As soon as we squeeze all of the good out of Mat and his Band.”
Elayne hardly hesitated before shaking her head, and she shook it firmly. “No, Ebou Dar is too important.” That had been one victory, surprisingly won with a mere suggestion. Elayne and Nynaeve were to join Merilille at Tylin’s court. “At least if he stays close, I’ll have a few days to try for a look at the ter’angreal he is carrying. It has to be that, Egwene. Nothing else could explain it.”
Egwene could only agree. She had simply meant to wrap him up in Air where he stood, just a gentle reminder of who he was trying to manhandle, but the flows touched him, and melted. That was the only way to explain it. They ceased to exist where they touched him. She still felt the shock of that moment, remembering, and she realized she was not the only one suddenly adjusting skirts that needed no adjusting.
“We could have some Warders turn out his pockets.” Nynaeve sounded more than satisfied with the image. “We’ll see how Master Mat Cauthon likes that.”
“If we take things away from him,” Egwene said patiently, “don’t you think he might balk when we start telling him what to do?” Mat had never taken orders very well, and his usual response to Aes Sedai and the One Power was to take the first chance to slip away. Maybe his promise to Rand would stop that—there had to be one; nothing else explained his behavior—but she was not going to risk it. Nynaeve nodded, rather grudgingly.
“Maybe . . . ” Tapping her fingers on the table, Elayne stared at nothing thoughtfully for a moment. “Maybe we could take him to Ebou Dar. That way, I might have a better chance at the ter’angreal. Though if it stops saidar, I can’t see how I’ll ever manage to study it.”
“Take that young ruffian along!” Nynaeve sat up straight. “You can’t mean it, Elayne. He would make every day a misery; he’s very good at that. He’ll never do what he’s told. Besides, he will never stand still for it. He’s so wrapped up in taking you to Caemlyn, you could not budge him from it with a prybar and a team of horses.”
“But if he means to keep an eye on me until I reach Caemlyn,” Elayne told her, “he’ll have no choice but to go. It is perfect.”
“It might not be a bad idea,” Egwene put in while Nynaeve was searching for another argument. Sending them after the bowl still seemed right, but the more she thought of where they would have to search, the more she worried. “A few soldiers might be a very good idea, unless you’ve picked out Warders without letting me know. Thom and Juilin are all very well, and Birgitte, but it is a rough place you’re going.”
“A few soldiers might be well enough,” Elayne said, coloring slightly. “So long as they know to follow orders.”
Nynaeve did not quite glance at Elayne, but there was a distinct pause before she shook her head irascibly. “We’re hardly going to be fighting duels, Egwene, however touchy these Ebou Dari are. Thom and Juilin will do quite well enough. Myself, I think all these stories we’ve been hearing are just meant to make us decide to give it over.” Everybody had heard tales of Ebou Dar since word had spread that they were going; Chesa had heard several, each more pitiful and horrific than the last, strangers killed for a wrong glance before they could blink, women widowed and children orphaned over a word, women fighting in the streets with knives. “No, if we could survive Tanchico with just Thom and Juilin, and Liandrin and some of her Black sisters around in the bargain, we will do very well in Ebou Dar without Mat Cauthon or any soldiers either. Mat commanding soldiers! He never even remembered to milk his father’s cows unless he was put on the stool and handed the bucket.”
Egwene gave a faint sigh. Any mention of Birgitte did that; they started as if goosed, then either stammered around her or else went on as if she had not been mentioned at all. One look had convinced Egwene that the woman following Elayne and Nynaeve about—especially Elayne, for some reason—was the woman she had seen in Tel’aran’rhiod. Birgitte of the legends, the archer who never missed, one of the dead heroes awaiting the call of the Horn of Valere. A dead hero, not a live woman walking the streets of Salidar, but the same woman nonetheless. Elayne still had provided no explanation, only a careful, embarrassed mumble about not being able to talk of what they had agreed not to talk of. Birgitte herself, the hero of legends, turned the other way or went down alleys if she saw Egwene coming. Ordering the woman to her study and demanding an explanation was out of the question; she had promised, after all, no matter how much a fool the situation made her feel. Anyway, there hardly seemed any harm. She just wished she knew the why of it. And the how.
Putting Birgitte out of her mind for the moment, she leaned across the table toward Nynaeve. “Perhaps we can’t make Mat take orders exactly, but wouldn’t it be fine to watch him smolder over having to be your bodyguard?”
“It would certainly be worthwhile,” Elayne said thoughtfully, “if Rand really has made him a general. Mother often said the best men were reluctant to take orders, and always worth teaching to. I can’t see Mat as one of the best—Lini says ‘Fools only listen to themselves’—but if we can teach him enough that he doesn’t make a complete fool of himself where there is nobody to rescue him, we will be doing Rand a large favor. Besides, I need time if I am to study that ter’angreal.”
Egwene tried not to smile; Elayne always caught on so quickly. Then again, she probably was going to try teaching Mat to sit up straight. That would be something to see. She liked Elayne, and admired her strength, but she would bet on Mat in that contest. By a whisker.
Nynaeve gave ground stubbornly. Mat was wrongheaded; he would say “down” if they said “up” just to spite them. He could make trouble nailed up inside a barrel. They constantly would have to be dragging him out of taverns and gambling dens. Toward the end she was reduced to claiming that Mat would probably pinch Elayne the first time her back was turned, and Egwene knew they were overcoming her objections. Mat certainly gave a lot of time to chasing after women, which Egwene could hardly approve, but Nynaeve surely knew as well as she that for all of looking when and how he should not, he seemed to have an uncanny knack for picking women who wanted to be chased, even the most unlikely. Unfortunately, just when she was sure that Nynaeve was about to give in, a knock at the door announced Sheriam.
Sheriam did not wait on permission to enter; she never did. Cool-eyed in her blue stole, she paused to gaze at Nynaeve and Elayne. Second to the Amyrlin or not, the Keeper had no real authority over Aes Sedai except what the Amyrlin chose to give her, and most assuredly none to dismiss anyone from the Amyrlin’s presence, yet that look was clearly a dismissal.
Elayne rose smoothly, making a deep formal curtsy to Egwene. “If you will excuse me, Mother, I should go find Aviendha.”
Nynaeve, on the other hand, locked eyes with Sheriam until Egwene cleared her throat and slipped the striped stole back into place on her shoulders.
Flushing, Nynaeve bobbed to her feet. “I should go, too. Janya said she would talk to me about lost Talents.”
The recovery of those Talents was not proving as easy as Egwene had hoped. The sisters were willing enough to talk; the problem was in making Moghedien understand what was meant by a vague description or sometimes only a name, then hoping she really knew something. All very well to know, for example, that Aligning the Matrix made metals stronger, but the woman knew less of metals than of Healing, and what under the Light was Spinning Earthfire, or for that matter, Milking Tears?
Moghedien seemed eager to help, desperate to, especially since Siuan taught the trick of ignoring heat. Apparently she had lied to Nynaeve and Elayne about that. Convinced Egwene would take that for her “one lie,” the woman had groveled on her knees, weeping and begging, teeth chattering, kissing the hems of their skirts. Eager to help or not, it had raised her fear to new heights. The constant sickening rain of sniveling terror was just too much. Despite her intentions, the a’dam bracelet lay in Egwene’s pouch now. She would have given it to Nynaeve now—and glad to be rid of it—but handing the thing back and forth in front of others would occasion comment sooner or later.
Instead, she said, “Nynaeve, it might be best for you to avoid Mat until his temper cools.” She was not sure that Mat would really carry out his threat, but if anyone could goad him to it, Nynaeve could, and there would be no convincing her after that. “Or at least make sure you only talk to him with a great many people around. Perhaps a few Warders.”
Nynaeve opened her mouth; then after a moment closed it again; her cheeks paled a little and she swallowed. “Yes. Yes, I think that might be best, Mother.”
Sheriam watched the door close with a small frown that she still wore when she turned to Egwene. “There were hard words, Mother?”
“Only what you expect when old friends meet after a long time. Nynaeve remembers Mat as a scamp, but he isn’t ten anymore, and he resents it.” Bound by the Oath against lying, Aes Sedai had carried the half-truth, the quarter-truth and the implication to arts. Useful arts, in Egwene’s opinion. Especially with Aes Sedai. The Three Oaths did no one any favors, least of all Aes Sedai.
“It’s hard sometimes to remember that people change.” Taking a chair without being asked, Sheriam arranged her blue silk skirts carefully. “I assume whoever commands the Dragonsworn sent young Mat with a message from Rand al’Thor? I hope you said nothing he might take as a promise, Mother. An army of Dragonsworn not ten miles distant faces us with a delicate situation. It will not help if their commander believes we are going back on pledges.”
Egwene studied the other woman a moment. Nothing fazed Sheriam. Not that she let anyone see, at least. Sheriam knew quite a lot about Mat; so did several other sisters in Salidar. Could that be used to press him in the right direction, or would it make him bolt? Mat for later, she thought firmly. Sheriam now. “Would you ask someone to bring tea, Sheriam? I feel a trifle thirsty.”
 Egwene could almost see the question wanting to pop out, though. What had she said to Mat that she did not want to talk about? What promises had she made that Sheriam was going to have to rescue her from without losing ground to Romanda or Lelaine?
All Sheriam did was say a few words to someone outside, and when she regained her seat, Egwene gave her no opportunity to open her mouth. Instead, she hit her right between the eyes. So to speak. “It seems Mat is the commander, Sheriam, and in a way, the army is the message. Apparently, Rand would like us all to come to him in Caemlyn. There was some mention of oaths of fealty.”
Sheriam’s head came up, eyes widening. Only partly in outrage at such a suggestion, though. There was a definite tinge of . . . well, in anyone but an Aes Sedai, Egwene would have called it fear. Very understandable, if so. If she had promised that—and she was from the same village; one of her uses as Amyrlin was that she had grown up with Rand—it would be a bottomless mire to get out of. Word would spread no matter what Sheriam did; some of the Hall might well blame it on her, or use it as a pretext, anyway. Romanda and Lelaine were not the only Sitters to have cautioned Egwene about following Sheriam’s advice without consulting the Hall. In truth, Delana was the only one who really seemed to support Sheriam fully, but she counseled listening to Romanda and Lelaine as well, as if it were really possible to go in three directions at once. And even could the Hall be managed, once news of the promise reached Rand, and of its withdrawal, he would be ten times harder to handle. A hundred times.
Egwene only waited until Sheriam’s lips parted, then spoke first again. “Of course, I told him it was ridiculous.”
“Of course.” Sheriam’s voice was not quite as steady as it had been. Very good.
“But you are quite right. The situation is delicate. It’s such a pity. Your advice on how to deal with Romanda and Lelaine was good, but I don’t think increasing preparations to move will be enough now.”
Romanda had cornered her and grimly lectured her on haste leading to ruin; Gareth Bryne’s army must be made larger, large enough for news of its size to intimidate Elaida. And by the way, Romanda could not emphasize strongly enough once again that the embassies to rulers must be recalled; none but Aes Sedai should be allowed to learn any more of troubles in the Tower than could be avoided. Lelaine cared about neither Lord Bryne’s army nor rulers—both were irrelevant—though she did counsel caution and waiting. The proper approaches to Aes Sedai still in the Tower would surely yield dividends; Elaida could be removed from the Amyrlin Seat and Egwene installed in such a fashion that none but a very few sisters would ever be certain what had actually happened. In time, the fact that the White Tower had ever been broken would be taken for no more than a country tale. It might even have worked, if they had had enough time. If waiting did not give Elaida just as much chance to work on sisters here.
The other difference with Lelaine was she had said everything with a smile that would have done very well for a pet novice or Accepted she was very proud of. Egwene’s rediscovery of Traveling caused a lot of Aes Sedai to smile, though only a handful were strong enough to make a gateway larger than they could put an arm through and most not even that. Romanda wanted to use gateways to remove the Oath Rod and certain other items—Egwene was not told exactly what—from the Tower so they could make true Aes Sedai in Salidar while depriving Elaida of the ability; surely Egwene wanted to be truly Aes Sedai. Lelaine agreed about that last, but not about using gateways in the Tower; there was too much chance they might be detected, and if those in the Tower learned to Travel, too much advantage would be lost. Those points had carried considerable weight with the Hall, which did not please Romanda at all.
Sheriam had smiled too, over agreeing with Lelaine about something, but she was not smiling now. “Mother, I am not sure I understand,” she said, much too tolerantly. “Preparations are certainly enough to show the Hall you will not be bullied. Moving before everything is in place could be disastrous.”
Egwene managed to put on a disingenuous expression. “I understand, Sheriam. I don’t know what I would do without your advice.” How she looked forward to the day she could stop this. Sheriam would make a very good Keeper—she might even have made a good Amyrlin—but Egwene was going to enjoy the day she could teach the woman that she was Keeper, not Amyrlin. Sheriam and the Hall. “It’s just that now Mat has this army of Dragonsworn on our doorstep. What will Lord Bryne do? Or some of his soldiers, on their own? Everybody talks about how he wanted to send men to hunt these Dragonsworn who are supposed to be burning villages. I know he has been told to keep a tight rein on them, but . . . ”
“Lord Gareth will do exactly as we—as you—command, and no more.”
“Perhaps.” He was not so happy with that tight rein as Sheriam believed. Siuan spent a great deal of time with Gareth Bryne for all her grumbling about the man, and he told her things. Egwene could not afford to give away Siuan’s allegiance, though. “I hope the same can be said for every one of his soldiers. We cannot move west into Amadicia, but I thought perhaps we could go downriver, to Ebou Dar. Maybe by gateway. Surely Aes Sedai are welcome there. Lord Bryne could camp outside the city. Moving would emphasize that we aren’t going to accept Rand’s . . . offer, if it can be called that. And if we are going to make more preparations, I’m sure we would find everything much easier to accomplish in a large city, with roads and ships in and out of the harbor.”
Sheriam’s control slipped again, to the extent of a breathiness in her voice. “Ebou Dar is not so welcoming as that, Mother. A few sisters are quite different from a few hundred, with an army at their backs. Mother, even a hint of that might make Tylin think we meant to seize the city. Tylin, and a good many Altaran nobles who would like nothing better than an excuse to topple her and take the Throne of the Winds for themselves. A tangle of that kind would ruin us with every ruler. No, Mother, it is quite out of the question.”
“But do we dare remain here now? Mat won’t do anything, but all it needs is a handful of Lord Bryne’s soldiers deciding to take matters into their own hands.” Egwene frowned at her skirts, smoothed them as if thinking worriedly, then sighed. “The longer we sit and do nothing with an army of Dragonsworn staring at us, the worse it will be. I won’t be surprised to hear rumors they mean to attack us, and people saying we should do for them first.” If this did not work, there would be rumors. Nynaeve and Elayne and Siuan and Leane would see to that. It would be dangerous, but she could find some way to make Mat retreat before sparks flew if it came to that. “Why, the way rumors spread, I wouldn’t be surprised if half of Altara thinks we are Dragonsworn in under a month.” That was one rumor she would have stopped if she knew how. The Hall no longer brought nobles to see Logain since he was Healed, but Bryne’s recruiters still went out, and parties of Aes Sedai hunting new novices, and men to make the long trek to the nearest villages with their carts and wagons to buy food. A hundred paths for that rumor to take, and it only needed one. “Sheriam, I can’t help feeling we are in a box, and if we don’t get out of it, nothing good will come. Nothing at all good.”
“The answer is to send the Dragonsworn away,” Sheriam said, not so patiently as before. “I regret letting Mat out of our hands again, but I fear there’s no answer for it. You’ve told him the offer is refused; tell him to go.”
“I wish it were that simple. I don’t think he will for asking, Sheriam. He implied he was to wait right where he is until something happens. He could be expecting orders from Rand, or even Rand himself. There was a rumor in Cairhien that he’s taken to sometimes Traveling with some of those men he’s gathered. The ones he’s teaching to channel? I do not know what we will do if that happens.”
Sheriam stared at her, breathing quite heavily for someone with such calm features.
A scratching at the door was followed by Tabitha with a beaten silver tray. Not catching the mood, she fussed about setting the green porcelain teapot and cups just so, the silver honeypot and small pitcher of cream and lace-edged linen napkins, until Sheriam finally snapped at her so fiercely to be about her work that Tabitha squeaked and dropped a wide-eyed curtsy that nearly put her head on the floor and ran.
For a moment Sheriam busied herself smoothing her skirts while she regained her composure. “Perhaps,” she said finally, reluctantly, “it might be necessary for us to leave Salidar after all. Sooner than I could wish.”
“But the only way left is north.” Egwene widened her eyes. Light, but she hated this! “It will seem we’re moving toward Tar Valon.”
“I know that,” Sheriam almost snapped. Drawing breath, she moderated her tone. “Forgive me, Mother. I feel a little . . . I do not like being forced into things, and I fear Rand al’Thor has forced our hand before we are ready.”
“I will speak quite severely when I see him,” Egwene said. “I can hardly think what I would do without your advice.” Perhaps she could find a way to send Sheriam to study with the Wise Ones as an apprentice. The thought of Sheriam after, say, half a year with Sorilea made her smile so that Sheriam actually smiled back. “Honey or bitter?” Egwene said, lifting the teapot.


With Angular-Material 2.0, we get all these components.
Tip: Use UPPERCASE text for 1-2 words, and Titlecase text for 3+ words.
Standard card with content
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
Standard card with content
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
{{item.subject}} - {{item.message}}
{ {item.subject} } - { {item.message} }
{{item.message}}
{ {item.message} }
Your favorite season is: {{favoriteSeason}}
Your favorite season is: { { favoriteSeason } }
]]>Plaid echo park knausgaard normcore franzen cronut. Pickled humblebrag tofu hoodie, umami salvia farm-to-table schlitz try-hard food truck knausgaard pabst. Yuccie portland jean shorts, authentic mixtape waistcoat gentrify blue bottle. Fixie kickstarter church-key small batch seitan, shabby chic vegan listicle before they sold out. Hammock raw denim flannel tousled seitan you probably haven't heard of them. Trust fund man bun pug, kickstarter artisan selvage letterpress cornhole tote bag butcher locavore. Affogato try-hard kickstarter seitan, DIY pickled hella godard pork belly four loko ugh.
Hashtag distillery skateboard man bun gochujang, salvia man braid art party meggings heirloom kitsch farm-to-table. Franzen beard fingerstache gentrify, heirloom portland ennui XOXO microdosing kitsch plaid. Chicharrones bushwick chia, banh mi irony tattooed hammock butcher shabby chic taxidermy semiotics marfa post-ironic. Blue bottle keffiyeh farm-to-table ennui, chambray pitchfork art party pinterest artisan pop-up. Etsy banjo marfa, blue bottle kombucha crucifix XOXO tousled beard. Tilde disrupt kale chips bicycle rights skateboard master cleanse hella shoreditch, meditation retro shabby chic vice heirloom. Etsy listicle vice actually, iPhone chia hoodie four loko.
...
...
Apply a md-dialog-title
attribute on a heading.
Use a md-dialog-content
element for content.
Place actions in an md-dialog-actions
element.


Roger Federer is a Swiss tennis player who holds the record for most grand slam titles won.
Photo by: Esther Lim Original Photo
Click here to view his record against other top players.
For more details on his Grand Slam titles, click here.
The website that I linked above is similar to my own. It is very simple, but provides a lot of information in a table. As I searched through the page source, I saw a lot of code and it did seem pretty organized. The code that I was looking for in particular was the code for a table. The table that I link to on my website is similar but much more simple. Within the tables, even though there are quite a few things that I don't recognize, I may be able to guess what they do. I could guess that colgroup is for grouping columns for the sake of formatting. I believe that span is an inline element that is also used for styling. For the most part, the elements in the table seem to be pretty straightforward and used mostly for styling.


Everton's Gomes could return from ankle injury this season - Silva
Everton midfielder Andre Gomes could make a return this season after undergoing successful ankle surgery following his horrific injury last weekend, manager Marco Silva said on Thursday.
REUTERS: Everton midfielder Andre Gomes could make a return this season after undergoing successful ankle surgery following his horrific injury last weekend, manager Marco Silva said on Thursday.
The Portugal international fractured and dislocated his right ankle in the 1-1 draw at Goodison Park on Sunday after landing off balance at speed following a tackle from Tottenham Hotspur forward Son Heung-min.
"It's not easy to give a sure date about when he will return, feedback from the medical staff is it is possible we will see him playing again this season," Silva told reporters ahead of Saturday's Premier League trip to Southampton.
"It looks like a really serious injury, but everything went really well and we hope we can see him playing again this season. Of course, we are not sure."
Son was shown a red card, which was later overturned by the FA, for his part in the incident and was in tears in the dressing room afterwards.
"I think he received a text message from Son," Silva added. "Of course it was the toughest moment for Andre and the other players on the pitch. For the two players involved it was really tough as well."
Everton travel to Southampton, who are looking for their first home win of the season, and Silva said Ralph Hasenhuettl's side will be looking to set the record straight at St. Mary's after a 9-0 humbling by Leicester City in their last home game.
"The last home defeat for them was really tough. They will want to react and show a reaction for their fans," Silva said.
"We want to do the same, to go to compete. After what happened with Andre we showed strong character and we have to do that again in the next match."
(Reporting by Rohith Nair in Bengaluru; Editing by Toby Davis)


Name:- Sahilpreet Singh
NJIT ID:- ss396
I am from India. I completed my Btech in computer science in 2019 from Thapar Institute of Engineering and technology. I am a national level athlete. I am currenlty working in Emerson as a network security engineer.
The objective of this assignment is to get familiarized with how the Internet works. In this assignment I explained the following topics:
- Domain names
- IP Addresses, Packets and Routing
- DNS
- HTTP and HTTPS Protocols
- W3C and HTML and CSS
The website is hosted on Github.


[ { "cloudName": "AzureCloud", "id": "aaaaaaaa-aaaa-aaaa-aaaaa-aaaaaaaaaa", "isDefault": true, "name": "Pay-As-You-Go", "state": "Enabled", "tenantId": "bbbbbbb-bbbbb-bbbb-bbbbb-bbbbbbbbbbb", "user": { "name": "<your azure account's email>", "type": "user" } } ]
TomEE deployment on Azure
This example uses a basic echo application, deployed with embedded TomEE on the Azure Cloud.
We use the TomEE maven plugin to package the app with TomEE Embedded in order to generate a fat jar. This jar is then picked up and deployed by the azure-webapp-maven-plugin.
Azure Setup
In order for the Azure plugin to work, you will need to have an Azure account and add a subscription to it. Then, on your development machine, install the Azure command-line interface (CLI) and authenticate with the command line, before you can deploy your application.
-
Create an Azure Account, if you don’t have one, at https://azure.microsoft.com/en-us
-
Use the free option, if available or add a subscription.
-
Install the Azure (CLI) according to operating system of the computer you are using to develop.
-
Finally you can setup your development computer.
Login into Azure
az login
The result:
The TenantId is someone that can register and manage apps, yourself. You will need that for later.
Create a service principal
An Azure service principal is a security identity used by user-created apps, services, and automation tools to access specific Azure resources:
az ad sp create-for-rbac --name http://<your-sub-domain> --password <password for this app> { "appId": "cccccccc-cccc-cccc-cccc-ccccccccccccccc", "displayName": "cloud-tomee-azure", "name": "http://cloud-tomee-azure", "password": "<password for this app>", "tenant": "bbbbbbb-bbbbb-bbbb-bbbbb-bbbbbbbbbbb" }
The <your-sub-domain>, also called the service principal name in the Azure documentation. In this example "http://cloud-tomee-azure". It has to be unique across Azure. The appId is the identification of the app service.
Configure Maven
You could continue just using the Azure CLI for authentication but we can also do it permanently with Maven.
In that case we need to edit Maven’s settings.xml so the azure-webapp-maven-plugin can authenticate against Azure:
You can add a new server to ~/.m2/settings.xml
like this:
<server> <id>azure-auth</id> <configuration> <client>cccccccc-cccc-cccc-cccc-ccccccccccccccc</client> <tenant>bbbbbbb-bbbbb-bbbb-bbbbb-bbbbbbbbbbb</tenant> <key><password for this app></key> <environment>AZURE</environment> </configuration> </server>
That’s it. You can now build the example and deploy it to Azure just using Maven:
mvn clean install -Pazure-single-jar azure-webapp:deploy
The azure-webapp is explicitly invoked because it relies on you Azure account. The standard TomEE build will not use an Azure account.
The end URL will look like:
Notes
At the moment of creation of this example there is a bug on azure with the JAVA_HOME that prevents the deployment. Check: https://github.com/Azure-App-Service/java/issues/11 The workaround is to set the Env. variable on the Azure web console and restart the app.
To deploy the echo app locally you can execute:
mvn tomee:run
You can test the app by calling http://localhost/cloud-tomee-azure-8.0.0-SNAPSHOT/echo/send-this-back
It will return send-this-back.
The echo app is also available with a simple war file that you can deploy on TomEE manually, for testing purposes.


I am a Full Stack Web Application Developer (MERN) with experience primarily in HTML, CSS, JavaScript. I am well versed in Bootstrap, jQuery, Node.js, Express, MySQL, MongoDB, Handlebars, and React. My focus has primarily been on front-end development, but I have experience in building REST APIs and have recently been working with GraphQL. I am a graduate of the Full Stack Coding Bootcamp at Georgia Tech. I currently have particular interest in learning other technologies such as Ruby on Rails, Java, and Python.
In a previous career, as a police officer and crime scene investigator, I developed methods and procedures to streamline the work process. In my current role, I love creating new projects, refactoring code, debugging, and shell scripting on the command line to increase performance and efficiency. I have a passion to create, and a passion to learn new skills. I also enjoy creating apps with other like-minded people.


Submit and View Runs
Run successfully added!
View our progress on the map!
Add Entry for <loading UAS>
Select runner
Distance Run (km)
Submit
Add New Runner
Add
Distances Submitted
Time
Runner
Distance
Time
Runner
Distance


--- layout: post title: How To Stress Test IT Infrastructure Like an Olympic Champion date: '2012-04-09T15:42:22-07:00' tags: tumblr_url: http://alexhwilliams.tumblr.com/post/20804257659/how-to-stress-test-it-infrastructure-like-an-olympic ---
http://bit.ly/HwAFn6


This question could of course be understood in a very profound sense:
Why do I exist at all – why have I been born as a human being precisely at this
epoch and on this small planet in a Universe billions of years old and containing
billions of stars and galaxies? Or, as Moominpappa put it when he was still a small
curious child in the Hemulen's bleak orphanage for moomin foundlings: Why am I the
one I am and not somebody else? Why is everything as it is and not quite the
opposite?
Unfortunately, I have to disappoint the reader with a keen interest in matters
philosophical or metaphysical. What I mean is simply: Why am I here on the internet
– in the spider's web? Why have I taken all the trouble to construct this website
and to compile information about myself to be looked at by any websurfer?
Well – it all began when I was nominated as a candidate in the parliamentary
election to be held here in Finland in March 1999. In that situation I found it
appropriate to introduce myself to the voters in this modern and fashionable way.
When I had, however, learned how to use the HTML language and could start planning
and constructing webpages of my own, I was carried away by the joy of creating!
I found it quite rewarding to describe what I have achieved and which ideas I
have been fighting for, to tell about my roots and my family, to remember people
who have been important to me – and to transform these facts and memories into
documents that might conceivably interest also others than those directly concerned.
The result of this admittedly somewhat narcissistic pottering was a rather
extensive collection of webpages, many-coloured and inconsistent as life itself
but nevertheless forming some kind of portrait of their author.


Migrating to CanJS 3
This guide walks you through the step-by-step process to upgrade a 2.x app to CanJS 3.
CanJS 3 introduces an even more modular project structure and several new features, while having a minimal number of deprecations and removals from the 2.3 API.
Use this guide alone or with the Using Codemods guide, which shows you how to use the can-migrate CLI code refactoring tool to automate parts of the migration process.
This guide goes over:
- Pre-migration preparation you can do in your current 2.x project to more easily move to 3.x in the future.
- The minimal migration path, which includes the fewest changes required to upgrade from 2.x to 3.x.
- The modernized migration path, which includes upgrading your code to match more modern conventions (such as using the new npm packages).
- The latest & greatest migration path, which uses all of the modern libraries we are most excited about (such as can-define).
- How to avoid future deprecations & removals in releases after 3.x
Pre-migration preparation
Before upgrading your project from 2.x to 3.x, make sure your project builds successfully and all the tests pass.
Additionally, you can take the following steps in your CanJS 2.x app to prepare it for migrating to CanJS 3.
Use the module folders
You can start importing CanJS code in a modular way before moving to CanJS 3.
For example, you might be using can-component like this:
var can = require("can");
can.Component.extend({ ... });
Update your code to instead look like this:
var Component = require("can/component/component");
Component.extend({ ... });
Use the same pattern for the other modules you are using. Be careful when declaring names for imported modules that share a similar name to native objects like Map.
Instead of:
import Map from 'can/map/map'; // this local declaration of Map will collide with ECMAScript2015 [Map](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Map)
Write:
import CanMap from 'can/map/map';
Here’s a list of all the can.
properties in CanJS 2.3 that can be replaced with modular paths:
can.autorender
—can/view/autorender/autorender
can.batch
—can/event/batch/batch
can.bindings
—can/view/bindings/bindings
can.Component
—can/component/component
can.compute
—can/compute/compute
can.Construct
—can/construct/construct
can.Control
—can/control/control
can.Deferred
—can/util/deferred
can.define
—can/map/define
can.deparam
—can/util/string/deparam/deparam
can.ejs
—can/view/ejs/ejs
can.event
—can/event/event
can.fixture
—can/util/fixture
can.isFunction
—can/util/js/is-function/is-function
can.LazyMap
—can/map/lazy/lazy
can.List
—can/list/list
can.Map
—can/map/map
can.Model
—can/model/model
can.Model.Cached
—can/model/cached/cached
can.mustache
—can/view/mustache/mustache
can.Object
—can/util/object/object
can.route
—can/route/route
can.stache
—can/view/stache/stache
can.util
—can/util/util
can.view.callbacks
—can/view/callbacks/callbacks
Replace uses of can.$
can.$
allows you to access the underlying DOM library bundled with CanJS; for example, jQuery in can.jquery.js
.
You might be using it in your code to easily reference the library:
var can = require("can");
var body = can.$('body');
Update your code to explicitly require the library on which you depend. For example:
var $ = require("jquery");
var body = $('body');
Set leakScope
in components
CanJS 2.2 introduced leakScope: false as a property on a can-component. This prevents values in parent templates from leaking into your component’s template. In CanJS 3, leakScope is now false
by default.
If you have a template like:
<some-component></some-component>
That you render with a map containing a page
property like so:
render(new Map({
page: "home"
}));
This page
property is not available within some-component
’s own template.
If the component’s template looks like:

Hello {{page}}

It can only lookup the page
property on some-component
’s own ViewModel. To restore the behavior in 2.x, simply set leakScope to be true
on the component:
Component.extend({
tag: "some-component",
ViewModel: ...,
leakScope: true
});
Minimal migration path
If you are already using can
through npm, simply run the following command to install the latest version:
npm install can@3 --save
This will update your package.json
to look something like this:
{
...
"dependencies": {
"can": "^3.11.0"
}
}
The ^
ensures you get minor and patch releases as those are released.
At a minimum, to upgrade your code for CanJS 3, you must make all of the following changes to your code:
Use can/legacy
In your code where you normally would import can
, instead import can/legacy
:
var can = require("can/legacy");
This will give you a can
object with most of the same APIs as in 2.3, with a few exceptions:
- can.mustache is not included with
can/legacy
, but it can still be installed as a separate package. - The former
can.view
functionality no longer exists; see below for more details.
Asynchronous inserted
& removed
events
In your can-components, the inserted and removed events were previously fired synchronously as the element was inserted or removed from the DOM. To improve performance, these events are now fired asynchronously.
There is now a beforeremove event that fires synchronously in case you need to perform memory cleanup. For example, you might need to access the parent’s viewModel:
Component.extend({
tag: "my-panel",
events: {
"{element} beforeremove": function(){
canViewModel(this.element.parentNode).removePanel(this.viewModel);
}
}
}
Replace uses of can.view
The can.view
methods have been removed in CanJS 3. The most common use was to create a template renderer from a script element within the page.
Instead of:
var render = can.view('some-id');
Just use the DOM APIs and pass the string directly into can-stache:
var templateString = document.getElementById('some-id').innerHTML;
var render = stache(templateString);
If you were using can.view
to load a template from a URL like so:
var render = can.view('./template.stache');
We encourage you to use StealJS with steal-stache:
import render from "./template.stache";
Alternatively, use the Fetch API:
fetch("./todos.stache")
.then((resp) => stache(resp.text()))
.then((render) => /* use render */);
If you’re using another module loader (such as Browserify or webpack), check out Setting up CanJS for instructions on how to load templates.
can.view.preload
If you were using can.view.preload
then use registerPartial instead.
stache.registerPartial("some-id", renderer);
Replace uses of can.Construct.proxy
The can.Construct.proxy
method has been removed in favor of Function.prototype.bind.
Instead of:
this.proxy(randFunc)
You should now do this:
randFunc.bind(this)
Replace uses of can.batch
can.batch
has been moved to the can-event
module.
Instead of:
can.batch.method();
You should now do this:
import canBatch from 'can-event/batch/batch';
canBatch.method();
The trigger
method has also been renamed to dispatch
.
can.batch.trigger(myObj, 'myEvent');
Becomes:
canBatch.dispatch(myObj, 'myEvent');
Replace uses of can.isFunction
can.isFunction
has been moved to the can-util
module.
Instead of:
can.isFunction(func);
You should now do this:
import isFunction from 'can/util/js/is-function/is-function';
isFunction(func);
can.event
Some methods have been renamed in can.event
.
can.event.addEvent.call(el, 'click', function() {});
can.event.removeEvent.call(el, 'click', function() {});
Becomes:
can.event.addEventListener.call(el, 'click', function() {});
can.event.removeEventListener.call(el, 'click', function() {});
can.extend
This method has been split into two: a shallow and deep merge. Previously, passing true
as the first parameter would do a deep merge. Now, you explicitly invoke the deep merge or shallow merge function.
can.extend({}, { answer: 42 }); // shallow
can.extend(true, {}, { answer: 42 }); // deep
Becomes:
import assign from 'can-util/js/assign/assign';
import deepAssign from 'can-util/js/deepAssign/deepAssign';
assign({}, { answer: 42 }); // shallow
deepAssign({}, { answer: 42 }); // deep
can.addClass
This method now requires the DOM element to be the context of function.
Replace this:
can.addClass(el, 'myClass');
With this:
import className from 'can-util/dom/class-name/class-name';
className.add.call(el, 'myClass');
can.append
This method now require the DOM element to be the context of function.
Replace this:
can.append(el, '

');
With this:
import mutate from 'can-util/dom/mutate/mutate';
mutate.append.call(el, '

');
can.data
This method now requires the DOM element to be the context of function. It also has a separate method for getting and setting data.
Replace this:
can.data(el, 'something', 'secret'); // set
can.data(el, 'something'); // get
With this:
import domData from 'can-util/dom/data/data';
domData.set.call(el, 'something', 'secret');
domData.get.call(el, 'something');
String methods
All string methods are grouped together now, so you only have to import the string utilities once.
can.camelize('first-name');
can.hyphenate('firstName');
Becomes:
import string from 'can-util/js/string/string';
string.camelize('first-name');
string.hyphenate('firstName');
Use native Promises
Native Promises are used instead of jQuery promises which means you need to:
- Include a Promise polyfill if targeting browsers that do not have native support. Steal includes a polyfill for you.
- Use
.catch()
instead of.fail()
. - Use
.then()
instead of.done()
.
Note that only a single value is returned from a native Promise.
Passing the this
value to a helper
can-stache now passes a can-compute to helpers.
If you were passing the this
value to a helper like so:
{{helper .}}
You can fix this either by having your helpers handle computes, or by using call expressions instead:
{{helper(.)}}
No more global scope names
Most recently-built applications do not depend on adding to the global namespace, but in case you have code that does:
Construct.extend("foo.bar", ...)
Which sets window.foo.bar
, this argument is no longer accepted by can-construct. If you really need to set a global, you can do so yourself using the return value of extend.
Instead, the first argument to extend is the name of the constructor function. This is nice for development as you’ll get named objects in your dev tools.
Using steal-stache
for templates
If you use StealJS, you’ll need to install steal-stache to load your templates:
npm install steal-stache@3 --save
If you’re using StealJS 0.16, you don’t need to do anything else to make your templates load correctly.
If you’re using StealJS 1, you also need to add steal-stache
to the plugins
configuration in your package.json
:
{
...
"steal": {
...
"plugins": ["steal-stache"]
}
}
Replace template
with view
in components
The template
property name has been deprecated in favor of view
.
Instead of:
import template from "./todo.stache";
Component.extend({
tag: "some-component",
template: template
});
You should write:
import view from "./todo.stache";
Component.extend({
tag: "some-component",
view: view
});
Modernized migration path
CanJS 3 is divided into separate npm packages. This allows us to more quickly update parts of CanJS without affecting other functionality.
In addition to the above, take advantage of the individual packages by installing and using them directly to set your project up for easier upgrades in the future.
For example, you might be using can-component like either:
var can = require("can");
can.Component.extend({ ... });
or
var Component = require("can/component/component");
Component.extend({ ... });
Regardless of which you are using, update your code to instead look like:
var Component = require("can-component");
Component.extend({ ... });
Use the same pattern for the other can
modules you are using. In general, you should not be using the can.
properties any more, but rather importing (through your module loader / bundler) only the packages and modules that you are using.
Here’s a list of all the paths in CanJS 2.3 that now have separate modules in CanJS 3:
can/component/component
— can-componentcan/compute/compute
— can-computecan/construct/construct
— can-constructcan/construct/super
— can-construct-supercan/control/control
— can-controlcan/event/event
— can-eventcan/list/list
— can-listcan/map/backup
— can-map-backupcan/map/define
— can-map-definecan/map/map
— can-mapcan/model/model
— can-modelcan/route/pushstate/pushstate
— can-route-pushstatecan/route/route
— can-routecan/util/fixture
— can-fixturecan/util/string/deparam/deparam
— can-deparamcan/util/util
— can-utilcan/view/autorender/autorender
— can-view-autorendercan/view/callbacks/callbacks
— can-view-callbackscan/view/ejs/ejs
— can-ejscan/view/href/href
— can-view-hrefcan/view/import/import
— can-view-importcan/view/live/live
— can-view-livecan/view/mustache/mustache
— can-mustachecan/view/node_lists/node_lists
— can-view-nodelistcan/view/parser/parser
— can-view-parsercan/view/scope/scope
— can-view-scopecan/view/stache/stache
— can-stachecan/view/target/target
— can-view-target
Latest & greatest migration path
In addition to the steps taken in the two sections above, make the following changes to your application if you really want to stay ahead of the curve.
Move from can-map
to can-define
If you’ve used can-map-define in the past, then using can-define should be familiar to you. Using can-define/map/map is the easiest migration path and is what we show in all of the examples in CanJS 3’s docs.
A typical map looks like:
var Map = require("can-map");
require("can-map-define");
var CarOwner = Map.extend({
define: {
cars: {
Type: Car.List
},
favorite: {
Type: Car
},
color: {
type: "string"
},
age: {
value: 18
}
}
});
Which can be replaced by flattening it into a can-define/map/map like so:
var DefineMap = require("can-define/map/map");
var CarOwner = DefineMap.extend({
cars: Car.List,
favorite: Car,
color: "string",
age: {
type: "number",
value: 18
}
});
Using can-define allows you to use maps without the .attr() method that’s needed in can-map and can-list. To use this with DefineMap
, just use the .
(dot) operator instead:
var carOwner = new CarOwner();
// This is observable!
carOwner.favorite = new Car({ make: "Toyota" });
Note: With can-map
you are able to assign initial values to a property while defining a Map
like so:
var CanMap = require("can-map");
var Person = CanMap.extend({
name: "Justin"
});
This shorthand in can-define/map/map
defines the type, not the initial value.
Here’s the example above updated for can-define/map/map
:
var DefineMap = require("can-define/map/map");
var Person = DefineMap.extend({
name: {value: "Justin"}
});
Remove use of change
events
When you upgrade to use can-define, you’ll no longer receive change
events on maps. If you had any code that binded to a map’s change
event, you’ll want to instead bind to the properties that you are interested in.
For example:
route.bind("change", function(){
// The route changed
});
Can be modified to instead use a compute that calls serialize
on the route’s map:
var routeMap = compute(function(){
return route.map.serialize();
});
routeMap.bind("change", function(){
// A property on the route’s map changed.
});
As you might notice, on() is preferable to bind()
, although bind()
still works the same.
Use can-connect
directly
When using the easy migration path, you were secretly using can-connect/can/model/model, a constructor that is mostly backwards-compatible with can-model.
Most new projects should use can-connect directly. can-connect/can/super-map/super-map is the easiest way to create models with can-connect
’s features. Using can-connect
directly allows you to use can-define/map/maps as your models like so:
var DefineMap = require("can-define/map/map");
var DefineList = require("can-define/list/list");
var superMap = require("can-connect/can/super-map/super-map");
var Message = DefineMap.extend({
id: "*"
});
Message.List = DefineList.extend({
"#": Message
});
var messageConnection = superMap({
url: 'https://chat.donejs.com/api/messages',
idProp: 'id',
Map: Message,
List: Message.List,
name: 'message'
});
Avoid future deprecations & removals
Wrap elements in jQuery objects
If you are using can-jquery/legacy to automatically get jQuery-wrapped elements in can-control event handlers, you’ll want to remove the usage of can-jquery/legacy as it doesn’t play well with can-components that do not expect elements to be jQuery-wrapped.
Instead, use can-jquery directly and handle the wrapping yourself. For example:
var Component = require("can-component");
var $ = require("can-jquery");
Component.extend({
tag: "some-component",
events: {
inserted: function(){
this.element = $(this.element);
},
"li click": function(li){
var $li = $(li);
}
}
});
can-jquery will continue to be supported indefinitely but can-jquery/legacy will be dropped in a future major version.
Use the new binding syntax
CanJS 2.3 introduced new binding syntaxes. They’re available in CanJS 3 with can-stache-bindings. Although the old binding syntaxes still work, they will likely be dropped in 4.0. View can-stache-bindings’s documentation to learn how to use the new binding syntax.
An example is changing a can-value
binding from:
<input type="text" can-value="{someProp}" />
To:
<input type="text" value:bind="someProp" />
CanJS 3 also introduces new stache converters, which are special two-way helpers that update an element when an observable value changes and update the observable value when the form element’s value changes (from user input).
An example is the string-to-any converter, which converts a primitive value to a string to set a <select>
’s value, and then converts the <select>
value when a user selects an <option>
back to the primitive value to update the scope value:
<select value:bind="string-to-any(~favePlayer)">
<option value="23">Michael Jordan</option>
<option value="32">Magic Johnson</option>
</select>


MODULE
LEGEND
ON/OFF
GIS
Ground
DEM
Station
Control Structures
Dyke System in 2010
Flood Plain
Hydrological Stations
Hydropower-Dam
Meteorological Stations
Provincial Boundary
River Network
None
REMOTE SENSING
MODIS Land Use
Year
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
MODIS Flood
Year
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
DOY
145 (May.25-Jun.1)
153 (Jun.2-Jun.9)
161 (Jun.10-Jun.17)
169 (Jun.18-Jun.25)
177 (Jun.26-Jul.3)
185 (Jul.4-Jul.11)
193 (Jul.12-Jul.19)
201 (Jul.20-Jul.27)
209 (Jul.28-Aug.4)
217 (Aug.5-Aug.12)
225 (Aug.13-Aug.20)
233 (Aug.21-Aug.28)
241 (Aug.29-Sep.5)
249 (Sep.6-Sep.13)
257 (Sep.14-Sep.21)
265 (Sep.22-Sep.29)
273 (Sep.30-Oct.7)
281 (Oct.8-Oct.15)
289 (Oct.16-Oct.23)
297 (Oct.24-Oct.31)
305 (Nov.1-Nov.8)
313 (Nov.9-Nov.16)
321 (Nov.17-Nov.24)
329 (Nov.25-Dec.2)
337 (Dec.3-Dec.10)
345 (Dec.11-Dec.18)
353 (Dec.19-Dec.26)
361 (Dec.27-Jan.3)
Play
Envisat ASAR
Year
2007
2008
2009
2010
2011
DOY
2007-06-14
2007-07-03
2007-07-10
2007-07-19
2007-08-07
2007-08-14
2007-08-23
2007-09-11
2007-09-18
2007-10-16
2007-10-23
2007-11-01
2007-11-20
2007-11-27
2007-12-06
2008-06-01
2008-06-17
2008-06-24
2008-07-03
2008-07-22
2008-08-14
2008-08-23
2008-08-26
2008-09-11
2008-09-30
2008-10-07
2008-10-16
2008-11-04
2008-11-11
2008-11-20
2008-11-23
2008-12-16
2008-12-25
2009-06-02
2009-06-18
2009-07-04
2009-08-27
2009-10-01
2009-12-10
2009-12-13
2010-01-14
2010-01-17
2010-02-18
2010-03-25
2010-04-29
2010-05-02
2010-06-03
2010-07-08
2010-08-12
2010-08-15
2010-09-16
2010-10-08
2010-10-21
2011-01-03
2011-01-14
2011-02-02
2011-03-04
2011-03-15
2011-04-03
2011-06-21
HYDRAULIC SIMULATION
Flood
Scenario
Flood 2000
Flood 2001
Flood 2011
Flood 2012
Flood 2013
Land Use Change Scenarios
Scenario
Full-dyke System in AnGiang & DongThap
Reduce 20% Full-dike System in AnGiang
Reduce 40% Full-dike System in AnGiang
Reduce 60% Full-dike System in AnGiang
Reduce 80% Full-dike System in AnGiang
Reduce 100% Full-dike System in AnGiang
Sea Level Rise Scenarios
Scenario
SLR 10cm
SLR 30cm
SLR 50cm
SLR 75cm
SLR 100cm
Salinity Instrusion
Scenario
Dry Season in 2004
Dry Season in 2005
Dry Season in 2006
Dry Season in 2007
Dry Season in 2008
Dry Season in 2009
Dry Season in 2010
Dry Season in 2011
Dry Season in 2012
Dry Season in 2013
Dry Season in 2014
Dry Season in 2015
STATISTICAL DATA
Data
Inland aquaculture area in Mekong delta
Total rice-planted area in Mekong delta


Profile
Name of chairman : Upasiri de Silva
Nature of Business : Manufacturer, Expoiter & Supplier
Kavidu gems is a newly introducing party to the gem industry. Though they are introducing themselves to newer to this industry.
They are offering numerous services for their customers.
This was established in 1985. We are guiding to see gem mines and we have an excellent collection of various and any kind of gems that are in the
gem industry. We have a solid reputation in the gem industry. We have rare stones and rocks that may lighten your life. We can make your life
truly special and unforgettable with our collection of gems.
We are awesome!
 Vis ex soluta tritani. Ne pro esse facete expetendis, laudem eirmod minimum nec in. Est quidam urbanitas gloriatur no, eu unum suscipit disputando eam, nam bonorum facilisi ut. Putent efficiantur et pri, eu primis laoreet eum, ut malis everti mel.
Ne utroque prodesset mei, mea no aliquam utroque. Has ne tation argumentum. Vis ex insolens reformidans, mea semper impetus argumentum ad. Sea erroribus sadipscing in. Mel cu dolore admodum accumsan, mea timeam perpetua disputationi ne, urbanitas prodesset ex vel. Ei nostro molestiae moderatius cum. Adhuc persius dolores ut sed, quis vidisse vituperata duo in. Quot signiferumque eos cu, ad dissentiet theophrastus has, eum tota utroque nusquam te. Ei elit eirmod delicata pri. Solet affert theophrastus pro ei, ius enim homero deleniti te.
Services
- Gem cutting services
- Office to buy gems
- Gem tours as guiding to see gem mines , gem market , gem cutting .
- Contact us for any kind of gem stones.


Like the iii chord, the ii chord is slightly more harmonically distant than IV, V, and vi. However, unlike the iii, the ii does not have the same restrictions as to which chords should follow it. In fact, the ii is extremely versatile and can be used in a number of different situations. To illustrate this, we’ve made a similar chart to the one in the last section, this time showing the statistics for which chords follow a ii chord in the Theorytab database.
One function of ii is as a substitution for a IV. One famous example of this substitution occurred in the so-called “50’s progression”. During the 1950’s, the progression I → vi → IV → V showed up in so many hit songs that people began to take notice. The progression was even lampooned in the musical Grease in the song “Those Magic Changes”
Clearly innovation was needed, and songwriters looking for a “fresh” sound struck upon the idea to use the same progression while simply replacing the IV with the slightly more exotic sounding ii chord. The result was a slew of songs using the much more original I → vi → ii → V. “Sherry” by The Four Seasons is one of many examples from the era:
The reason ii can often substitute for IV so nicely is that both chords can function as what are called pre-cadence chords. In the Harmony-I chapter, we talked about the basic structure that most chord progressions follow. After leaving home base, the progression plays around harmonically before getting back to I through a cadence chord:
In a longer progression, pre-cadence chords smooth the transition to the cadence chord (remember, V is the most common cadence chord in a long progression). Below we show where a pre-cadence chord goes in a general progression:
Along with IV, ii is the most common pre-cadence chord. However, to say that ii is just a substitute for IV in all circumstances is an oversimplification. In shorter progressions, you learned that IV frequently can act as a cadence chord just like V. ii, on the other hand, does not have a strong pull towards I, so it is not normally used to end a chord progression. When IV is acting as a cadence chord, ii is not a good replacement for IV.
In addition to its role as a pre-cadence chord, ii also functions well before or after the IV chord itself. The following example shows the ii chord being used in this way.
Unlike the iii chord, the ii chord offers a fair amount of flexibility even in four-chord progressions. Since the ii is a good pre-cadence chord, it can act as the third chord of the progression: I → X → ii → (IV or V), where X can be a number of chords such as IV, vi, or V. Also ii can act as the second chord: I → ii → X → (IV or V), where there are a number of choices for the third chord before the cadence chord. A common choice for this chord is the vi, which serves nicely to set up a cadence on V or IV, as in “Halo” by Beyonce:
In the next chapter we will be introducing you to chord inversions. You’ll see that the ii has some powerful uses when combined with this new chord type.
Using your knowledge of how each chord functions in a chord progression (and with the notes in the melody), try to figure out which chords belong in the question marks below.
c. Below you can listen to the song with the missing chords filled in. It is the chorus of “Fireflies” by Owl City.


[§132D-18] Effect on other laws. Nothing in this chapter shall be construed to apply to the possession, storage, sale, or use of explosives and combustibles in accordance with chapter 396. [L 1994, c 180, pt of §1]


jQuery Methods to get Device and Browser informations
- Source:
Methods
(static) getBrowserId() → {string}
Method to get Browser Id (Short Name).
- Source:
Returns:
The browser id.
- Type
- string
(static) getBrowserName() → {string}
Method to get Browser Name.
- Source:
Returns:
The browser name.
- Type
- string
(static) getBrowserVersion() → {string}
Method to get Browser Version.
- Source:
Returns:
The browser version.
- Type
- string
(static) getInfo() → {object}
Method to get all available device and browser informations.
- Source:
Returns:
The device and browser infromation.
- Type
- object
(static) getOsId() → {string}
Method to get Operating System Id (Short Name).
- Source:
Returns:
The OS id.
- Type
- string
(static) getOsName() → {string}
Method to get Operating System Name.
- Source:
Returns:
The OS name.
- Type
- string
(static) getOsVersion() → {string}
Method to get Operating System Version.
- Source:
Returns:
The OS version String.
- Type
- string
(static) getOsVersionBugfix() → {number}
Method to get Operating System Version Bugfix.
- Source:
Returns:
The OS version Bugfix.
- Type
- number
(static) getOsVersionCategories() → {object}
Method to get Operating System Version Categories.
- Source:
Returns:
The OS version Categories.
- Type
- object
(static) getOsVersionMajor() → {number}
Method to get Operating System Version Major.
- Source:
Returns:
The OS version Major.
- Type
- number
(static) getOsVersionMinor() → {number}
Method to get Operating System Version Minor.
- Source:
Returns:
The OS version Minor.
- Type
- number
(static) getOsVersionString() → {string}
Method to get Operating System Version String.
- Source:
Returns:
The OS version String.
- Type
- string
(static) isAndroid() → {boolean}
Method to detect Android.
- Source:
Returns:
The match status.
- Type
- boolean
(static) isBlackberry() → {boolean}
Method to detect BlackBerry.
- Source:
Returns:
The match status.
- Type
- boolean
(static) isBsd() → {boolean}
Method to detect BSD/Unix.
- Source:
Returns:
The match status.
- Type
- boolean
(static) isChrome() → {boolean}
Method to detect Chrome.
- Source:
Returns:
The match status.
- Type
- boolean
(static) isDesktop() → {boolean}
Method to detect desktop devices.
- Source:
Returns:
The match status.
- Type
- boolean
(static) isEdge() → {boolean}
Method to detect Microsoft Edge.
- Source:
Returns:
The match status.
- Type
- boolean
(static) isFirefox() → {boolean}
Method to detect Firefox.
- Source:
Returns:
The match status.
- Type
- boolean
(static) isIe() → {boolean}
Method to detect Internet Explorer.
- Source:
Returns:
The match status.
- Type
- boolean
(static) isIeMobile() → {boolean}
Method to detect Microsoft Internet Explorer Mobile.
- Source:
Returns:
The match status.
- Type
- boolean
(static) isIos() → {boolean}
Method to detect iOS.
- Source:
Returns:
The match status.
- Type
- boolean
(static) isIpad() → {boolean}
Method to detect iPad.
- Source:
Returns:
The match status.
- Type
- boolean
(static) isIphone() → {boolean}
Method to detect iPhone.
- Source:
Returns:
The match status.
- Type
- boolean
(static) isLinux() → {boolean}
Method to detect Linux.
- Source:
Returns:
The match status.
- Type
- boolean
(static) isMacos() → {boolean}
Method to detect Mac OS.
- Source:
Returns:
The match status.
- Type
- boolean
(static) isMobile() → {boolean}
Method to detect mobile devices.
- Source:
Returns:
The match status.
- Type
- boolean
(static) isMsie() → {boolean}
Method to detect Microsoft Internet Explorer (IE/Edge).
- Source:
Returns:
The match status.
- Type
- boolean
(static) isOpera() → {boolean}
Method to detect Opera.
- Source:
Returns:
The match status.
- Type
- boolean
(static) isOperaMini() → {boolean}
Method to detect Opera Mini.
- Source:
Returns:
The match status.
- Type
- boolean
(static) isSafari() → {boolean}
Method to detect Safari.
- Source:
Returns:
The match status.
- Type
- boolean
(static) isSupported() → {boolean}
Method to detect Browser and Device support.
- Source:
Returns:
The match status.
- Type
- boolean
(static) isWindows() → {boolean}
Method to detect Windows.
- Source:
Returns:
The match status.
- Type
- boolean
(static) isWindowsPhone() → {boolean}
Method to detect Windows Phone.
- Source:
Returns:
The match status.
- Type
- boolean