Links
Table of Contents
Rimu Reference
Rimu is a readable-text to HTML markup language inspired by AsciiDoc and Markdown.
At its core Rimu is a simple readable-text markup similar in scope to Markdown, but with two additional areas of functionality (both built into the Rimu markup syntax):
- Markup generation can be customized and extended.
- Rimu includes a simple, flexible macro language.
- A subset of Rimu syntax is Markdown compatible.
- The generated HTML is compatible with all modern browsers.
- Rimu implementations are available for various languages and runtime environments.
Resources
Installation
See Rimu README for installation instructions.
Learning
- Experiment with Rimu in the Rimu Playground.
- Click the Edit icon ✎ in the examples below to enable live editing of the Rimu source; click the Preview icon ⬄ to toogle output between HTML and Preview.
- Read Rimu Tips.
Example applications
See the API documentation.
- Rimu includes the rimuc command-line tool and the Rimu Playground — examples of using Rimu in Node.js and in the browser respectively.
- A toy Chrome browser extension for rendering Rimu Markup files directly in the browser.
Documents
A Rimu document consists of a sequence of zero or more Block elements.
Block elements
Block elements consist of one or more lines of text and may contain Inline elements and, in some cases, Block elements. Block elements are classified as either Delimited Blocks or Line Blocks.
Delimited Blocks
A Delimited Block consists of an opening delimiter line followed by zero or more content lines and terminated with a closing delimiter line. Delimited Block behaviour is user customizable.
Line Blocks
A Line Block consists of a single line. Headers, Block Attributes, single-line comments and Element Definitions are all Line Block elements.
Inline elements
Inline elements are contained within the textual content of block elements. There are three types of Inline elements: Macro Invocations, Quotes and Replacements.
Taxonomy
Rimu markup elements are categorized as follows:
Block elements Delimited Blocks HTML Block Fenced Blocks Code Block Division Block Quote Block Macro Definition Multi-line Comment Paragraphs Indented Paragraph Normal Paragraph Quote Paragraph Line Blocks API Option Block Attributes Block Image Element Definitions Macro Definition Quote Definition Replacement Definition Delimited Block Definition Header Single-line Comment Lists Bullet List Numbered List Labeled List Inline elements Macro Invocations Exclusion Inclusion Parametrized Simple Quotes Bold Emphasis Monospaced Strikethrough Replacements Character entity HTML tag Image Line break URL
Document processing
Rimu scans the input text for block elements. When a block element is matched it is converted to HTML on the output.
Block elements in the source markup are matched in the following order of precedence (first to last):
Inline elements are processed in the following order (first to last):
Special character substitution takes place last. Inline substitutions in Delimited Block elements can be controlled using block-options in the Block Attributes element.
Comments
Use comments to exclude text in Rimu markup from the outputted HTML.
Single and Multi-line comments
Rimu has both single line and multi-line comment elements.
- A Multi-line comment starts with a line containing only
/*
and ends with a line containing only*/
. - A Single-line comment is a line of text starting with
//
. - Comments are not included in the HTML output.
- Comments are block elements and cannot be used inline, for example mid-paragraph (use Inline comments instead).
- Comment delimiters must start at the left margin.
- Comments can be escaped by prefixing the opening delimiter with a backslash character.
- Use an HTML comment if you want the comment to be included in the HTML output.
Examples:
Examples
| Rimu Markup |
|
| HTML | Preview
|
Inline comments
The predefined Blank macro (--
) can be used
for inline comments:
- Exclude individual lines using an Exclusion macro invocation.
- Place comments anywhere in an inline context using a Parametrized macro invocation. This works because the Blank macro has no formal parameters).
Examples
| Rimu Markup |
|
| HTML | Preview
Lorem ipsum dolor sit amet sapien. Imperdiet pellentesque minim. Lorem ipsum dolor sit amet sapien. Imperdiet pellentesque minim. Lorem ipsum dolor sit amet sapien. Imperdiet pellentesque minim. |
See also Conditional inclusion.
Headers
A Header is a Line Block element containing a title
which is prefixed by one to six #
or =
characters. A matching
postfix is optional.
- Header prefixes and postfixes must be separated from the title text by whitespace.
- Inline elements are allowed in the header title.
Examples
| Rimu Markup | HTML | Preview
|
h1 headerh2 headerh3 headerh4 headerh5 headerh6 header |
Fenced Blocks
Fenced blocks are Delimited Blocks bounded by opening and closing delimiter lines consisting of two or more delimiter characters starting at the left margin.
- The number of characters in the closing delimiter must exactly match the number in the he opening delimiter — this allows fenced blocks of the same type to be nested.
- The behaviour of individual Fenced Blocks can be customized with a preceding Block Attributes element.
- CSS class names appended to the opening delimiter line of Code, Division and Quote fenced blocks will be injected into the block's opening HTML tag (this is an alternative to using a Block Attributes element).
- Fenced Blocks can be escaped by prefixing the opening delimiter with a backslash character.
- You can customize the generated HTML with Delimited Block definitions.
Code Block
By default the all text in a Code Block is rendered verbatim. The
generated HTML is enveloped with
...

tags.
The Code Block delimiter character is a backtick.
Examples
| Rimu Markup | HTML | Preview
|
|
Quote Block
A Quote Block renders the enclosed block elements inside an HTML

element. The Quote Block delimiter character can be
either a double-quote or a greater-than symbol.
Examples
| Rimu Markup | HTML | Preview
|
|
The above example uses the rimuc command --layout
option's CSS cite class to style the Anonymous attribution.
Division Block
A Division Block is a container for block elements.
- The Division Block delimiter character is a period.
- If the Division Block has HTML attributes
then the output is enclosed in an HTML
div
element. If the Division Block has no HTML attributes then the HTMLdiv
tags are omitted.
Examples
| Rimu Markup | HTML | Preview
|
Nunc mauris tempor. Scelerisque feugiat massa alias. |
Division Blocks are useful for appending arbitrary block elements to list items. They can also be used to conditionally include Rimu source text.
HTML elements
Block and inline HTML elements can be mixed with Rimu markup.
- Macro invocations in HTML elements are expanded.
- HTML tags can be escaped with a backslash character prefix.
- HTML elements can be excluded from the output using the API safeMode option.
Inline HTML elements
- Any well formed HTML tag is allowed in an inline context.
Examples
| Rimu Markup |
|
| HTML | Preview
An inline HTML span. |
Block HTML elements
- The opening tag of an HTML block element must start at the left margin.
- An HTML block element is terminated with a blank line.
Examples
| Rimu Markup |
|
||||
| HTML | Preview
An HTML table block element:
|
Paragraphs
Paragraph block elements are terminated by a blank line (lines containing only space characters do not terminate a paragraph).
Individual paragraph behavior can be modified with a preceding Block
Attributes element. The behavior of all paragraphs
can be modified with a Delimited Block
Definition (block name paragraph
for
Normal Paragraph; indented
for Indented Paragraph; quote-paragraph
for Quote Paragraph).
There are three paragraph types:
Normal paragraph
Normal paragraphs can contain inline elements, the first line must start at the left margin.
You can force line breaks in normal paragraphs by putting a space followed by a backslash character at the end of a line.
Line breaks can be escaped by prefixing the trailing backslash with another backslash character.
Examples
| Rimu Markup | HTML | Preview
|
Nunc mauris tempor. Scelerisque feugiat massa alias. |
Indented paragraph
Indented paragraphs begin with one or more space characters. By
default the all text in an Indented Paragraph is rendered verbatim.
This behavior can be changed using a preceding Block
Attributes element. By default the generated HTML
is enveloped with
...

tags.
Examples
| Rimu Markup | HTML | Preview
|
|
Quote paragraph
Quote paragraphs begin with a >
character and are rendered inside an
HTML

element. Leading >
characters are optional for
all lines except the first line. Leading >
characters can be escaped
with a backslash character. In all other respects Quote paragraphs
behave the same as Normal paragraphs.
Examples
| Rimu Markup | HTML | Preview
|
|
Lists
Each list item includes an identifier (ID) that groups items into lists. There are three types of list: Bullet, Numbered and Labeled, each with its own unique set of list IDs.
List item ID List type
___________________________________________
-, +, *, **, ***, **** Bullet list
., .., ..., .... Numbered list
::, :::, :::: Labeled list
___________________________________________
- Bullet and Numbered list items begin with the list ID. The list
ID must be separated by one or more spaces from the list item text.
Bullet and numbered lists
Rimu MarkupHTML Preview- First item. . Nested numbered item. - Second item of first list.
- First item.
- Nested numbered item.
- Second item of first list.
- First item.
- Labeled list items begin with the term text followed
immediately by the list ID, then one or more spaces or a line break,
then the definition text.
Labeled list
Rimu MarkupHTML PreviewFirst term:: Definition one. Second term:: Definition for second term.
- First term
- Definition one.
- Second term
- Definition for second term.
- A list item consists of a first line followed by zero or more
additional lines, followed by an optional attached
element, followed by an optional
child list.
List item
Rimu MarkupHTML Preview- First line. Second line. "" Optional attached Quote block. "" * Optional child list.
- First line.
Second line.
Optional attached Quote block.
- Optional child list.
- First line.
Second line.
- List items and attached elements can be preceded by Block Attribute elements. This facilitates styling and linking within lists.
- List items can be indented but this has no semantic significance (indents are fussy to write and are prone to editor tab expansion and copy-and-paste corruption).
- Numbered list IDs can be prefixed with numbers but the number has no semantic significance.
- A child list is created when a list item is followed by an item with a list ID that does not belong to the current list or any of its ancestors.
- List items can be escaped with a backslash at the beginning of the line.
- Indented paragraphs, Quote paragraphs, Fenced blocks, HTML
blocks and Multi-line comments can be attached to list items:
- If an Indented paragraph or Quote paragraph is separated from a preceding list item by a single blank line then it is attached to the list item.
- If a Fenced block, HTML block or Multi-line comment immediately follows a list item without any intervening blank lines then it is attached to the list item.
- Lists are terminated:
- When the element following the list item is not a list item.
- When the element following the list item is an ancestor list item.
- By two or more blank lines.
- There are no explicit numbering or bullet styles — this is best left to CSS which can apply a consistent set of list styles.
Examples
| Rimu Markup |
|
| HTML | Preview
|
Quotes
Text can be formatted by enclosing it in one or two quote characters. The built-in quotes are:
Rimu Rendered HTML Font style
___________________________________________________________
_emphasis_ emphasis Italic
*emphasis* emphasis Italic
__strong__ strong Bold
**strong** strong Bold
`code` code Monospaced
``code`` code Monospaced
~~deleted~~ deleted Strikethrough
___________________________________________________________
- Quoted text must begin and end with non-whitespace characters.
- Quotes and inline elements can be nested within a quote with the exception of the Code quote.
- Single underscore quote characters within words are ignored if they are flanked on both sides by alphanumeric characters (use single asterisk quotes to emphasize text within words).
- Quotes can be escaped by prefixing the opening quote with with a backslash character. If the text contains multiple quotes of the same type then, to resolve ambiguity, additional quotes may have to be escaped.
- The Code quote renders quoted text verbatim with one exception: Macro Invocations are expanded.
Examples
| Rimu Markup | HTML | Preview
|
Some bold text,
some emphasized text,
some |
Quote Definition
You can modify existing quote behavior or add new quotes using Quote definitions.
Definition syntax:
quote-delimiter = '<open-tags>|<close-tags>'
quote-delimiter
can be one or two characters.open-tags
andclose-tags
are the HTML tags that envelope the generated HTML.- Use a two-bar
||
separator to render the quoted text verbatim (like the built-in code quote). - A Quote definition must start at the left margin and must not extend beyond the end of the line.
- Quote definitions are not processed if the SafeMode API option is non-zero.
- Macro invocations are expanded inside the
open-tags
andclose-tags
.
The following quote definition envelopes quoted text with an HTML superscript tag:
^ = '|'
Replacements
A Replacement replaces matched source text with some other text (usually HTML markup). A replacement is defined by a regular expression (to find the matched text) and the text to be replaced.
With the exception of Quotes all Rimu Inline elements are implemented as replacements e.g. character entities, URLs, inline images, inline HTML tags.
Replacement Definition
Definition syntax:
/pattern/flags = 'replacement'
- The regular expression
pattern
syntax and available flags are platform dependent (see Regular Expressions). $1
,$2
… and$$1
,$$2
… inreplacement
are replaced by the corresponding regular expression match groups.$0
and$$0
are replaced by the entire match.- Special characters are escaped in
$1
,$2
… - Quotes are expanded and special characters escaped in
$$0
,$$1
,$$2
…
- Special characters are escaped in
- Replacements are only expanded in inline contexts.
- Replacements are not expanded inside Code quotes, Code blocks or Indented paragraphs.
- If the first matched character is a backslash then replacement will
be escaped i.e. starting the regular expression with
\\?
will ensure it can be escaped. - A replacement definition must start at the left margin and must not extend beyond the end of the line.
- The
replacement
text can invoke previously defined macros. - Replacement definitions are not processed if the SafeMode API option is non-zero.
- If the replacement definition pattern matches that of an existing definition it will replace the existing definition, otherwise it is appended to the end of the replacement definitions list (where it assumes the lowest precedence).
Example replacement definitions:
/\.{3}/ = '…'
/\bTODO\b/ = 'TODO'
URLs
URLs and email address elements are implemented with built-in Replacements.
Syntax:
Rimu Rendered HTML
______________________________________________________________________
url url Note 1
<url> url
<url|caption> caption
[caption](url) caption Note 2
^[caption](url) caption Note 3
<email> email
<email|caption> caption
______________________________________________________________________
Notes:
- Only HTTP and HTTPS raw URLs are auto-encoded.
- The
[caption](url)
syntax is Markdown compatible. - Opens the link in a new browser tab.
Examples
| Rimu Markup | HTML | Preview
|
Images
Syntax:
Rimu Rendered HTML
_______________________________________________________
<image:url|alt>
<image:url>
![alt](url)  Note 1
_______________________________________________________
Notes:
- The
![alt](url)
syntax is Markdown compatible. To maintain Markdown compatibility it is always processed as an inline element i.e. a standalone image will be enclosed within an HTML paragraph element. Use a standalone HTMLimg
element if you want an image to be rendered as a block element (without enclosing paragraph tags).
Examples
| Rimu Markup | HTML | Preview
|
An image can be rendered as a block element: Centered using the rimuc Or rendered inline. |
Character entities
HTML character entities can be included in Rimu source.
Examples
| Rimu Markup | HTML | Preview
|
© ® α ω |
Character entities can be escaped with a backslash character prefix.
Block Attributes
The Block Attributes Line Block element injects HTML attributes into the opening tag of the next block element. You can specify class names, an element ID, CSS styles and any other HTML attributes. The Block Attributes element can also include block-options which control the processing of Delimited Block elements.
Syntax:
.class-names #id "css-properties" [html-attributes] block-options
block-options
is used to control the processing of the succeeding Delimited Block element contents.- Macro invocations in Block Attributes are expanded.
- The leading period character must start at the left margin and the attributes must not extend beyond the end of the line.
- All items are optional but their order is not.
- Successive Block Attributes elements accumulate until they are consumed by the first succeeding Delimited Block element.
class-names
is one or more HTML class attribute names (separated by spaces).id
is a unique HTML id attribute value.css-properties
is one or more CSS property name/value pairs: it injects astyle="css-properties"
attribute into the target opening tag.html-attributes
is one or more HTML attribute name/value pairs: they are injected into the target opening tag.- The
[html-attributes]
section is ignored if the safeMode API option is not zero. - The
-specials
block option is ignored if the safeMode API option is not zero. - The entire Block Attributes element is ignored if bit 2 of the safeMode API option is set.
Examples
| Rimu Markup |
|
| HTML | Preview
Lorum ipsum. Ac curabitur elementum.
Macro {invocations} are not expanded when the |
Delimited Block Definition
You can change Delimited Block behaviour with Delimited Block definitions.
Definition syntax:
|block-name| = '<open-tags>|<close-tags> block-options'
block-name
is is one of the following Delimited Block names:code
,
comment
,
division
,
html
,
indented
,
quote
,
quote-paragraph
,
paragraph
.open-tags
andclose-tags
define the HTML tags that envelope the output block.<open-tags>|<close-tags>
is optional.block-options
is used to control the processing of Delimited block elements.block-options
is optional and consists of one or more of the following space separated options:+macros
(enable macro expansion),
-macros
(disable macro expansion),
+spans
(enable Quote and Replacement element processing),
-spans
(disable Quote and Replacement element processing),
+specials
(enable special character entities),
-specials
(disable special character entities),
+container
(the block is a container for Rimu block elements),
-container
(turn off the container option),
+skip
(skip the block),
-skip
(turn off the skip option).- A Delimited Block definition must start at the left margin and must not extend beyond the end of the line.
- Delimited Block definitions are not processed if the safeMode API option is non-zero.
- Macro invocations in the definition are expanded.
macros
,spans
andspecials
block options are not applied to Division or Quote blocks or Lists.
The following example generates Code blocks with a code-block
class attribute:
|code| = '
|
'
The following example disables Macro Invocation, Quote and Replacement processing in Paragraphs:
|paragraph| = '-macros -spans'
Macros
Macros are a simple yet powerful mechanism for creating shortcuts for repeatedly used markup. They can be used to parametrize documents, promote clarity and eliminate repetition (see Macro Examples).
Rimu provides elements for defining and invoking macros and includes features like macro parametrization, conditional processing and meta macros.
Macro definitions
A macro definition assigns one or more lines of Rimu markup to a macro name.
Definition syntax:
{macro-name} = 'macro-value' Simple macro definition
{macro-name?} = 'macro-value' Existential macro definition
- A macro definition must start at the left margin.
- A macro name consists of one or more alphanumeric, underscore or dash characters.
- Simple macro definitions are processed unconditionally; Existential macro definitions are only processed if the macro has not been defined.
- Macro values are enclosed by single-quote characters and can extend over multiple lines.
- Single-quotes at the end of a line can be escaped by appending a backslash character to the end of the line.
- Macro values can contain macro invocations:
- The macro invocations are expanded when the definition is processed (not when it is invoked).
- Escaped macro invocations will be unescaped when the definition is processed, consequently they need to double-escaped if you want them to be escaped when the macro definition is invoked.
- Macro expansion can be disabled in multi-line macro definitions
using a Block Attributes
-macros
option. $1
,$2
… and$$1
,$$2
… are parameter names, they are replaced with parameter values in Parametrized macro invocations.
Macro invocations
Invocation syntax:
{macro-name} Simple macro invocation
{macro-name|[param1|param2...]} Parametrized macro invocation
{macro-name=pattern} Inclusion macro invocation
{macro-name!pattern} Exclusion macro invocation
- A Simple macro invocation is replaced by the macro value.
$1
,$2
… and$$1
,$$2
… parameter names are replaced with the corresponding parameter values (param1
,param2
…) in Parametrized macro invocations.- If a macro parameter value is not specified then the corresponding parameter name is replaced by a blank string.
- Parameter names in macro definitions can be escaped with a
backslash character prefix e.g.
\$1
. - Macro parameter values can contain inline Rimu elements; inline parameter values can span multiple lines.
- Quotes and Replacements are expanded
and special characters escaped inside double-dollar parameters
(
$$1
,$$2
…). Double-dollar parameters are normally only necessary inside Block HTML elements. - Default parameter values can be specified by appending
:default-value$
to the parameter name e.g.$2:Ford$
will assignFord
to the$2
parameter if it is blank or not specified in the macro invocation. - Dollar characters can be included in default parameter values by
escaping them with a backslash character e.g.
$2:Ten dollars (\$10)$
. - The default value can span multiple lines.
- The default value can be escaped by prefixing the colon with a
backslash character e.g.
$2\:One dollar$
. - The
{macro-name|}
invocation syntax uses only default parameter values. This is not the same as the{macro-name}
simple macro invocation which performs no parameter substitution.
- The
{macro-name=pattern}
Inclusion invocation is replaced by a blank string if the macro value entirely matches thepattern
(wherepattern
is a regular expression. If the macro value does not match thepattern
the containing line is skipped. - The
{macro-name!pattern}
Exclusion invocation syntax is the inverse of the{macro-name=pattern}
syntax i.e. the macro invocation is replaced by a blank string if the macro value does not match thepattern
, if it does match the containing line is skipped. - The regular expression
pattern
syntax in inclusion and exclusion invocations is platform dependent (see Regular Expressions). - By default macro invocations are expanded everywhere except inside
Code blocks and Indented paragraphs. Use the Block
Attributes
+macros
and-macros
options to enable and disable expansion inside Delimited blocks. - Undefined macro invocations are not processed and are passed verbatim to the output.
- Macro invocations can be escaped in block elements that have macro expansion enable using a leading backslash character prefix. Escaped macro invocations are rendered verbatim minus the backslash. Escaping is unnecessary in blocks that do not perform macro expansion (Code blocks and Indented paragraphs).
- Simple macro invocations are allowed in macro parameters and patterns (non-Simple invocations are not).
- Macro invocations can contain
}
characters but they must be escaped with a backslash character (otherwise they will be mistaken for the macro's closing brace). - Macro definitions are not processed if the safeMode API option is non-zero and bit 3 of safeMode API option is not set.
Macro expansion
- Macro invocations are expanded before other elements are processed.
- Macro invocations are processed as Inline
elements with one exception: If a block element
begins with a Macro Invocation that is wholly contained on the first
line then macro invocations in the first line are expanded prior to
all other processing, this behaviour enables the following
use-cases:
- Conditional inclusion of Line Block elements by prefixing them with Inclusion or Exclusion macros.
- Macros can be used to generate Rimu Block elements. For example,
take a look at the
{sidebar}
macro in these examples, it generates a Header block element followed by a Block Attributes block element.
Macro examples
- Using Rimu Macros.
- Use macros to create tables.
- Meta macros.
- Macro tips.
- General purpose macro processor.
Reserved macro names
Macros with names starting with two hyphen characters are reserved for use by Rimu. Reserved macros are used by the Rimu library and by the rimuc command.
Predefined macros
The following macros are available for use in Rimu markup:
Macro name Description
_______________________________________________________________
-- Blank macro (empty string).
The Blank macro cannot be redefined.
--header-ids Set to a non-blank value to generate h1, h2
and h3 header id attributes.
_______________________________________________________________
- See Header id generation.
Header id generation
If the predefined macro --header-ids
is
non-blank Rimu generates unique HTML id
attributes for h1
, h2
and h3
section headers that do not have an explicit id.
HTML id
attributes are generated from Rimu header text as follows:
- Replace characters that are not alphanumeric or underscores with dash characters.
- Replace multiple contiguous dashes with single dash.
- Trim leading and trailing dashes.
- Convert the text to lowercase.
- If no characters remain the id is set to
x
. - If an existing element has a matching id then the id is
successively postfixed with
-2
,-3
… until a unique id is found.
For example a header with the title The End!
will be assigned an
id
attribute value the-end
API Option element
API options can be set in the Rimu source using a Line Block element with the following syntax:
.option-name = 'option-value'
option-name
issafeMode
,htmlReplacement
orreset
.- The
option-value
is a valid option value. - Macro invocations in
option-value
are expanded. - An API Option element must start at the left margin and must not extend beyond the end of the line.
- The option is applied to Rimu markup that follows the option element.
- API Option elements are not processed if the
safeMode
is non-zero.
For example, the following API Option element ensures all subsequent raw HTML is not passed to the output:
.safeMode = '1'
CLI command
Rimu includes a command-line tool that converts Rimu markup to HTML. There are four functionally identical implementations: rimuc (JavaScript implementation), rimukt (Kotlin implementation), rimugo (Go implementation), rimuc (Dart implementation) and rimupy (Python implementation), rimuv (V implementation).
In the documentation the name rimuc refers to all four implementations (unless stated otherwise).
rimuc has options to generate stand-alone styled HTML documents, either from Rimu Markup or from Markdown or any text-to-HTML markup.
Run rimuc --help
to view the rimuc
manpage:
NAME
rimuc - convert Rimu source to HTML
SYNOPSIS
rimuc [OPTIONS...] [FILES...]
DESCRIPTION
Reads Rimu source markup from stdin, converts them to HTML
then writes the HTML to stdout. If FILES are specified
the Rimu source is read from FILES. The contents of files
with an .html extension are passed directly to the output.
An input file named '-' is read from stdin.
If a file named .rimurc exists in the user's home directory
then its contents is processed (with --safe-mode 0).
This behavior can be disabled with the --no-rimurc option.
Inputs are processed in the following order: .rimurc file then
--prepend-file option files then --prepend option source and
finally FILES...
OPTIONS
-h, --help
Display help message.
--html-replacement TEXT
Embedded HTML is replaced by TEXT when --safe-mode is set to 2.
Defaults to 'replaced HTML'.
--layout LAYOUT
Generate a styled HTML document. rimuc includes the
following built-in document layouts:
'classic': Desktop-centric layout.
'flex': Flexbox mobile layout (experimental).
'plain': Unstyled HTML layout.
'sequel': Responsive cross-device layout.
If only one source file is specified and the --output
option is not specified then the output is written to a
same-named file with an .html extension.
This option enables --header-ids.
-s, --styled
Style output using default layout.
Shortcut for '--layout sequel --header-ids --no-toc'
-o, --output OUTFILE
Write output to file OUTFILE instead of stdout.
If OUTFILE is a hyphen '-' write to stdout.
--pass
Pass the stdin input verbatim to the output.
-p, --prepend SOURCE
Process the Rimu SOURCE text (immediately after --prepend-file
option files). Rendered with --safe-mode 0. This option can be
specified multiple times.
--prepend-file PREPEND_FILE
Process the PREPEND_FILE contents (immediately after .rimurc file).
Rendered with --safe-mode 0. This option can be specified
multiple times.
--no-rimurc
Do not process .rimurc from the user's home directory.
--safe-mode NUMBER
Non-zero safe modes ignore: Definition elements; API option elements;
HTML attributes in Block Attributes elements.
Also specifies how to process HTML elements:
--safe-mode 0 renders HTML (default).
--safe-mode 1 ignores HTML.
--safe-mode 2 replaces HTML with --html-replacement option value.
--safe-mode 3 renders HTML as text.
Add 4 to --safe-mode to ignore Block Attribute elements.
Add 8 to --safe-mode to allow Macro Definitions.
--theme THEME, --lang LANG, --title TITLE, --highlightjs, --mathjax,
--no-toc, --custom-toc, --section-numbers, --header-ids, --header-links
Shortcuts for the following prepended macro definitions:
--prepend "{--custom-toc}='true'"
--prepend "{--header-ids}='true'"
--prepend "{--header-links}='true'"
--prepend "{--highlightjs}='true'"
--prepend "{--lang}='LANG'"
--prepend "{--mathjax}='true'"
--prepend "{--no-toc}='true'"
--prepend "{--section-numbers}='true'"
--prepend "{--theme}='THEME'"
--prepend "{--title}='TITLE'"
--version
Print version number.
LAYOUT OPTIONS
The following options are available when the --layout option
is used:
Option Description
_______________________________________________________________
--custom-toc Set to a non-blank value if a custom table
of contents is used.
--header-links Set to a non-blank value to generate h2 and
h3 header header links.
--highlightjs Set to non-blank value to enable syntax
highlighting with Highlight.js.
--lang HTML document language attribute value.
--mathjax Set to a non-blank value to enable MathJax.
--no-toc Set to a non-blank value to suppress table
of contents generation.
--section-numbers Apply h2 and h3 section numbering.
--theme Styling theme. Theme names:
'legend', 'graystone', 'vintage'.
--title HTML document title.
_______________________________________________________________
These options are translated by rimuc to corresponding layout
macro definitions using the --prepend option.
LAYOUT CLASSES
The following CSS classes can be used to style Rimu block
elements in conjunction with the --layout option:
CSS class Description
_______________________________________________________________
align-center Align element content center.
align-left Align element content left.
align-right Align element content right.
bordered Add borders to table element.
cite Quote and verse attribution.
dl-horizontal Format labeled lists horizontally.
dl-numbered Number labeled list items.
dl-counter Prepend dl item counter to element content.
ol-counter Prepend ol item counter to element content.
ul-counter Prepend ul item counter to element content.
no-auto-toc Exclude heading from table of contents.
no-page-break Avoid page break inside the element.
no-print Do not print element.
page-break Force a page break before the element.
preserve-breaks Honor line breaks in element content.
sidebar Paragraph and division block style.
verse Paragraph and division block style.
important Paragraph and division block style.
note Paragraph and division block style.
tip Paragraph and division block style.
warning Paragraph and division block style.
_______________________________________________________________
PREDEFINED MACROS
Macro name Description
_______________________________________________________________
-- Blank macro (empty string).
The Blank macro cannot be redefined.
--header-ids Set to a non-blank value to generate h1, h2
and h3 header id attributes.
_______________________________________________________________
Example usage
- Use rimuc as a filter:
echo 'Hello *Rimu*!' | rimuc
- Generate a styled HTML document with a table of contents and code
syntax highlighting: options:
rimuc --layout sequel --highlightjs reference.rmu
- Prefix a custom macro definition:
rimuc --prepend "{annotations}='yes'" showcase.rmu
- Compile multiple source files to single output file:
rimuc -o book.html frontmatter.rmu chapter*.rmu backmatter.rmu
--layout
option
The --layout
option is used to generate styled HTML documents. It
does this by enveloping the compiled output in a layout specific HTML
header and footer.
rimuc
comes with built-in layouts.
All features enabled by the --layout
option are implemented with
Rimu markup in the header and footer files. The --layout
option
concatenates the input with built-in header and footer files. For
example, the following two commands are functionally identical:
rimuc --layout sequel sites.rmu
rimuc --output sites.html sequel-header.rmu sites.rmu sequel-footer.rmu
Built-in Layouts
You can choose from the following built-in layouts:
- sequel
- Responsive cross-device layout designed to render nicely on desktops, laptops, tablets and phones. This website uses the sequel layout.
- classic
- Desktop-centric layout.
- Not suitable for small screens (the TOC sidebar is hidden on small screens).
- Set the
--dropdown-toc
macro to a non-blank value to place the table of contents in a popup.
- flex
- Flexbox layout. Works nicely with small screens.
- The menu bar automatically positions along the top when the device orientation is portrait.
- Set the
--top-bar
macro to a non-blank value to place the navigation bar along the top of the document.
- plain
- Unstyled HTML layout.
- Does not support any layout classes or layout options.
- v8
- Deprecated Rimu version 8 layout.
Examples of the built-in layouts can be viewed in the Rimu Gallery.
The built-in layouts:
- Create a stand-alone HTML5 document.
- Optionally generate a table of contents.
- Include CSS styles for verses, sidebars, text alignment,
page break control and section numbering (see
rimuc --help
command and examples in Rimu Tips). - Generate unique header id attributes.
- If the
--highlightjs
macro is non-blank Highlightjs is included. - If the
--mathjax
macro is non-blank MathJax is included. - Support named themes.
A number of built-in layout styles are set by header file macro values that can be overridden. For example:
rimuc --layout sequel --prepend "{--primary-color}='#0cc'" sites.rmu
You can view full list of layout macros in the corresponding built-in layout header file.
Themes
A theme is a layout styling variation. Named themes are specified
using the --theme
option. The built-in layouts implement legend,
graystone and vintage themes.
Examples of the built-in layout themes can be viewed in the Rimu Gallery.
The --theme
option value sets the --theme
macro which the layout
header then uses to conditionally
include HTML style
elements.
Table of contents generation
Built-in layouts automatically include a table of contents in the generated HTML document.
- The table of contents is synthesised from top level
h1
,h2
andh3
HTML header elements. - You can suppress the table of contents generation using the
--no-toc
option. - The
--custom-toc
option allows the user to include a custom TOC. - Use the
no-auto-toc
CSS class attribute to exclude a section header from the table of contents, for example:.no-auto-toc ## This header does not appear in the TOC
Custom table of contents
The --custom-toc
option is used in conjunction with built-in
layouts. The --custom-toc
option inhibits the generation of an HTML
TOC container and it is up to the user to include a custom HTML TOC
container in the Rimu markup. This allows you to customise the
location, style and content of the TOC:
- The TOC container must be an HTML element with
id="toc"
. - If the document contains an element with
id="auto-toc"
then it will be loaded with the auto-generated TOC entries, if this element is omitted TOC entries will be skipped.
If --custom-toc
is not specified the following TOC container is
inserted in the output document:

API
Rimu has just one API for translating Rimu markup to HTML:
render(source [, options])
The source
argument is a string containing Rimu markup. The return
value is a string containing the resultant HTML.
The optional options
argument controls rendering behaviour.
The render()
API is stateful: macros and custom element definitions
are retained across API calls along with API options.
Use the reset
option to restore the default state.
Example usage
Node.js
var rimu = require('rimu');
var html= rimu.render('Hello *Rimu*!');
See Rimu README.
Deno
import * as rimu from "https://raw.github.com/srackham/rimu/master/mod.ts";
console.log(rimu.render("Hello *Rimu*!"));
See Rimu README.
Kotlin
import org.rimumarkup.RenderOptions
import org.rimumarkup.render
fun main(args: Array<String>) {
println(render("Hello *Rimu*!", RenderOptions(reset = true))
}
See the Rimu Kotlin README.
Go
package main
import (
"fmt"
"github.com/srackham/go-rimu/v11/rimu"
)
func main() {
fmt.Println(rimu.Render("*Hello Rimu*!", rimu.RenderOptions{Reset: true}))
}
See the Rimu Go README.
Dart
import 'package:rimu/rimu.dart';
main(List<String> arguments) {
print(render('Hello *Rimu*!', RenderOptions(reset: true)));
}
See the Rimu Dart README.
Python
import rimu
print(rimu.render('*Hello World*!', rimu.RenderOptions(reset=True)))
See the Rimu Python README.
V
module main
import srackham.rimu
fn main() {
println(rimu.render('*Hello Rimu*!', rimu.RenderOptions{}))
}
See the Rimu V README.
API options
The API options
argument is an object with zero or more of the
following properties:
safeMode
This option has a number value that controls how Rimu renders embedded HTML and how Rimu definition and option elements will be processed:
0 => Render HTML (default behavior). 1 => Ignore HTML. 2 => Replace HTML with the 'htmlReplacement' option string. 3 => Render HTML as text. Add 4 to safeMode to ignore Block Attribute elements. Add 8 to safeMode to allow Macro Definitions.
- If
safeMode
is zero all Rimu elements will be processed. - If
safeMode
is non-zero the following Rimu elements are ignored:- Rimu definition elements (Delimited Block, Macro, Quote and Replacement definitions).
- API Option elements.
- HTML attributes in Block Attribute elements.
- Add 4 to
safeMode
to ignore Block Attribute elements completely, this ensures HTML element IDs cannot be created and that CSS classes or properties cannot be used explicitly. - Add 8 to
safeMode
to allow Macro Definitions. Allowing Macro Definitions is not intrinsically unsafe because their safety or otherwise is solely determined by the safety of their constituent elements. - For example, a
safeMode
value of 13 (1+4+8) skips HTML elements, allows macro definitions but skips all other Rimu definition elements along with API option elements. - Once a non-zero
safeMode
has been set then it can only be reset by arender()
API call with asafeMode:0
or areset:true
option.
- If
htmlReplacement
- A string that replaces embedded HTML when
safeMode
is set to2
. Defaults toreplaced HTML
. callback
callback
is a function that handles diagnostic events emitted by therender()
API. Thecallback
function is passed a singlemessage
argument. Themessage
argument is an object with atype
property ('error'
,'warning'
or'info'
) and atext
property (a string containing the diagnostic message). Callback examples:// JavaScript and TypeScript. function callback(message) { console.log(message.type + ': ' + message.text); } var html = Rimu.render('Hello *Rimu*!', {callback: callback});
# Python. def callback(message): print(f'{message.type}: {message.text}') html = rimu.render('Hello *Rimu*!', rimu.RenderOptions(callback=callback))
// Dart. callback(CallbackMessage message) { print('${message.type}: ${message.text}'); } var html = render('Hello *Rimu*!', RenderOptions(callback: callback));
// Kotlin. fun callback(message: CallbackMessage) { println("${message.type}: ${message.text}") } var html = render("Hello *Rimu*!", RenderOptions(callback = callback))
// Go. opts := rimu.RenderOptions{} opts.Callback = func(message rimu.CallbackMessage) { fmt.Println(message.Kind + ": " + message.Text) } html := rimu.Render("Hello *Rimu*!", opts)
// V. mut opts := rimu.RenderOptions{} opts.callback = fn (message rimu.CallbackMessage) { println(message.kind + ': ' + message.text) } html := rimu.render('Hello *Rimu*!', opts)
reset
- This boolean option causes the render API to be set to its default
state (default option values; default Quotes, Replacements and
Delimited Block definitions; predefined macro definitions only; no
callback). The
reset
option is processed before other options.
Vim syntax file
The Rimu distribution includes a
syntax
highlighter for the Vim editor. Copy rimu.vim
to your
$HOME/.vim/syntax
directory and then use the Vim :set syn=rimu
command or put this line in your $HOME/.vimrc
file to enable Rimu
syntax highlighting:
autocmd BufRead,BufNewFile *.rmu setlocal filetype=rimu
The syntax file also sets Vim text formatting options, if they're not to your taste delete them from the end of the file.
Regular Expressions
Regular expressions can be embedded in replacements definitions and inclusion/exclusion macro invocations.
The language specific regular expression engine is used. This means that platform differences between regular expression syntax is a potential source of cross-platform incompatibility. To avoid cross-platform incompatibility use regular expression syntax that is common to all platforms:
- JavaScript, TypeScript and Dart use ECMA-262 regular expressions.
- Java and Kotlin regular expressions.
- Go regular expressions.
- Python regular expressions.
Guidelines:
- No named groups.
- No look-ahead or look-behind groups.
- No backreferences (
\1, \2, ...
). - Use only the
i
flag in replacement definitions. - No embedded flags.
Rimu implementations
Here is a list of Rimu implementations:
- The canonical TypeScript version for Deno, Node.js and browser runtime environments.
- A Kotlin port for the JVM platform.
- A Go language port.
- A Dart port.
- A Python port.
- A V language port.
Time taken to compile 3,719 lines of Rimu Markup:
TypeScript 455ms
Deno 257ms
Go 289ms
Kotlin 1032ms
Dart 114ms
Python 262ms
V 79ms
Version numbering
- All implementations use semantic version numbers.
- Implementations with the same major and minor version numbers are functionally identical.
- The patch version numbers are port specific.
- Changes to one implementation will normally be propagated to the next release of other Rimu implementations but there is no implied equivalence of the patch version numbers across the various ports.
Other
- By convention Rimu markup text files have a
.rmu
file name extension but if your markup is confined to Rimu's Markdown compatible subset then use.md
to signal your intent.


QUIZ SHOW A film review by Raymond Johnston Copyright 1994 Raymond Johnston
Dir: Robert Redford Starring: Ralph Fiennes, John Turturro, Rob Morrow, David Paymer, Paul Scofield.
Robert Redford has proven that he is a better middle-aged director than he is a middle-aged actor. His recent roles in HAVANA, SNEAKERS, and the truly dreadful INDECENT PROPOSAL can in no way stand beside his stunning achievement in directing A RIVER RUNS THROUGH IT and now QUIZ SHOW.
The ambiance of the late Eisenhower years is perfectly recreated. The cars, clothing, hair styles, magazine covers, and idiom all come together to make a credible world, a world where naive people believed that everything they saw on television was true. It was television that made everyone equal, and into this world come people from diverse backgrounds. All of them see the new medium as their ticket to the top. Television becomes something like a mirror that reflects the character's moral make-up.
When a film is based on questions of character, what a good director needs most is character actors. Quiz show is filled them. John Turturro (DO THE RIGHT THING) is mercilessly annoying in the role of Queens, New York bookworm Herbert Stempel, a man whom one person comments has a face for radio. Few actors would have dared to create a nudge with so few redeeming qualities.  He is as flawless as Stempel is flawed. Between the two of them there is variety of fights: rich v. poor, Gentile v. Jew, handsome v. unhandsome, suburbs v. city.
While they are not top billed, the amoral center of the film is the two game show producers, played by Hank Azaria and David Paymer. They are two fast talkers who take basically honest people, and tell them how the game show really works. David Paymer as Dan Enright, carries the heaviest load in the film. If his depiction of the producer who sees nothing more than ratings had been off the mark, the whole film would have faltered badly. But David Paymer is every media executive. If he doesn't win the Oscar for best supporting actor, it is probably because the show is fixed.
The only near miss is Rob Morrow, whose attempt at a Kennedy-esque Boston accent manages to mostly be grating. Also appearing in the film is Martin Scorcese in a cameo. One cannot help speculating that he gave Redford a few tips on camera angles.
The script by Paul Attanasio lets up on the moralizing enough for a few good laughs. Robert Redford keeps the longish film moving at a good pace, leaving one story line for another just before it gets boring. QUIZ SHOW kicks off the serious fall Oscar race, and should be a strong contender in most categories including minor ones like costume and set design.
This film would make a good double feature with Francis Coppola's similarly themed TUCKER: THE MAN AND HIS DREAM. Both are about the gap between idealism and reality in the post World War II era.
.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


A very popular backend language, websites of all kinds are based on PHP.
CSS determines things like page layouts and what users see when looking at a website. It's a good choice for the visually-minded.
Ruby is a popular language for building heavily interactive web content. Forums, or most sites with accounts, are often made with Ruby.
Java is a widespread programming language used in many applications, and tied closely to Android.
Hey, they're all great!


Add form: redirecting the request
We have a Products listing, but no way to register products. Thus, let's create a
form for adding products. Since it is not a good idea to access the jsps directly,
let's create an empty method that only redirects to a jsp:
@Resource
public class ProductsController {
//...
public void form() {
}
}
So we can access the form by URI /products/form
, and the form will be at
/WEB-INF/jsp/products/form.jsp
:
<form action="<c:url value="/products/adiciona"/>">
Name: <input type="text" name="product.name" />

Description:<input type="text" name="product.description" />

Price: <input type="text" name="product.price" />

<input type="submit" value="Save" />
</form>
This form will save a product using the URI /products/add
, so we must create
this method on the controller:
@Resource
public class ProductsController {
//...
public void add() {
}
}
Look at the input names: product.name, product.description and product.price.
If we receive a Product
named product
as parameter on add method, VRaptor will
set the fields name, description and price with the input values, using
the corresponding setters on Product. The product.price parameter will also be converted
into Double before being set on the product. More information on Converters chapter.
Thus, having the correct names on the form inputs, we can create the add method:
@Resource
public class ProductsController {
//...
public void add(Product product) {
dao.save(product);
}
}
Right after saving something on a form we usually want to be redirected to the listing
or back to the form. In this case we want to be redirected to the products listing.
For this purpose there is a VRaptor component: the Result
. It is responsible for
adding attributes on the request, and for dispatching to a different view. To get a Result
instance you must receive it as a constructor parameter:
@Resource
public class ProductsController {
public ProductsController(ProductDao dao, Result result) {
this.dao = dao;
this.result = result;
}
}
In order to redirect to the listing, you can use the result object:
result.use(Results.logic()).redirectTo(ProductsController.class).list();
This code snippet can be read as: As a result, use a logic, redirecting to the
list method in ProductsController. All redirect configuration is 100% java code,
with no strings involved! It's clear from the code that the result from your logic
is not the default, and which one you're using. There is no need to worry about
configuration files. Furthermore, if you need to rename the list
method, there
is no need to go through your entire application looking for redirects to this method,
just use your usual refactoring IDE to do the rename.
Our add
method would look like this:
public void add(Product product) {
dao.add(product);
result.use(Results.logic()).redirectTo(ProductsController.class).list();
}
You can get more info on Result
at the Views and Ajax chapter.


UDPTimeouts recv_millis
Parameters
recv_millis - milliseconds value
Description
recv_millis allows you to control how long the RecvUDPMsg() function will wait for a new message. By default, this is set to 0, meaning RecvUDPMsg() will return immediately if there is no message to be received.
Index
Click
here
to view the latest version of this page online


Place text log files to the same directory (./), and video files to "UGM" directory(./UGM/).
Select a text log file to "LogFile" input below. Then You will see the video on the left and log on the right.
You can:
Log will scroll with video time when video playing.
Video will jump to corresponding log time when user click a log.
Adjust "Difference" below to shorten the differences between video and log.
When user click a Contextual_Attr log, mark backgrounds of logs of same GameObject's name or tag to yellow, following by "Contextual_Attr search by" below.
When user click a Contextual_Event log, mark backgrounds of logs of same GameObject's name to yellow.


Solution

This documentation wil provide you will the neccesary information to complete Project #4 of freecodecamp.org Responsive Web Design Certification. In this documentation, we will cover all of the user stories needed to complete this project. If you feel that this documentation is not sufficient, please reach out to us and we will update this page.
You can always jump to the user story section that you prefer by clicking the following links:
I can see a main element with a corresponding id="main-doc", which contains the page's main content (technical documentation).

Within the #main-doc element, I can see several section elements, each with a class of main-section. There should be a minimum of 5.

The first element within each .main-section should be a header element which contains text that describes the topic of that section.

User Story 3

Each section element with the class of main-section should also have an id that corresponds with the text of each header contained within it. Any spaces should be replaced with underscores (e.g. The section that contains the header "Javascript and Java" should have a corresponding id="Javascript_and_Java").

The .main-section elements should contain at least 10 p elements total (not each).

This tage should appear at least 10 different times.

The .main-section elements should contain at least 5 code elements total (not each).
Choose whichever 5 tags you wish to use anywhere in your page
The .main-section elements should contain at least 5 li items total (not each).

User Story 1

User Story 2

User Story 3

User Story 4

User Story 5

I can see a nav element with a corresponding id="navbar".

The navbar element should contain one header element which contains text that describes the topic of the technical documentation.
This information will be unique among other articles.
User Story 9
Additionally, the navbar should contain link (a) elements with the class of nav-link. There should be one for every element with the class main-section.
User Story 10
The header element in the navbar must come before any link (a) elements in the navbar.
This information will be unique among other articles.

Project 4 Documentation

Each element with the class of nav-link should contain text that corresponds to the header text within each section (e.g. if you have a "Hello world" section/header, your navbar should have an element which contains the text "Hello world").
User Story 12
When I click on a navbar element, the page should navigate to the corresponding section of the main-doc element (e.g. If I click on a nav-link element that contains the text "Hello world", the page navigates to a section element that has that id and contains the corresponding header.
User Story 13
On regular sized devices (laptops, desktops), the element with id="navbar" should be shown on the left side of the screen and should always be visible to the user.
Your CSS should include the following for the #id navbar
#navbar {
position: fixed;
}
My Technical Documentation page should use at least one media query.
Since this project is using a responsive framework (bootstrap), media query's are in the background.
No code here, see bootstrap's starter code


TimePicker demo
Simple
A timepicker instantiated with no options
Custom intervals
A timepicker instantiated with 10 minute intervals


Proccessing payment ...
Name
Username
Product id
Product 1 - 10$
Product 2 - 20$
Product 3 - 30$
ZIP code
Card
Pay
Success! Your Stripe token is


2 ISIS members nabbed in Calabarzon
by Celso C. LidotCAMP BRIG. GEN. VICENTE LIM, CANLUBANG CITY, CALAMBA, LAGUNA – Joint police and military personnel on Saturday arrested two suspected terrorists in separate anti-terror operations in Tayabas City, Quezon and in Calamba City, Laguna.
Arrested in Tayabas City was Saidie Saro alias “Abu Hudaifa.”
Saro was caught in Bgy. Angeles Zone 2 by virtue of a search warrant for violations of RA 10591 or the Comprehensive Firearms and Ammunition Act and PD 1866 or Illegal Possession of Explosives.
Seized from the suspect were a hand grenade, a live ammunition and an improvised explosive device (IED).
In Calamba City, authorities arrested Bobby Gabunatan Sarip, who yielded an IED and a cellular phone.
Sarip was nabbed in an operation in Bgy. Real.
Police said both suspects, who were alleged members of the Dawlah Islamiyah Terror Group, were found in possession of ISIS flags when arrested.
The arrests were triggered by an information that ISIS members in the country are planning to sow terror during SEA Games events hosted by the Philippines, and are scheduled to start in late November.
Some of the games will be held in various parts of Calabarzon region.


Forces the removal of a self-hosted runner from a repository. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. Anyone with admin access to the repository can use this endpoint. GitHub Apps must have the administration
permission to use this endpoint.
DELETE /repos/:owner/:repo/actions/runners/:runner_id
Status: 204 No Content


Write a topic of your interest on the field and hit the Search button. This will retrieve from the sites to the left and pack your info on a single point.


Product Description for Asus TUF Gaming Ryzen 5 Quad Core - (8 GB/1 TB HDD/Windows 10 Home/3 GB Graphics/NVIDIA Geforce GTX 1050) FX705DD-AU055T Gaming Laptop (17.3 inch, Black Plastic, 2.70 kg)
Build and Design
Asus TUF Gaming Ryzen 5 Quad Core - (8 GB/1 TB HDD/Windows 10 Home/3 GB Graphics/NVIDIA Geforce GTX 1050) FX705DD-AU055T Gaming Laptop (17.3 inch, Black Plastic, 2.70 kg) laptop is designed with Gaming, Processing & Multitasking as its main purpose and is available in Black Plastic along with other colors. This laptop has a heavy weight body at 2.70 Kg. It has 43.94 cm (17.3 inch) screen with a resolution of 1920 x 1080 Pixel. It has a Full HD LED Backlit vIPS-Level Anti-glare Display (with 60 Hz Refresh Rate) for a clear and bright screen display. Asus TUF Gaming Ryzen 5 Quad Core - (8 GB/1 TB HDD/Windows 10 Home/3 GB Graphics/NVIDIA Geforce GTX 1050) FX705DD-AU055T Gaming Laptop (17.3 inch, Black Plastic, 2.70 kg) is powered by a AMD Ryzen 5 Quad Core processor. It has a clock speed of 2.1 GHz with Turbo Boost Upto 3.7 GHz and 6 MB cache memory.
Memory and Storage
It has GDDR5 RAM with an expandable memory option of Upto 32 GB through 2 Slots memory slots. It is equipped with SATA hard disk drive with 1 TB storage capacity and an rpm of 5400.
Multimedia and Graphics
The device has NVIDIA Geforce GTX 1050 graphics with 3 GB GDDR5 memory.
Power Supply and Battery
It has power supply of 120 W AC Adapter and is powered by 4 cell battery.
Operating System
It comes preloaded with Windows 10 Home operating system with 64 bit version on 64 bit machine.
Other Important Features
Asus TUF Gaming Ryzen 5 Quad Core - (8 GB/1 TB HDD/Windows 10 Home/3 GB Graphics/NVIDIA Geforce GTX 1050) FX705DD-AU055T Gaming Laptop (17.3 inch, Black Plastic, 2.70 kg) supports various other features. Input devices include pointer device: Touchpad, keyboard: Illuminated One Zone RGB Chiclet Keyboard. Modes of communication are ethernet: 10/100/1000 Mbps, wireless lan: IEEE 802.11ac (Wi-Fi 5), bluetooth: v5.0. For extensibility, various connections provided are usb port: 2 x USB 3.1 Type A (1st Gen), 1 x USB 2.0 Type A, mic in, rj45, hdmi port: 1 x HDMI Port (v2.0). Security features of the device are lock port: Kensington Lock Slot.
About the brand
Asus is an established and very popular brand in the current Indian online market scenario. Products by the brand Asus are available at stores like amazon, shopclues, snapdeal, tatacliq, flipkart, aliexpress, toogud, paytmmall, industrybuying. It sells various items under the categories laptops, tablets, mobiles, desktops, desktop computer monitors, smart watches, mobile cases and covers, mobile power banks, laptop chargers and adapters, mobile chargers, and more.


[Index] [1] [2] [3] [4] [5] [6] [7] [8]
This chapter provides information on editing text datasets in the TextView panel.
Datasets with data of type “String” are displayed in a Text Viewer window. The Text Viewer provides a scroller for a large string dataset. Users can scroll up or down and left or right, as needed, to view the full content of the dataset.
TextView shows the text of a one-dimension text dataset in rows of text areas. For multiple-dimension datasets, you can select one dimension to display using the “Open As” command from the TreeView. The following figure shows that two rows of 1-D text (dim[0] = 2) are displayed in separate text areas.
A dataset with string data
You can modify the text content by typing new text in the text area. The modified text is chopped based on the maximum length of the string dataset. A string dataset of variable length is not supported.
To copy and paste text between cells of a text dataset, first select the cell or cells containing the text you wish to copy and then press Ctrl+C on the keyboard. Then, begin editing the cell you wish to copy into by double clicking on that cell and finally, press Ctrl+V on the keyboard. The previously copied text is pasted into the new cell. If multiple cells were pasted into one new cell, the data will span multiple lines in the new cell.
To move text between cells, begin editing the cell containing the data you wish to move by double clicking on the cell. Highlight the text you wish to move and then press Ctrl+X on the keyboard. Finally, begin editing the cell you wish to move the text to by double clicking on the cell and press Ctrl+V on the keyboard. The previously cut text is pasted into the new cell.
To save changes made to the text dataset, choose "Save Changes" from the Text menu. To export the data to a text file, choose "Save to Text File" from the menu. Note: Currently, only the entire contents of the dataset can be exported to a text file.
[Index] [1] [2] [3] [4] [5] [6] [7] [8]


|
1-Wire API for .NET Version 4.00
|
Inherits com::dalsemi::onewire::container::OneWireContainer, and com::dalsemi::onewire::container::PotentiometerContainer.
Public Member Functions | |
| OneWireContainer2C () | |
| Default constructor. | |
| OneWireContainer2C (DSPortAdapter sourceAdapter, byte[] newAddress) | |
| Creates a container with a provided adapter object and the address of the 1-Wire device. | |
| OneWireContainer2C (DSPortAdapter sourceAdapter, long newAddress) | |
| Creates a container with a provided adapter object and the address of this 1-Wire device. | |
| OneWireContainer2C (DSPortAdapter sourceAdapter, String newAddress) | |
| Creates a container with a provided adapter object and the address of this 1-Wire device. | |
| String | getName () |
| Retrieves the Maxim Integrated Products part number of this 1-Wire device as a string. | |
| String | getAlternateNames () |
| Retrieves the alternate Maxim Integrated Products part numbers or names. | |
| String | getDescription () |
| Retrieves a short description of the function of this 1-Wire Device. | |
| int | getMaxSpeed () |
| Gets the maximum speed this 1-Wire device can communicate at. | |
| boolean | isLinear (byte[] state) |
| Queries to see if this Potentiometer One Wire Device has linear potentiometer element(s) or logarithmic potentiometer element(s). | |
| boolean | wiperSettingsAreVolatile (byte[] state) |
| Queries to see if this 1-Wire Potentiometer device's wiper settings are volatile or non-volatile. | |
| int | numberOfPotentiometers (byte[] state) |
| Queries to see how many potentiometers this Potentiometer One Wire Device has. | |
| int | numberOfWiperSettings (byte[] state) |
| Queries to find the number of wiper settings that any wiper on this Potentiometer One Wire Device can have. | |
| int | potentiometerResistance (byte[] state) |
| Queries to find the resistance value of the potentiometer. | |
| int | getCurrentWiperNumber (byte[] state) |
| Gets the currently selected wiper number. | |
| void | setCurrentWiperNumber (int wiper_number, byte[] state) |
| Sets the currently selected wiper number. | |
| boolean | isChargePumpOn (byte[] state) |
| Determines if this device's charge pump is enabled. | |
| void | setChargePump (boolean charge_pump_on, byte[] state) |
| Sets this device's charge pump. | |
| int | getWiperPosition () throws OneWireIOException, OneWireException |
| Gets the current wiper position of this device. | |
| boolean | setWiperPosition (int position) throws OneWireIOException, OneWireException |
| Sets the wiper position for the potentiometer. | |
| int | increment (boolean reselect) throws OneWireIOException, OneWireException |
| Increments the wiper position. | |
| int | decrement (boolean reselect) throws OneWireIOException, OneWireException |
| Decrements the wiper position. | |
| int | increment () throws OneWireIOException, OneWireException |
| Increments the wiper position after selecting the part. | |
| int | decrement () throws OneWireIOException, OneWireException |
| Decrements the wiper position after selecting the part. | |
| byte[] | readDevice () throws OneWireIOException, OneWireException |
| Retrieves the 1-Wire device sensor state. | |
| void | writeDevice (byte[] state) throws OneWireIOException, OneWireException |
| Writes the 1-Wire device sensor state that have been changed by the 'set' methods. |
1-Wire® container that encapsulates the functionality of the 1-Wire family type 2C (hex), Maxim Integrated Products part number: DS2890, 1-Wire Digital Potentiometer.
http://pdfserv.maxim-ic.com/arpdf/DS2890.pdf
| OneWireContainer2C | ( | DSPortAdapter | sourceAdapter, |
| byte[] | newAddress | ||
| ) |
Creates a container with a provided adapter object and the address of the 1-Wire device.
| sourceAdapter | adapter object required to communicate with this 1-Wire device |
| newAddress | address of this 1-Wire device |
| OneWireContainer2C | ( | DSPortAdapter | sourceAdapter, |
| long | newAddress | ||
| ) |
Creates a container with a provided adapter object and the address of this 1-Wire device.
| sourceAdapter | adapter object required to communicate with this 1-Wire device |
| newAddress | address of this 1-Wire device |
| OneWireContainer2C | ( | DSPortAdapter | sourceAdapter, |
| String | newAddress | ||
| ) |
Creates a container with a provided adapter object and the address of this 1-Wire device.
| sourceAdapter | adapter object required to communicate with this 1-Wire device |
| newAddress | address of this 1-Wire device |
| int decrement | ( | boolean | reselect | ) | throws OneWireIOException, OneWireException |
Decrements the wiper position.
| reselect | increment/decrement can be called without resetting the part if the last call was an increment/decrement. true if you want to select the part (you must call with true after any other one-wire method) |
| OneWireIOException | Data was not written correctly |
| OneWireException | Could not find device |
Implements PotentiometerContainer.
| int decrement | ( | ) | throws OneWireIOException, OneWireException |
Decrements the wiper position after selecting the part.
| OneWireIOException | Data was not written correctly |
| OneWireException | Counld not find device |
Implements PotentiometerContainer.
| String getAlternateNames | ( | ) |
Retrieves the alternate Maxim Integrated Products part numbers or names.
A family of MicroLan devices may have more than one part number depending on packaging.
Reimplemented from OneWireContainer.
| int getCurrentWiperNumber | ( | byte[] | state | ) |
Gets the currently selected wiper number.
All wiper actions affect this wiper. The number of wipers is the same as numberOfPotentiometers()
.
| state | state buffer of this 1-Wire Potentiometer device (returned by readDevice() ) |
Implements PotentiometerContainer.
| String getDescription | ( | ) |
Retrieves a short description of the function of this 1-Wire Device.
Reimplemented from OneWireContainer.
| int getMaxSpeed | ( | ) |
Gets the maximum speed this 1-Wire device can communicate at.
Reimplemented from OneWireContainer.
| String getName | ( | ) |
Retrieves the Maxim Integrated Products part number of this 1-Wire device as a string.
For example 'DS2890'.
Reimplemented from OneWireContainer.
| int getWiperPosition | ( | ) | throws OneWireIOException, OneWireException |
Gets the current wiper position of this device.
The wiper position is between 0 and 255, and describes the voltage output. The output lies between RH and RL.
| OneWireIOException | Data was not written correctly |
| OneWireException | Could not find device |
Implements PotentiometerContainer.
| int increment | ( | boolean | reselect | ) | throws OneWireIOException, OneWireException |
Increments the wiper position.
| reselect | increment/decrement can be called without resetting the part if the last call was an increment/decrement. true if you want to select the part (you must call with true after any other one-wire method) |
| OneWireIOException | Data was not written correctly |
| OneWireException | Could not find device |
Implements PotentiometerContainer.
| int increment | ( | ) | throws OneWireIOException, OneWireException |
Increments the wiper position after selecting the part.
| OneWireIOException | Data was not written correctly |
| OneWireException | Could not find device |
Implements PotentiometerContainer.
| boolean isChargePumpOn | ( | byte[] | state | ) |
Determines if this device's charge pump is enabled.
| state | state buffer of this Potentiometer One Wire Device (returned by readDevice() ) |
true
if it is enabled; false
if not Implements PotentiometerContainer.
| boolean isLinear | ( | byte[] | state | ) |
Queries to see if this Potentiometer One Wire Device has linear potentiometer element(s) or logarithmic potentiometer element(s).
| state | state buffer of the Potentiometer One Wire Device (returned by readDevice() ) |
true
if this device has linear potentiometer element(s); false
if this device has logarithmic potentiometer element(s) Implements PotentiometerContainer.
| int numberOfPotentiometers | ( | byte[] | state | ) |
Queries to see how many potentiometers this Potentiometer One Wire Device has.
| state | state buffer of this 1-Wire Potentiometer device (returned by readDevice() ) |
Implements PotentiometerContainer.
| int numberOfWiperSettings | ( | byte[] | state | ) |
Queries to find the number of wiper settings that any wiper on this Potentiometer One Wire Device can have.
| state | state buffer of this 1-Wire Potentiometer device (returned by readDevice() ) |
Implements PotentiometerContainer.
| int potentiometerResistance | ( | byte[] | state | ) |
Queries to find the resistance value of the potentiometer.
| state | state buffer of this 1-Wire Potentiometer device (returned by readDevice() ) |
Implements PotentiometerContainer.
| byte [] readDevice | ( | ) | throws OneWireIOException, OneWireException |
Retrieves the 1-Wire device sensor state.
This state is returned as a byte array. Pass this byte array to the static query and set methods. If the device state needs to be changed then call the writeDevice
to finalize the one or more change.
| OneWireIOException | Data was not read correctly |
| OneWireException | Could not find device |
Implements OneWireSensor.
| void setChargePump | ( | boolean | charge_pump_on, |
| byte[] | state | ||
| ) |
Sets this device's charge pump.
This decreases the wiper's resistance, but increases the power consumption by the part. Vdd must be connected to use the charge pump (see the DS2890 datasheet for more information at www.dalsemi.com)
| charge_pump_on | true if you want to enable the charge pump |
| state | state buffer of this Potentiometer One Wire Device (returned by readDevice() ) |
true
if the operation was successful; false
if there was an error Implements PotentiometerContainer.
| void setCurrentWiperNumber | ( | int | wiper_number, |
| byte[] | state | ||
| ) |
Sets the currently selected wiper number.
All wiper actions affect this wiper. The number of wipers is the same as numberOfPotentiometers()
.
| wiper_number | wiper number to select for communication. Valid choices are 0 to 3 |
| state | state buffer of this 1-Wire Potentiometer device (returned by readDevice() ) |
Implements PotentiometerContainer.
| boolean setWiperPosition | ( | int | position | ) | throws OneWireIOException, OneWireException |
Sets the wiper position for the potentiometer.
| position | the position to set the wiper. This value will be cast to a byte, only the 8 least significant bits matter. |
true
if the operation was successful; false
otherwise | OneWireIOException | Data was not written correctly |
| OneWireException | Could not find device |
Implements PotentiometerContainer.
| boolean wiperSettingsAreVolatile | ( | byte[] | state | ) |
Queries to see if this 1-Wire Potentiometer device's wiper settings are volatile or non-volatile.
| state | state buffer of the 1-Wire Potentiometer device (returned by readDevice() ) |
true
if the wiper settings are volatile; false
if the wiper settings are non-volatile Implements PotentiometerContainer.
| void writeDevice | ( | byte[] | state | ) | throws OneWireIOException, OneWireException |
Writes the 1-Wire device sensor state that have been changed by the 'set' methods.
It knows which registers have changed by looking at the bitmap fields appended to the state data.
| state | byte array of clock register page contents |
| OneWireIOException | Data was not written correctly |
| OneWireException | Could not find device |
Implements OneWireSensor.


LESSECHO
Section: User Commands (1)Updated: Version 436: 07 Jul 2009
Index Return to Main Contents
NAME
lessecho - expand metacharactersSYNOPSIS
lessecho [-ox] [-cx] [-pn] [-dn] [-mx] [-nn] [-ex] [-a] file ...DESCRIPTION
lessecho is a program that simply echos its arguments on standard output. But any argument containing spaces is enclosed in quotes.OPTIONS
A summary of options is included below.- -ox
- Specifies "x" to be the open quote character.
- -cx
- Specifies "x" to be the close quote character.
- -pn
- Specifies "n" to be the open quote character, as an integer.
- -dn
- Specifies "n" to be the close quote character, as an integer.
- -mx
- Specifies "x" to be a metachar.
- -nn
- Specifies "n" to be a metachar, as an integer.
- -ex
- Specifies "x" to be the escape char for metachars.
- -fn
- Specifies "n" to be the escape char for metachars, as an integer.
- -a
- Specifies that all arguments are to be quoted. The default is that only arguments containing spaces are quoted.
SEE ALSO
less(1)AUTHOR
This manual page was written by Thomas Schoepf<EMAIL_ADDRESS>for the Debian GNU/Linux system (but may be used by others).Send bug reports or comments to<EMAIL_ADDRESS>Index
This document was created by man2html, using the manual pages.
Time: 05:29:05 GMT, December 24, 2015


R Packages
{% include small-project.html
title = "harrypotter"
image = "https://raw.githubusercontent.com/aljrico/harrypotter/master/man/figures/logo.png"
link = "https://github.com/aljrico/harrypotter"
content = "Set of colour palettes inspired in the Harry Potter universe."
%}
{% include small-project.html
title = "gameofthrones"
image = "https://raw.githubusercontent.com/aljrico/gameofthrones/master/man/figures/logo.png"
link = "https://github.com/aljrico/gameofthrones"
content = "Set of colour palettes inspired in the Game of Thrones universe."
%}
{% include small-project.html
title = "rfinance"
image = "https://raw.githubusercontent.com/aljrico/rfinance/master/man/figures/logo.png"
link = "https://github.com/aljrico/rfinance"
content = "User-friendly API for financial analysis with R"
%}
{% include small-project.html
title = "planets"
image = "https://raw.githubusercontent.com/aljrico/planets/master/man/planets.png"
link = "https://github.com/aljrico/planets"
content = "Very accessible data for all known planets"
%}


Toggle navigation
Developer - Innovator - Adventurer
About
Alexandra Lynn
Website under construction


Overview¶
This document extends the presentation of $mu$Kanren shown at the last ESUG conference citep{ESUG2018} in two ways: (i)~it recaps existing literature on the subject and (ii)~it describes in more details our implementation coded in Smalltalk.
It is a waste of time to repeat ourself on $mu$Kanren’s definition; on the contrary, we believe interesting to look up and to watch over the many implementations it has inspired since its seminal paper citep{Hemann:muKanren} and how programmers stretch the canonical implementation to take advantage of their favorite programming language’s features.
Certainly the book citep{Friedman:Reasoned:Schemer} is the main reference written in the same style of the other emph{little books} of which Dan Friedman coauthors them all; moreover, Byrd’s dissertation citep{Byrd:PhD} shows advanced stuffs and techniques while the repository url{http://minikanren.org/} – updated regularly by Byrd himself – keeps pointers to implementations, articles and presentations. $mu$Kanren is emph{purely functional} therefore any language that has the same power of the $lambda$-calculus is a candidate for implementing it, nonetheless its first definition has been written in Scheme; in parallel, the implementation with symbolic constraints has the same nature but uses macros and in some aspect it requires more effort to port it to other languages that haven’t macros.
Another implementation using the emph{Clojure} dialect of Lisp is citep{clojure:core.logic} which targets the JVM and provides constraints and nominal logic programming; on the other hand, citep{sullivan:microkanrenhs} is a clean and concise implementation using Haskell, while many others simpler versions can be found, written for the sake of understanding and, ultimately, for fun.
Finally, your humble authors believe that $mu$Kanren is a sophisticated textit{educational machine} because it concerns and mixes together unification, lazy streams, backtracking and optimization techniques; moreover, it allows programmers to write their own version according to their personal taste and style, ranging from implementations pretty imperative to ones built over categories.
Our effort to understand $mu$Kanren started in citep{Nocentini:kanrens} using the emph{Python} programming language; we take advantage of native Verb|generator|s objects and we provide a emph{fair} enumeration strategy that the original implementation hasn’t; on the contrary, we experience computational limits because of texttt{RecursionError} exceptions. This implementation is complete and parallels the one shown in the reference book, accompanied by a unit test suite that provides answers to emph{all} questions proposed in the book and some new applications such as (i)~finding fixed points of a set of inference rules and (ii)~enumerating classes of combinatorial objects. Moreover, two textit{impure} operators, as the textit{cut} (Verb|!|) Prolog operator, had been coded too. However complete, the code is a mixture of the object orientation at the surface and functional at the core both supported by primitives of the underlying language, such as Verb|yield| expressions and magic methods; took note of this, we desire something more uniform and cohesive.
The current work describes a Smalltalk implementation of the basic system with the aim to learn and experiment with a pure object environment, such as Pharo and Squeak. The work citep{evan:smallkanren} is another Smalltalk implementation of $mu$Kanren that currently supports disequality constraints and nominal logic; it is a more complete and complex version that we point it out for users requiring those features – hoping to be able to provide those features by ourselves.
Starting small, the next example shows three different approaches to define the addition of three ct{SmallInteger} objects toward the introduction of the relational paradigm. begin{example} In math a relation $P$ is usually characterized by a statement such as
The same check can be expressed in Smalltalk using either the textit{imperative style}
a := 1. b := 2. c := a + b. Object assert: [ c = 3 ]
or the textit{functional style} begin{minted}[fontsize=footnotesize]{smalltalk} Object assert: [ ([ :a :b | a + b ] value: 1 value: 2) = 3 ] end{minted} or, finally, the textit{declarative style} begin{minted}[fontsize=footnotesize]{smalltalk} Object assert: [ [ :a :b :c | a + b = c ] value: 1 value: 2 value: 3 ] end{minted} which closely resembles the mathematical statement. end{example}


You're looking at inline markdown content, wrapped with handlebars (mustache) tags!
Behold... some examples:
italic words
bold words
Finally, end a line with two or more spaces to do a manual line break.


001 /* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 018 package org.apache.commons.math.stat.descriptive; 019 020 import java.io.Serializable; 021 import java.util.Collection; 022 import java.util.Iterator; 023 024 /** 025 *
 026 * An aggregator for {@code SummaryStatistics} from several data sets or 027 * data set partitions. In its simplest usage mode, the client creates an 028 * instance via the zero-argument constructor, then uses 029 * {@link #createContributingStatistics()} to obtain a {@code SummaryStatistics} 030 * for each individual data set / partition. The per-set statistics objects 031 * are used as normal, and at any time the aggregate statistics for all the 032 * contributors can be obtained from this object. 033 *

 034 * Clients with specialized requirements can use alternative constructors to 035 * control the statistics implementations and initial values used by the 036 * contributing and the internal aggregate {@code SummaryStatistics} objects. 037 *

 038 * A static {@link #aggregate(Collection)} method is also included that computes 039 * aggregate statistics directly from a Collection of SummaryStatistics instances. 040 *

 041 * When {@link #createContributingStatistics()} is used to create SummaryStatistics 042 * instances to be aggregated concurrently, the created instances' 043 * {@link SummaryStatistics#addValue(double)} methods must synchronize on the aggregating 044 * instance maintained by this class. In multithreaded environments, if the functionality 045 * provided by {@link #aggregate(Collection)} is adequate, that method should be used 046 * to avoid unecessary computation and synchronization delays.
 047 * 048 * @since 2.0 049 * @version $Revision: 811833 $ $Date: 2009-09-06 18:27:50 +0200 (dim. 06 sept. 2009) $ 050 * 051 */ 052 public class AggregateSummaryStatistics implements StatisticalSummary, 053 Serializable { 054 055 056 /** Serializable version identifier */ 057 private static final long serialVersionUID = -8207112444016386906L; 058 059 /** 060 * A SummaryStatistics serving as a prototype for creating SummaryStatistics 061 * contributing to this aggregate 062 */ 063 private final SummaryStatistics statisticsPrototype; 064 065 /** 066 * The SummaryStatistics in which aggregate statistics are accumulated. 067 */ 068 private final SummaryStatistics statistics; 069 070 /** 071 * Initializes a new AggregateSummaryStatistics with default statistics 072 * implementations. 073 * 074 */ 075 public AggregateSummaryStatistics() { 076 this(new SummaryStatistics()); 077 } 078 079 /** 080 * Initializes a new AggregateSummaryStatistics with the specified statistics 081 * object as a prototype for contributing statistics and for the internal 082 * aggregate statistics. This provides for customized statistics implementations 083 * to be used by contributing and aggregate statistics. 084 * 085 * @param prototypeStatistics a {@code SummaryStatistics} serving as a 086 * prototype both for the internal aggregate statistics and for 087 * contributing statistics obtained via the 088 * {@code createContributingStatistics()} method. Being a prototype 089 * means that other objects are initialized by copying this object's state. 090 * If {@code null}, a new, default statistics object is used. Any statistic 091 * values in the prototype are propagated to contributing statistics 092 * objects and (once) into these aggregate statistics. 093 * @see #createContributingStatistics() 094 */ 095 public AggregateSummaryStatistics(SummaryStatistics prototypeStatistics) { 096 this(prototypeStatistics, 097 prototypeStatistics == null ? null : new SummaryStatistics(prototypeStatistics)); 098 } 099 100 /** 101 * Initializes a new AggregateSummaryStatistics with the specified statistics 102 * object as a prototype for contributing statistics and for the internal 103 * aggregate statistics. This provides for different statistics implementations 104 * to be used by contributing and aggregate statistics and for an initial 105 * state to be supplied for the aggregate statistics. 106 * 107 * @param prototypeStatistics a {@code SummaryStatistics} serving as a 108 * prototype both for the internal aggregate statistics and for 109 * contributing statistics obtained via the 110 * {@code createContributingStatistics()} method. Being a prototype 111 * means that other objects are initialized by copying this object's state. 112 * If {@code null}, a new, default statistics object is used. Any statistic 113 * values in the prototype are propagated to contributing statistics 114 * objects, but not into these aggregate statistics. 115 * @param initialStatistics a {@code SummaryStatistics} to serve as the 116 * internal aggregate statistics object. If {@code null}, a new, default 117 * statistics object is used. 118 * @see #createContributingStatistics() 119 */ 120 public AggregateSummaryStatistics(SummaryStatistics prototypeStatistics, 121 SummaryStatistics initialStatistics) { 122 this.statisticsPrototype = 123 (prototypeStatistics == null) ? new SummaryStatistics() : prototypeStatistics; 124 this.statistics = 125 (initialStatistics == null) ? new SummaryStatistics() : initialStatistics; 126 } 127 128 /** 129 * {@inheritDoc}. This version returns the maximum over all the aggregated 130 * data. 131 * 132 * @see StatisticalSummary#getMax() 133 */ 134 public double getMax() { 135 synchronized (statistics) { 136 return statistics.getMax(); 137 } 138 } 139 140 /** 141 * {@inheritDoc}. This version returns the mean of all the aggregated data. 142 * 143 * @see StatisticalSummary#getMean() 144 */ 145 public double getMean() { 146 synchronized (statistics) { 147 return statistics.getMean(); 148 } 149 } 150 151 /** 152 * {@inheritDoc}. This version returns the minimum over all the aggregated 153 * data. 154 * 155 * @see StatisticalSummary#getMin() 156 */ 157 public double getMin() { 158 synchronized (statistics) { 159 return statistics.getMin(); 160 } 161 } 162 163 /** 164 * {@inheritDoc}. This version returns a count of all the aggregated data. 165 * 166 * @see StatisticalSummary#getN() 167 */ 168 public long getN() { 169 synchronized (statistics) { 170 return statistics.getN(); 171 } 172 } 173 174 /** 175 * {@inheritDoc}. This version returns the standard deviation of all the 176 * aggregated data. 177 * 178 * @see StatisticalSummary#getStandardDeviation() 179 */ 180 public double getStandardDeviation() { 181 synchronized (statistics) { 182 return statistics.getStandardDeviation(); 183 } 184 } 185 186 /** 187 * {@inheritDoc}. This version returns a sum of all the aggregated data. 188 * 189 * @see StatisticalSummary#getSum() 190 */ 191 public double getSum() { 192 synchronized (statistics) { 193 return statistics.getSum(); 194 } 195 } 196 197 /** 198 * {@inheritDoc}. This version returns the variance of all the aggregated 199 * data. 200 * 201 * @see StatisticalSummary#getVariance() 202 */ 203 public double getVariance() { 204 synchronized (statistics) { 205 return statistics.getVariance(); 206 } 207 } 208 209 /** 210 * Returns the sum of the logs of all the aggregated data. 211 * 212 * @return the sum of logs 213 * @see SummaryStatistics#getSumOfLogs() 214 */ 215 public double getSumOfLogs() { 216 synchronized (statistics) { 217 return statistics.getSumOfLogs(); 218 } 219 } 220 221 /** 222 * Returns the geometric mean of all the aggregated data. 223 * 224 * @return the geometric mean 225 * @see SummaryStatistics#getGeometricMean() 226 */ 227 public double getGeometricMean() { 228 synchronized (statistics) { 229 return statistics.getGeometricMean(); 230 } 231 } 232 233 /** 234 * Returns the sum of the squares of all the aggregated data. 235 * 236 * @return The sum of squares 237 * @see SummaryStatistics#getSumsq() 238 */ 239 public double getSumsq() { 240 synchronized (statistics) { 241 return statistics.getSumsq(); 242 } 243 } 244 245 /** 246 * Returns a statistic related to the Second Central Moment. Specifically, 247 * what is returned is the sum of squared deviations from the sample mean 248 * among the all of the aggregated data. 249 * 250 * @return second central moment statistic 251 * @see SummaryStatistics#getSecondMoment() 252 */ 253 public double getSecondMoment() { 254 synchronized (statistics) { 255 return statistics.getSecondMoment(); 256 } 257 } 258 259 /** 260 * Return a {@link StatisticalSummaryValues} instance reporting current 261 * aggregate statistics. 262 * 263 * @return Current values of aggregate statistics 264 */ 265 public StatisticalSummary getSummary() { 266 synchronized (statistics) { 267 return new StatisticalSummaryValues(getMean(), getVariance(), getN(), 268 getMax(), getMin(), getSum()); 269 } 270 } 271 272 /** 273 * Creates and returns a {@code SummaryStatistics} whose data will be 274 * aggregated with those of this {@code AggregateSummaryStatistics}. 275 * 276 * @return a {@code SummaryStatistics} whose data will be aggregated with 277 * those of this {@code AggregateSummaryStatistics}. The initial state 278 * is a copy of the configured prototype statistics. 279 */ 280 public SummaryStatistics createContributingStatistics() { 281 SummaryStatistics contributingStatistics 282 = new AggregatingSummaryStatistics(statistics); 283 284 SummaryStatistics.copy(statisticsPrototype, contributingStatistics); 285 286 return contributingStatistics; 287 } 288 289 /** 290 * Computes aggregate summary statistics. This method can be used to combine statistics 291 * computed over partitions or subsamples - i.e., the StatisticalSummaryValues returned 292 * should contain the same values that would have been obtained by computing a single 293 * StatisticalSummary over the combined dataset. 294 *
 295 * Returns null if the collection is empty or null. 296 *
 297 * 298 * @param statistics collection of SummaryStatistics to aggregate 299 * @return summary statistics for the combined dataset 300 */ 301 public static StatisticalSummaryValues aggregate(Collection<SummaryStatistics> statistics) { 302 if (statistics == null) { 303 return null; 304 } 305 Iterator<SummaryStatistics> iterator = statistics.iterator(); 306 if (!iterator.hasNext()) { 307 return null; 308 } 309 SummaryStatistics current = iterator.next(); 310 long n = current.getN(); 311 double min = current.getMin(); 312 double sum = current.getSum(); 313 double max = current.getMax(); 314 double m2 = current.getSecondMoment(); 315 double mean = current.getMean(); 316 while (iterator.hasNext()) { 317 current = iterator.next(); 318 if (current.getMin() < min || Double.isNaN(min)) { 319 min = current.getMin(); 320 } 321 if (current.getMax() > max || Double.isNaN(max)) { 322 max = current.getMax(); 323 } 324 sum += current.getSum(); 325 final double oldN = n; 326 final double curN = current.getN(); 327 n += curN; 328 final double meanDiff = current.getMean() - mean; 329 mean = sum / n; 330 m2 = m2 + current.getSecondMoment() + meanDiff * meanDiff * oldN * curN / n; 331 } 332 final double variance; 333 if (n == 0) { 334 variance = Double.NaN; 335 } else if (n == 1) { 336 variance = 0d; 337 } else { 338 variance = m2 / (n - 1); 339 } 340 return new StatisticalSummaryValues(mean, variance, n, max, min, sum); 341 } 342 343 /** 344 * A SummaryStatistics that also forwards all values added to it to a second 345 * {@code SummaryStatistics} for aggregation. 346 * 347 * @since 2.0 348 */ 349 private static class AggregatingSummaryStatistics extends SummaryStatistics { 350 351 /** 352 * The serialization version of this class 353 */ 354 private static final long serialVersionUID = 1L; 355 356 /** 357 * An additional SummaryStatistics into which values added to these 358 * statistics (and possibly others) are aggregated 359 */ 360 private final SummaryStatistics aggregateStatistics; 361 362 /** 363 * Initializes a new AggregatingSummaryStatistics with the specified 364 * aggregate statistics object 365 * 366 * @param aggregateStatistics a {@code SummaryStatistics} into which 367 * values added to this statistics object should be aggregated 368 */ 369 public AggregatingSummaryStatistics(SummaryStatistics aggregateStatistics) { 370 this.aggregateStatistics = aggregateStatistics; 371 } 372 373 /** 374 * {@inheritDoc}. This version adds the provided value to the configured 375 * aggregate after adding it to these statistics. 376 * 377 * @see SummaryStatistics#addValue(double) 378 */ 379 @Override 380 public void addValue(double value) { 381 super.addValue(value); 382 synchronized (aggregateStatistics) { 383 aggregateStatistics.addValue(value); 384 } 385 } 386 387 /** 388 * Returns true iff object is a 389 * SummaryStatistics instance and all statistics have the 390 * same values as this. 391 * @param object the object to test equality against. 392 * @return true if object equals this 393 */ 394 @Override 395 public boolean equals(Object object) { 396 if (object == this) { 397 return true; 398 } 399 if (object instanceof AggregatingSummaryStatistics == false) { 400 return false; 401 } 402 AggregatingSummaryStatistics stat = (AggregatingSummaryStatistics)object; 403 return super.equals(stat) && 404 aggregateStatistics.equals(stat.aggregateStatistics); 405 } 406 407 /** 408 * Returns hash code based on values of statistics 409 * @return hash code 410 */ 411 @Override 412 public int hashCode() { 413 return 123 + super.hashCode() + aggregateStatistics.hashCode(); 414 } 415 } 416 }


27 june 2001
Dear Laura Brown:
Thank you for the opportunity to talk with you yesterday about the
Multimedia Teaching positions. Our discussion was very enjoyable and
gave me a clear understanding of what this position entails. Teaching
a broad range of software applications (Photoshop, Illustrator, Dreamweaver)
sounds interesting and challenging.
I am interested in the Corporate Training position, which you said
paid $20/hour. I have submitted applications to several colleges in
Orange County and have found that community colleges in California
typically pay between $32-55/hour. I would be willing to accept $30/hour
for the Corporate Training teaching position.
I
am confident that, should you decide to hire me, I will be capable
of taking on all of the responsibilities that this position requires,
acquiring and improving new skills, and meeting challenges and deadlines
in a professional manner.
I look forward to hearing from you soon.
Sincerely,
beatrice


Reports the calls to
System.getenv()
. Calls to
System.getenv()
are inherently unportable.
Powered by InspectionGadgets


Kisumu All Stars beat Sharks for first KPL win
by Timothy OlobuluNAIROBI, Kenya, Nov 9 – Kariobangi Sharks defender Amani Kyata turned the ball into his won net in the 89th minute to gift Kisumu All Stars their maiden Kenyan premier League victory with a 1-0 win in Kisumu on Saturday.
In eight matches, All Stars had only picked up three points from three draws and were second from bottom of the pile, but the victory over the dull Sharks ensured they added a W to their statistics to move to 16th in the standings.
Sharks meanwhile continued with their slump in form and dropped back to 15th in the log after losing their third match in four outings to increase the pressure on head coach William Muluya.
Meanwhile, Tusker FC needed a stoppage time penalty to play to a 1-1 draw with KCB at the Afraha Stadium in Nakuru to move two points clear on top of the standings.
Timothy Otieno stepped up to the pressure cooker to slot home in added time after a handball inside the box, cancelling out Reegan Otieno’s earlier goal.
The bankers had to play almost one hour of the match with a man less after defender Bethwell Warambo was sent off midway through the second half after a second yellow card.
The victory saw Tusker move to 17 points, two ahead of Gor Mahia and AFC Leopards who clash tomorrow in the Mashemeji Derby while KCB remained fourth with 15 points as well but an inferior goal difference.
Posta Rangers meanwhile moved to fifth in the standings after a 3-0 thrashing of Chemelil Sugar in Narok.
Charles Odette and Francis Nambute scored to give the mailmen a comfortable 2-0 half time lead before skipper Joseph Mbugi converted a penalty six minutes after the restart to seal the win.
(Visited 13 times, 6 visits today)