Hindsite Reference
hindsite is a fast, lightweight static website generator. It builds static websites with optional document and tag indexes from Markdown source documents (e.g. blogs posts, newsletters, articles).
The hindsite stand-alone executable includes a built-in development web server with Live Reload, a file watcher and incremental rebuilds.
Quick Start
Create a fully functional blog and newsletter website with just two hindsite commands:
- Download the binary for your platform from the releases
page and extract the
hindsite
executable (see Building hindsite if you prefer to build and install from source). - Create a new Hindsite site directory and install the builtin
blog
template using the hindsite init command:mkdir mysite hindsite init mysite -builtin blog
- Build the website, start the hindsite web server and open it in the browser:
hindsite serve mysite -launch
Include the -v
(verbose) command option to see what's going on. The best way
to start learning hindsite is to browse the blog site directory.
If you are familiar with Jekyll or Hugo you'll be right a home (hindsite can read Jekyll and Hugo Markdown document front matter).
Sites
A hindsite site consists of three separate directories:
- A content directory containing Markdown documents and static resource files.
- A template directory containing templates and site configuration files.
- A build directory containing the generated website.
By default these directories reside in the site directory and are named content, template and build, all three must be mutually exclusive (not contained within one another).
- The build, content and template directories normally reside in the site directory folder but this convention is not enforced.
- A template directory can process multiple content directories just as a content directory can be processed by multiple template directories.
For example, here's the builtin blog site structure:
├── build
│ ├── images
│ ├── indexes
│ │ ├── newsletters
│ │ └── posts
│ │ └── tags
│ ├── newsletters
│ └── posts
├── content
│ ├── images
│ ├── newsletters
│ └── posts
└── template
├── init
│ ├── images
│ ├── newsletters
│ └── posts
├── newsletters
└── posts
The build/indexes
directory contains the generated document and tag index
pages.
The template/init
directory is optional, it contains static resources and
example documents which serve as a starting point for new sites (see the
init command). In all other respects it is just another content
directory.
File and directory names should only contain lower case alpha numeric and hyphen characters. This convention is not enforced but is recommended because it ensures consistent, readable URLs without ugly encodings for illegal URL characters.
Notice that, if we exclude the build/indexes
and template/init
directories, all three directories share the same base directory structure.
Specifically, all three contain the template directory structure and the build
directory is a one-to-one reconstruction of the content directory.
Commands
Usage:
hindsite init [SITE_DIR] [OPTIONS]
hindsite build [SITE_DIR] [OPTIONS]
hindsite serve [SITE_DIR] [OPTIONS]
hindsite new [SITE_DIR] DOCUMENT [OPTIONS]
hindsite help
Commands:
init initialize a new site
build generate the website
serve start development webserver
new create a new content document
help display usage summary
Common command options:
SITE_DIR
- The hindsite site directory (defaults to the current directory).
-content CONTENT_DIR
- The site content directory (defaults to
SITE_DIR/content
). -build BUILD_DIR
- The site build directory (defaults to
SITE_DIR/build
). -template TEMPLATE_DIR
- The site template directory (defaults to
SITE_DIR/template
). -v
- Increase verbosity.
-vv
is an alias for-v -v
.
- Content, build and template directories cannot overlap, with one exception:
the content directory can be
TEMPLATE_DIR/init
. This is handy for testing template initialization content. - Sites are not restricted to a single content, template and build directory.
The
-content
,-template
and-build
options allow separate builds from differing combinations of content and template directories.
help command
The help command prints command usage and options summary plus hindsite version information.
Usage:
hindsite help
hindsite
, hindsite -h
and hindsite --help
are all aliases for hindsite help
.
init command
The init command initializes site content directory from the template directory or from a built-in template.
Usage:
hindsite init [SITE_DIR] [OPTIONS]
Applicable options:
-content CONTENT_DIR
-template TEMPLATE_DIR
-builtin NAME
-v
- The
CONTENT_DIR
must be empty. - If the
-builtin NAME
option is specified the contents and template directories are initialized from one of the named built-in templates:blog
- A blog and newsletter site.
minimal
- A minimal site.
- If the
-builtin
option is specified theTEMPLATE_DIR
must be empty.
Command execution
- If the
-builtin
option is specified then the selected builtin template is copied to theTEMPLATE_DIR
. - The template directory structure is recreated in the content directory.
- If the
TEMPLATE_DIR/init
directory exists its contents is copied to the content directory. - If the
-template TEMPLATE_DIR
option specifies a location outside the site directory and theSITE_DIR/template
directory does not exist or is empty theTEMPLATE_DIR
is copied toSITE_DIR/template
.
The following example installs the builtin blog
template to ./template
and
initializes the ./contents
directory:
hindsite init -builtin blog
build command
The build command generates a static website in the build directory using files from the content and template directories.
Usage:
hindsite build [SITE_DIR] [OPTIONS]
Applicable options:
-content CONTENT_DIR
-template TEMPLATE_DIR
-build BUILD_DIR
-drafts
-v
- All files from the content directory not that are not excluded are rebuilt.
- If the
-drafts
option is specified draft documents are included in the built website. - Content, build and template directories cannot overlap, with one exception:
the content directory can be
TEMPLATE_DIR/init
(this is handy for testing template initialization content).
Command execution
- Configuration files in the template directories are parsed.
- All files and folders in the build directory are deleted.
- Templates from templates directories are parsed.
- The content directory is recursively scanned:
- Document files are read and front matter is parsed.
- Static files are copied to the corresponding build directories.
- Document indexes are built.
- Document bodies are rendered with their corresponding layout templates.
- If a homepage is specified it is copied to the root of the build
directory and named
index.html
.
Build summary
The printed build summary includes:
- documents
- The total number of Markdown documents (including skipped drafts).
- static
- The total number of static files.
- drafts
- The number of skipped draft documents. If the
-drafts
option is specified this will be zero. - time
- The execution time in seconds.
The build summary does not include excluded files.
serve command
The serve command rebuilds the site then starts the built-in webserver on the site build directory. If files in the content or template directories changed the serve command automatically rebuilds affected webpages. The server also handles browser live reloading.
Usage:
hindsite serve [SITE_DIR] [OPTIONS]
Applicable options:
-content CONTENT_DIR
-template TEMPLATE_DIR
-build BUILD_DIR
-drafts
-launch
-navigate
-port [HTTP_PORT][:LR_PORT]
-v
- If the
-drafts
option is specified draft documents are included in the built website. - The
-launch
option opens the site home page in the default web browser. - The
-navigate
option causes the browser to automatically navigate to new and updated documents. - The
-port
option sets the server HTTP port number (HTTP_PORT
) and/or the LiveReload port number (LR_PORT
):HTTP_PORT
defaults to1212
.LR_PORT
defaults to35729
.- Setting
LR_PORT
to-1
disables live reloads. - The port numbers must be unique across all running server instances.
- Examples:
-port 1213
,-port 1213:35730
,-port :-1
.
- While the server is runing you can enter the following keyboard commands:
- Press the R key followed by the Enter key to force a complete site rebuild.
- Press the D key followed by the Enter key to toggle the server
-drafts
option. - Press the N key followed by the Enter key to toggle the server
-navigate
option.
- The server strips the
urlprefix
from URLs in HTML files before sending them to the browser. This allows the build to be tested irrespective of theurlprefix
value. - To enable browser live reloads the server injects the LiveReload script into HTML files prior to sending them to the browser.
Partial rebuilds
To speed up live reloads and to make the content creation process easier and more responsive the serve command automatically performs partial builds when content files are modified, added or deleted.
The amount of processing required will depend on the size of your site and the type of change. Most content updates are very fast but processing times increase if:
- Indexed documents are added or deleted (necessitating full index rebuild).
- A configuration file or template file is added, changed or removed (necessitating a full site rebuild).
IMPORTANT: To ensure build integrity you should always perform a complete rebuild before deployment and after site structural changes (the serve command does not automatically process changes to the site directory structure).
new command
The new command creates a new document file and automatically
sets the front matter date
and title
.
Usage:
hindsite new [SITE_DIR] DOCUMENT [OPTIONS]
Applicable options:
-content CONTENT_DIR
-template TEMPLATE_DIR
-v
DOCUMENT
is the path of the new file which must reside in the content directory.- The new command searches along the corresponding template directory path
for the first template named
new.md
and uses it to create the newDOCUMENT
file in the content directory i.e. it is the content directoryDOCUMENT
path that determines whichnew.md
template is chosen from the template directory tree. - If a
new.md
template is not found the default built-in template is used.
The following template variables are available to the new template:
.date
- The publication date is extracted from the file name
YYYY-MM-DD-
date prefix and formatted according to RFC 3339. If there is no prefix it defaults to the current date and time. .title
- The document title is set to the
DOCUMENT
file name stripped of the date prefix (if there is one) and the file name extension; hyphens replaced by spaces; then capitalized.
For example, the following new command will set the
title to "Foofoo Valve History"
and the date to the current date and time:
hindsite new ./content/posts/foofoo-valve-history.md
The default new template:
---
title: {{.title}}
date: {{.date}}
draft: true
---
Document content goes here.
Configuration
Website generation is customized with configuration parameters from one or more configuration files.
Configuration files
Configuration files are TOML and YAML markup files named config.toml
and
config.yaml
respectively in the site template directory.
- Configuration files can located anywhere in the template directory tree (except the init directory).
- A configuration file only affects documents in the corresponding content directory (and subdirectories).
- The configuration applied to a document or index is computed by merging configuration files lying on the corresponding template directory path. Configuration files closer to the document have higher precedence than those further up the directory path.
- Configuration files are optional, though most sites will have at least one at the root of the template directory.
Configuration parameters
Valid configuration parameters are:
author
- Specifies the default document author and is overridden by the
document's
author
front matter value. TOML example:author = "Joe Bloggs"
exclude
†- A
|
separated list of file and directory paths specifying files from the site content and template directories that are excluded from processing. TOML example:exclude = "config.rmu|*~|4913"
- Dotfiles (file names starting with a period) are excluded by default. To force
inclusion of a dotfile add it to the
include
parameter. - The paths are relative to the content or template directories.
- The path separator is a slash (
/
) character. - The file paths can contain wildcard patterns conforming to patterns matched by the Go path.Match() function.
- If the path contains no path separators then it is matched against all file
names e.g.
*.swp
will match all files from content and template directories with the.swp
file name extension. - If the path contains path separators then it is matched against the file path
e.g.
posts/*.md
will only match files with the.md
extension from theposts
directory. - If the path ends with a slash then it specifies a directory whose contents are
excluded (no wildcards are allowed). For example
news/archive/
excludes all files from thenews/archive
directory. - To exclude a file in the content or template root directories prefix the name
name with a path separator e.g.
/config.rmu
will excludeconfig.rmu
only if it is in the top directory.
- Dotfiles (file names starting with a period) are excluded by default. To force
inclusion of a dotfile add it to the
include
†- A
|
separated list of file and directory paths specifying files that are processed unconditionally i.e. irrespective of theexclude
parameter.include
parameter values have the same syntax as theexclude
parameter. TOML example:include = ".htaccess"
id
- Specifies the default behavior of the document
id
front matter value:- If the
id
configuration parameter isoptional
thenid
front matter values default to blank. - If the
id
configuration parameter isurlpath
then documentid
front matter values default to the document URL stripped of theurlprefix
. - If the
id
configuration parameter ismandatory
then document front matterid
's must have explicit non-blank values (an error is generated if a documentid
is not specified).
The
id
configuration parameter defaults tooptional
. TOML example:id = "urlpath"
- If the
shortdate
,mediumdate
,longdate
- These are date formats for
shortdate
,mediumdate
andlongdate
document template variables respectively. The values conform to the layouts supported by Go time.Format function. The default values are:shortdate = "2006-01-02", mediumdate = "2-Jan-2006", longdate = "Mon Jan 2, 2006",
homepage
†- The
homepage
parameter is the name of a file, relative to the build directory, that is copied by thebuild
command to the root of the build directory and namedindex.html
. Use the slash (/
) character as the path separator to ensure cross-platform compatibility. TOML example:homepage = "indexes/posts/docs-1.html"
paginate
- This parameter sets the number of documents per document index
page. The default value is 5. Set to -1 to include all documents on a single
document index page. TOML example:
paginate = 10
permalink
- An optional parameter for customizing document build
paths and URLs. A document's URL and build path is
computed by substituting the following
permalink
placeholders:%y
- Four digit publication date year.
%m
- Two digit publication date month.
%d
- Two digit publication date day of month.
%f
- The build file name.
%p
- The build file name minus the file name extension.
- If the permalink ends with a trailing slash then hindsite creates “pretty”
URLs (the expanded permalink is the build file directory path; the build file
is named
index.html
). - A document specific
permalink
can be specified in the document front matter taking precedence overpermalink
configuration parameters. - A permalink URL will not change provided the
permalink
parameter, the document publication date and the document slug are not changed. Changing the source document's content directory location does not change a permalink URL. - URLs are prefixed with the
urlprefix
configuration parameter.
TOML examples:
permalink = "/posts/%y/%m/%d/%f" permalink = "/posts/%y-%m-%d/%p/"
templates
- A
|
separated list of file name extensions specifying document and static files in the content directory that undergo text template expansion.- The file name extensions include the leading dot character.
templates
defaults to blank.- A document specific
templates
value can can be specified in the document front matter taking precedence overtemplates
configuration parameters.
TOML example:
templates = ".css|.html|.js|.md"
timezone
- Sets the time zone for dates and times. Set to a TZ name from the
IANA Timezone Database or to
"Local"
(the system's local timezone). TOML example:timezone = "Pacific/Auckland"
timezone
defaults to"Local"
..shortdate
,.mediumdate
and.longdate
document template variables are rendered in the configuredtimezone
.timezone
is assigned to publicationdate
values that are specified without a timezone.permalink
dates are rendered in their assigned timezone, this ensures permalinks do not change if thetimezone
is changed.
urlprefix
†- This parameter is prepended to all synthesized document and index
page URLs. Its default value is a blank string. TOML examples:
urlprefix = "/blog" # Root-relative URL prefix. urlprefix = "https://www.example.com" # Absolute URL prefix.
user
- This is a user defined key/value map and provides a mechanism for
defining custom template variables. Both keys and values are strings and the
keys must be legal Go identifier. For
example:
# TOML [user] banner = "News & Views" byline = "Ac eros etiam enim pellentesque proin" # YAML user: banner: News & Views byline: Ac eros etiam enim pellentesque proin
Are available as these template variables:
.user.banner .user.byline
† The exclude
, include
, homepage
and urlprefix
configuration parameters
are site-wide and are always taken from the template directory root
configuration i.e. they can only be specified in the template root configuration file.
Documents
Documents are Markdown
(.md
) files in the site content directory. Each document is
generates a wepage e.g. a blog post, a newsletter or an article. The build
command combines the document with its layout
template and writes the resulting HTML webpage to the
corresponding build directory path.
hindsite uses the Blackfriday Markdown processor which supports a number of common Markdown extensions.
Documents can include an optional front matter header.
A documents with the draft front matter value set to
true
will not be included in the built website unless the -drafts
command
option is specified.
If the document is classified as a template (see the
templates
configuration parameter) then it is
rendered as a text template prior to layout template
processing.
NOTE: In addition to Markdown, hindsite can also process Rimu markup. This documentation is written in Rimu.
Static files
Static files are non-document (non-Markdown) files in the content directory. These include website resources such as CSS, JavaScript and image files. The build command copies static files to the corresponding location in the build directory.
If a static file is classified as a template (see the
templates
configuration parameter) then it is
rendered as a text template prior to being written to the
build directory.
Indexes
The hindsite build command generates paginated document and tag indexes.
- A content directory is indexed when the corresponding template directory
contains a
docs.html
template. Thedocs.html
template generates document indexes, if atags.html
template is also present then tag indexes are generated. - Documents from the indexed content directory and its subdirectories contribute to the index.
- A site can contain any number of indexed content directories.
- Indexes can be nested. This allows categorized document subdirectories to have separate indexes along with aggregated parent directory indexes.
- A primary index is an index that is not nested (has no parent index). A document can only belong to one primary index.
- Generated index pages are written to a directory named
indexes
located at the root of the build directory. - The
indexes
directory structure mirrors the templates directory structure.
The following HTML index files are built for each index:
docs-1.html
,docs-2.html
…- Paginated document index files. The number
of documents per index page is set by the
paginate
configuration parameter. Rendered with the corresponding docs.html template. tags.html
- A list of document tags linked to paginated per-tag document
index files in the
tags
subdirectory. Rendered with the corresponding tags.html template. tags/<tag>-1.html
,tags/<tag>-2.html
…- Paginated per-tag document
index files. The number of documents per index page is set by the
paginate
configuration parameter. Rendered with the corresponding docs.html template.
Front matter
Front matter is a document specific set of named values. Front matter values are embedded in a front matter header at the beginning of the document file.
Front matter header
The front matter header begins with a start delimiter (which must be the first line of the file) and ends with the corresponding end delimiter (also on on a separate line). The delimiter determines the front matter format (TOML or YAML).
- Start delimiters
- TOML:
+++
YAML:---
,<!--
,/***
- End delimiters
- TOML:
+++
YAML:---
,-->
,***/
Example YAML front matter:
---
title: Foo Bar
description: A brief history of the origins of the foofoo valve.
date: 2018-02-16
tags: [foo foo valve, qux, baz]
slug: foofoo-valve-history
draft: true
---
Example TOML front matter:
+++
title = "Foo Bar"
description = "A brief history of the origins of the foofoo valve."
date = 2018-02-16
tags = ["foo foo valve", "qux", "baz"]
slug = "foofoo-valve-history"
draft = true
+++
Front matter values
Front matter document values control webpage generation and are used in document template variables.
author
- The document author. If not specified it defaults to the
author
configuration parameter value. date
- The document publication date. If it is not specified it is extracted
from the file name
YYYY-MM-DD-
date prefix, if there is no prefix it defaults to Jan 1 0001. Thedate
format is RFC 3339 with the following relaxations:- If the time zone offset is omitted then the
timezone
configuration parameter is assigned. This has the effect of always rendering the date as written irrespective of thetimezone
parameter value. - If the time is omitted then the time
00:00:00
is used. - A space character separator (instead of the letter
T
) between the date and the time is allowed.
Examples with
timezone = "+13:00"
:1979-05-27T07:32:00+02:00 # 1979-05-27T07:32:00+02:00 1979-05-27T07:32:00 # 1979-05-27T07:32:00+13:00 1979-05-27 07:32:00 # 1979-05-27T07:32:00+13:00 1979-05-27 # 1979-05-27T00:00:00+13:00
In TOML headers the date can be specified as a quoted string or an unquoted date/time.
- If the time zone offset is omitted then the
description
- A brief summary of the document. If not specified
description
defaults to the content up to the first<!--more-->
tag or blank if there is no<!--more-->
tag. The<!--more-->
tag must appear alone on a separate line. The description is processed as Markdown. draft
- If set to
true
then the document will not be processed. This can be overridden with the build and serve command-drafts
option. Defaults tofalse
. id
- A unique document identifier.
- Non-blank
id
values must be unique within a site (an error occurs if two or more published documents have the sameid
value). - If a document has no explicit
id
value then the default value is determined by theid
configuration parameter.
- Non-blank
layout
- The name of the template used to render the document.
layout
defaults to the closestlayout.html
HTML template. permalink
- Sets the document
permalink
value. Defaults to thepermalink
configuration parameter value. tags
- A list of tag keywords and phrases. Examples:
# TOML tags = ["foo foo valve", "qux", "baz"] # YAML tags: [foo foo valve, qux, baz]
templates
- Defaults to the
templates
configuration value. The only sensible values in this context are a blank string (to disable text template expansion) or the document's file name extension (to enable text template expansion). slug
- The slug replaces the document file name (minus file name extension) in generated build paths and URLs.
title
- The document title. If not specified
title
defaults the document file name stripped of the date prefix (if there is one), with hyphens replaced by spaces, then capitalized. user
user
is a user defined key/value map. It is merged with the lower precedenceuser
configuration parameter and assigned to the.user
template variable. Ifuser
is not specified in the document front matter it defaults to theuser
configuration parameter value.
Document template variables
Document template variables are a combination of document front matter values, document configuration parameters and synthesized values. They are used in layout and index page HTML templates and in text templates.
.author
- Document author.
.body
- The document body rendered as HTML.
.description
- The document
description
front matter value rendered as HTML. .shortdate
,.mediumdate
,.longdate
- The document publication date strings
formatted using the
shortdate
,mediumdate
andlongdate
configuration parameters respectively. .date
date
front matter value..layout
layout
front matter value..modtime
- Document content file modification date and time.
.next
,.prev
- The next and previous document URLs in primary index order.
.prev
isnil
in the first document,.next
isnil
in the last document. .permalink
permalink
front matter value..slug
slug
front matter value..url
- Synthesized document URL.
.tags
- An iterable list of tags. Each item contains the variables
.tag
(the tag) and.url
(the tag index URL). .templates
templates
front matter value..title
- Document title.
.urlprefix
urlprefix
configuration value..user
- This key/value map is synthesized by merging the (higher precedence)
document front matter
user
value with the document'suser
configuration parameter.
Templates
hindsite uses Go templates from the site template directory to build webpages. There are two types of templates:
- HTML templates which are used to build indexes and document HTML webpages.
- Optional Text templates are used to preprocess Markdown documents and static files.
There are two template name spaces, one for HTML templates and the other for
Text templates. Each template file contributes one or more named templates
(the file itself plus any explicitly declared templates within the file). The
implicit template name is its file name relative to the template directory
using the slash (/
) path separator character. For example the
/blog/template/posts/layout.html
template in the /blog/template
directory is
assigned the name posts/layout.html
.
Both HTML and text templates use the Go template syntax.
HTML templates
HTML layout and index templates are used to build HTML webpages and document
indexes. All the .html
files in the site template directory (excluding
the init
directory) contribute to the set of named HTML templates made
available to layout and index templates. All HTML templates share the same
namespace.
The following template files have special significance:
layout.html
- Templates with the file name
layout.html
are used to generate content document webpages. A site can have one or more layout templates. The selected layout template is the one closest to the content document on the corresponding template directory path (but this can be overridden using the document front matterlayout
value). These conventions allow document layouts to be assigned per directory and per document. Layouts are rendered with the corresponding document template variables. docs.html
- This template generates a paginated document index page. The
presence of a
docs.html
template file specifies that the corresponding content directory is indexed.docs.html
templates are rendered with the following template variables:.docs
- An iterable list of index page documents. Each list item contains a set of document template variables.
.count
- The total number of documents in the index.
.page
- Document index page variables:
.number
- The page number.
.url
- The page URL.
.prev
,.next
,.first
,.last
- These items include the page
.number
and.url
of the previous, next, first and last index pages. For example.page.prev.number
is the page number (1…) of the previous document index page..prev
isnil
on the first last index page,.next
isnil
on the last last index page.
.urlprefix
- The
urlprefix
configuration parameter value. .user
- The index configuration
user
key/value map.
tags.html
- This optional index template is used to build a
tags.html
tags index webpage. If it is not present the tags index files are not built.tags.html
templates are rendered with the following template variables:
Text templates
All .txt
files in the template directory (excluding the init
directory) contribute to the set of named text templates available during
document file and static file template expansion.
All text templates share the same namespace.
Text template expansion is optional. By default there is no document or static
file expansion, it is enabled by the templates
configuration parameter.
Static files that undergo template expansion can include a front matter header.
Build paths
A document's build path is the file path of its generated web page.
- The build path will always be located in the site build directory.
- By default the build path mirrors the document's content directory
path.
For example, if the content directory is
/mysite/content
, the build directory is/mysite/build
and the document path is/mysite/content/posts/foo.md
then the build path will be/mysite/build/posts/foo.html
. - The
permalink
configuration parameter can be used to customize the build path. - If a
slug
front matter value is specified it replaces the document file name (excluding file name extension).
URLs
hindsite synthesizes document URLs by taking the document's build
path relative to the build directory and prefixing
it with the urlprefix
configuration parameter.
- File path separators are translated to slash characters.
- URLs are root-relative by default.
For example, if the build directory is /mysite/build
and the generated web
page is /mysite/build/posts/foo.html
then:
- The document URL will be
/posts/foo.html
- If the
urlprefix
is/blog
then the URL would be/blog/posts/foo.html
- If the document
slug
isbar
the URL becomes/blog/posts/bar.html
To synthesize absolute URLs include the URL domain in the urlprefix
.
If you are deploying to a web server subdirectory then you need to set the
urlprefix
configuration parameter to ensure synthesized URLs are rooted
correctly. For example, if are deploying to the server http://example.com/blog
directory you need to set urlprefix
to either /blog
(to generate
root-relative URLs) or http://example.com/blog
(to generate absolute URLs).
Building hindsite
To compile hindsite from source code run the following commands to download, compile and install hindsite:
NOTE: Requires Go 1.11 or better.
git clone https://github.com/srackham/hindsite.git
cd hindsite
go install ./...
This will build the latest commit (master
branch). If you want a specific
version checkout the version before running go install ./...
e.g. git
checkout tags/v1.3.0
.


--- title: 默认样式 样式 手册 Datatables中文网 ---
Datatables提供了一组基本的样式用来定位元素，比如搜索框，分页控制等，但也有很多功能可以通过样式名选择性启动。
进一步,除了通过样式名控制表的样式特性,表的颜色方案可以使用在线主题制作 。
下面列举了Datatables默认的样式名，通过他们可以控制不同样式特性
| 样式名 |
描述 |
| display | 涵盖下面样式 |
| stripe | 条纹状态 |
| hover | 当鼠标经过时高亮行显示 |
| cell-border | 给每个单元设置边框 |
| row-border | 给每行设置边框，注意：cell-border和row-border不能同时使用 |
| order-column | 高亮显示表格目前那列排序 |
看文字没感觉，下面通过示例来告诉大家该怎么使用这些样式名
display
| Name | Position | Office | Age | Start date | Salary |
|---|---|---|---|---|---|
| Name | Position | Office | Age | Start date | Salary |
| Tiger Nixon | System Architect | Edinburgh | 61 | 2011/04/25 | $3,120 |
| Garrett Winters | Director | Edinburgh | 63 | 2011/07/25 | $5,300 |
| Ashton Cox | Technical Author | San Francisco | 66 | 2009/01/12 | $4,800 |
| Cedric Kelly | Javascript Developer | Edinburgh | 22 | 2012/03/29 | $3,600 |
stripe
| Name | Position | Office | Age | Start date | Salary |
|---|---|---|---|---|---|
| Name | Position | Office | Age | Start date | Salary |
| Tiger Nixon | System Architect | Edinburgh | 61 | 2011/04/25 | $3,120 |
| Garrett Winters | Director | Edinburgh | 63 | 2011/07/25 | $5,300 |
| Ashton Cox | Technical Author | San Francisco | 66 | 2009/01/12 | $4,800 |
| Cedric Kelly | Javascript Developer | Edinburgh | 22 | 2012/03/29 | $3,600 |
hover
| Name | Position | Office | Age | Start date | Salary |
|---|---|---|---|---|---|
| Name | Position | Office | Age | Start date | Salary |
| Tiger Nixon | System Architect | Edinburgh | 61 | 2011/04/25 | $3,120 |
| Garrett Winters | Director | Edinburgh | 63 | 2011/07/25 | $5,300 |
| Ashton Cox | Technical Author | San Francisco | 66 | 2009/01/12 | $4,800 |
| Cedric Kelly | Javascript Developer | Edinburgh | 22 | 2012/03/29 | $3,600 |
cell-border
| Name | Position | Office | Age | Start date | Salary |
|---|---|---|---|---|---|
| Name | Position | Office | Age | Start date | Salary |
| Tiger Nixon | System Architect | Edinburgh | 61 | 2011/04/25 | $3,120 |
| Garrett Winters | Director | Edinburgh | 63 | 2011/07/25 | $5,300 |
| Ashton Cox | Technical Author | San Francisco | 66 | 2009/01/12 | $4,800 |
| Cedric Kelly | Javascript Developer | Edinburgh | 22 | 2012/03/29 | $3,600 |
row-border
| Name | Position | Office | Age | Start date | Salary |
|---|---|---|---|---|---|
| Name | Position | Office | Age | Start date | Salary |
| Tiger Nixon | System Architect | Edinburgh | 61 | 2011/04/25 | $3,120 |
| Garrett Winters | Director | Edinburgh | 63 | 2011/07/25 | $5,300 |
| Ashton Cox | Technical Author | San Francisco | 66 | 2009/01/12 | $4,800 |
| Cedric Kelly | Javascript Developer | Edinburgh | 22 | 2012/03/29 | $3,600 |
order-column
| Name | Position | Office | Age | Start date | Salary |
|---|---|---|---|---|---|
| Name | Position | Office | Age | Start date | Salary |
| Tiger Nixon | System Architect | Edinburgh | 61 | 2011/04/25 | $3,120 |
| Garrett Winters | Director | Edinburgh | 63 | 2011/07/25 | $5,300 |
| Ashton Cox | Technical Author | San Francisco | 66 | 2009/01/12 | $4,800 |
| Cedric Kelly | Javascript Developer | Edinburgh | 22 | 2012/03/29 | $3,600 |
Translation from DataTables.net, with permission{% include disqus.html %}


"""PyAudio Example: Play a wave file."""
import pyaudio
import wave
import sys
CHUNK = 1024
if len(sys.argv) < 2:
print("Plays a wave file.\n\nUsage: %s filename.wav" % sys.argv[0])
sys.exit(-1)
wf = wave.open(sys.argv[1], 'rb')
# instantiate PyAudio (1)
p = pyaudio.PyAudio()
# open stream (2)
stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
channels=wf.getnchannels(),
rate=wf.getframerate(),
output=True)
# read data
data = wf.readframes(CHUNK)
# play stream (3)
while data != '':
stream.write(data)
data = wf.readframes(CHUNK)
# stop stream (4)
stream.stop_stream()
stream.close()
# close PyAudio (5)
p.terminate()
To use PyAudio, first instantiate PyAudio using pyaudio.PyAudio() (1), which sets up the portaudio system.
To record or play audio, open a stream on the desired device with the desired audio parameters using pyaudio.PyAudio.open() (2). This sets up a pyaudio.Stream to play or record audio.
Play audio by writing audio data to the stream using pyaudio.Stream.write(), or read audio data from the stream using pyaudio.Stream.read(). (3)
Note that in “blocking mode”, each pyaudio.Stream.write() or pyaudio.Stream.read() blocks until all the given/requested frames have been played/recorded. Alternatively, to generate audio data on the fly or immediately process recorded audio data, use the “callback mode” outlined below.
Use pyaudio.Stream.stop_stream() to pause playing/recording, and pyaudio.Stream.close() to terminate the stream. (4)
Finally, terminate the portaudio session using pyaudio.PyAudio.terminate() (5)
"""PyAudio Example: Play a wave file (callback version)."""
import pyaudio
import wave
import time
import sys
if len(sys.argv) < 2:
print("Plays a wave file.\n\nUsage: %s filename.wav" % sys.argv[0])
sys.exit(-1)
wf = wave.open(sys.argv[1], 'rb')
# instantiate PyAudio (1)
p = pyaudio.PyAudio()
# define callback (2)
def callback(in_data, frame_count, time_info, status):
data = wf.readframes(frame_count)
return (data, pyaudio.paContinue)
# open stream using callback (3)
stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
channels=wf.getnchannels(),
rate=wf.getframerate(),
output=True,
stream_callback=callback)
# start the stream (4)
stream.start_stream()
# wait for stream to finish (5)
while stream.is_active():
time.sleep(0.1)
# stop stream (6)
stream.stop_stream()
stream.close()
wf.close()
# close PyAudio (7)
p.terminate()
In callback mode, PyAudio will call a specified callback function (2) whenever it needs new audio data (to play) and/or when there is new (recorded) audio data available. Note that PyAudio calls the callback function in a separate thread. The function has the following signature callback(<input_data>, <frame_count>, <time_info>, <status_flag>) and must return a tuple containing frame_count frames of audio data and a flag signifying whether there are more frames to play/record.
Start processing the audio stream using pyaudio.Stream.start_stream() (4), which will call the callback function repeatedly until that function returns pyaudio.paComplete.
To keep the stream active, the main thread must not terminate, e.g., by sleeping (5).


| Previous: Authorization | Up: Basics - Rules, Users and Roles | Next: Getting started with JPA Security |
Authentication is the process of determining and verifying the identity of someone or something. In multi-user applications, the process of authentication for an application is needed to get knowledge about the person that is currently using the application. The widely used process for authentication is a login process during which the user is asked for his username and password. A user that knows one of this username/password-tuples is assumend to be the person belonging to that username. Besides username/password authentication there are other methods like public-key-authentication with a digital certificate, to name just one.
JPA Security uses an implementation of the org.jpasecurity.configuration.SecurityContext interface to be aware of the currently authenticated user and other related information (like its roles, tenant, ...) at runtime.
By default JPA Security will try to auto-detect your security context. This is done via the indirection of an authentication provider. An authentication provider provides access to the current authenticated user and its roles. The detection follows the following rules (The first matching rule is taken):
When the described auto-detection strategy does not work for your environment, you may specify the class name of any implementation of the org.jpasecurity.configuration.SecurityContext interface as value of the persistence-property org.jpasecurity.security.context in your persistence.xml. To provide backward compatibility to JPA Security 0.3 org.jpasecurity.security.authentication.provider is also valid, if you specify a class name of an implementation of the org.jpasecurity.configuration.AuthenticationProvider interface, but any specification of the org.jpasecurity.security.context property will take precedence.
| Previous: Authorization | Up: Basics - Rules, Users and Roles | Next: Getting started with JPA Security |


The controllers are responsible for handling incoming requests and returning responses to the client.
In order to create a basic controller we use decorators. They associate classes with the essential metadata, therefore Nest knows how to map controllers to the corresponding routes.
{{ 'cats.controller' | extension: catsControllerT.isJsActive }}{{ catsController }}
In the example above, we used the @Controller('cats')
decorator which is required to define a basic controller.
The cats
is an optional prefix for each route registered in the class. Using a prefix allows you to avoid repeating yourself when all your routes share a common prefix.
The @Get()
decorator near to findAll()
method tells Nest to create an endpoint for this route path
and map every corresponding request to this handler. Since we declared a prefix for every route (cats
),
Nest will map every /cats
GET request to this method.
When a GET request is made to this endpoint, Nest will return a 200 status code and the parsed JSON, in this case just an empty array. How is that possible? Generally, we distinguish two different approaches to manipulate the response:
| Standard (recommended) |
When we return a JavaScript object or array, it'll be automatically
parsed to JSON. When we return a string, Nest will send just a string without trying to parse it.
Furthermore, the response's status code is always 200 by default, except for POST requests, which uses 201. We can easily change this behaviour by adding the @HttpCode(...) decorator at a handler-level.
|
| Library-specific |
We can use the library specific response object,
which we can inject using @Res() decorator in the function signature, for example findAll(@Res() response) .
|
Warning It's forbidden to use both approaches at the same time. Nest detects whether the handler is using either@Res()
or@Next()
, if that's the case - the standard way is disabled for this single route and will no longer work as expected.
A lot of endpoints need an access to the client request details.
In fact, Nest is using library-specific (express by default) request object.
We can force Nest to inject the request object into handler using @Req()
decorator.
{{ requestObject }}
{{ requestObjectJs }}
The request object represents the HTTP request and has properties for the request query string, parameters, HTTP headers, and e.g. body (read more here), but in most cases, it's not necessary to grab them manually.
We can use dedicated decorators instead, such as @Body()
or @Query()
, which are available out of the box.
Below is a comparison of the decorators with the plain express objects.
@Request() |
req |
@Response() |
res |
@Next() |
next |
@Session() |
req.session |
@Param(param?: string) |
req.params / req.params[param] |
@Body(param?: string) |
req.body / req.body[param] |
@Query(param?: string) |
req.query / req.query[param] |
@Headers(param?: string) |
req.headers / req.headers[param] |
We defined an endpoint to fetch the data (GET route). That would be great to provide a way of creating the new records as well. Let's create the POST handler:
{{ 'cats.controller' | extension: postEndpointT.isJsActive }}{{ postEndpoint }}
It's really easy. Nest provides the rest of those endpoints decorators in the same fashion -
@Put()
, @Delete()
, @Patch()
, @Options()
, @Head()
, and @All()
.
As mentioned, the response status code is always 200 by default, except POST requests, when it's 201.
We can easily change this behaviour by adding the @HttpCode(...)
decorator at a handler-level.
{{ statusCode }}
To specify a custom response header, you can either use a @Header()
decorator or a library-specific request object.
{{ header }}
Routes with static paths can't help when you need to accept dynamic data as part of the URL. In order to define routes with parameters, simply specify the route parameters in the path of the route as shown below.
{{ routeParameters }}
In order to pick up a particular parameter, simply pass its name in parenthesis.
{{ routeParameter }}
We love modern JavaScript and we know that the data extraction is mostly asynchronous.
That's why Nest supports async
functions and works pretty well with them.
Hint Learn more about async / await
here!
Every async function has to return a Promise
. It means that you can return deferred value and
Nest will resolve it by itself. Let's have a look at the example below:
{{ asyncExample }}
{{ asyncExampleJs }}
It's fully valid.
Furthermore, Nest route handlers are even more powerful. They can return RxJS observable streams. Nest will automatically subscribe to the source underneath and take the first emitted value.
{{ 'cats.controller' | extension: observableExampleT.isJsActive }}{{ observableExample }}
{{ observableExampleJs }}
There's no recommended way. You can use whatever fits your requirements.
Our previous example of POST route handler doesn't accept any client params. Let's fix this by adding the @Body()
argument here.
But firstly (if you use TypeScript), we need to determine the DTO (Data Transfer Object) schema. A DTO is an object that defines how the data will be sent over the network. We could do this by using TypeScript interfaces, or by simple classes. What may be surprising, we recommend using classes here. Why? Classes are part of the JavaScript ES6 standard, and therefore they represent just plain functions. On the other hand, TypeScript interfaces are removed during the transpilation, Nest can't refer to them. It's important because features such as Pipes enable additional possibilities when they have access to the metatype of the variable.
Let's create the CreateCatDto
:
{{ createCatSchema }}
It has only three basic properties. All of them are marked as readonly
because we should
always try to make our functions as pure as possible.
Thereafter we can use the schema inside the CatsController
:
{{ exampleWithBody }}
{{ exampleWithBodyJs }}
Here is an example that makes use of few available decorators to create a basic controller that exposes a couple of methods to play with the internal data.
{{ 'cats.controller' | extension: fullSampleT.isJsActive }}{{ fullSample }}
{{ fullSample }}
There's a separate chapter about working with the exceptions here.
The controller is prepared, nevertheless, Nest still doesn't know that CatsController
exists yet.
Hence, it won't create an instance of this class. We need to tell Nest about it.
The controller always belongs to the module, that's why we hold the controllers
array within the @Module()
decorator.
Since we don't have any other modules except the root ApplicationModule
, let's use it for now:
{{ appModule }}
Tada! We attached the metadata to the module class, and thus Nest can easily reflect which controllers have to be mounted.
So far we've discussed the Nest standard way of manipulating responses.
The second way of manipulating the response is to use library-specific response object.
In order to inject the response object, we need to use @Res()
decorator.
To show the differences, let's rewrite the CatsController
:
{{ expressWay }}
{{ expressWayJs }}
This manner is much less clear in general. You should definitely prefer the first approach, but to make the Nest backward compatible with the previous versions, this method is still available. Also, the response object gives more flexibility - you have full control of the response object (headers manipulation and so on).


Seat belts are included in each modern vehicle and when the child has matured to the reccommended stage, should be properly worn to ensure ultimate protection.


Building key assets in children today so that they turn into healthy and happy adults of tomorrow.
After The Bell Inc. believes that all children deserved to be cared for, respected, and are entitled to a safe and healthy environment.
After The Bell Inc. also believes in open communication with parents and community partners to create a better place for children.
Positive activities and interactions between the staff and children will encourage and educate the children about responsibility, honesty, fairness, compassion and respect.
After The Bell Inc is dedicated to providing high-quality child care for school-aged children.
There are a wide variety of activities and choices available that allow "Kids to BE KIDS!" while
still teaching them about themselves, their peers, environment, and community.
Employees are hired based on their experience, both in duration and in content. All employees must
pass a background check before they are hired. In order to ensure that the staff are After The Bell Inc
remain fully qualified, they are frequently offered courses and workshops at no charge to keep current.
Most recently, in March 2013, the staff at After The Bell Inc took a programming course by
Alana Faulkner.
- School Age Program Planning
- Inclusive Child Care Classroom
- Behaviour Guidance
- Play & Learning
- Emergent Learning
- ASL for Children
- Music & Movement
... and the list goes on!


Team
Ashish Mukherjee - Lead Engineer
Ashish has been in the industry for 15+ years, with successful tenures at multiple firms including Yahoo. Motivated to contribute to a niche product for the enterprise market, he worked on the product spec and technical design and implementation thereafter.
To discuss partnership possibilities, please
contact us.


"Friendly service and good quality - wouldn't hesitate to recommend LAM Office Furniture"
"Great product, great service, would use again. Thanks!"
"Very friendly and helpful staff. Huge range of quality office furniture."


Imperial Mountains [as69], mountain, in Imperia, wilderness
Last updated Turn #139
Imperial Mountains [as69], mountain, in Imperia, wilderness
------------------------------------------------------------------------
4: Lanthara [r4v], Imperial Empire, duke, with 39 nazgul, arrived from
4: the south, accompanied by:
4: Manis [h3g], Imperial Empire, with 17 archers, 18 hvy. xbowmen
4: Lars the very big Guy [o4l], refugee, prisoner
4: Stack of nazgul [fw2x] attacks Lanthara [r4v]!
4:
4: Stack of nazgul [fw2x], nazgul, number: 3
4:
4: Lanthara [r4v], Imperial Empire, duke, with 39 nazgul,
4: accompanied by:
4: Manis [h3g], Imperial Empire, behind 5, with 17 archers, 18 hvy.
4: xbowmen
4:
4: Initial missile round for the defense (Lanthara [r4v]):
4: Two missiles hit!
4: Stack of nazgul [fw2x] loses two nazgul [55].
4:
4: Combat round: one
4: Missile phase:
4: Lanthara's forces hit with two missiles.
4: Stack of nazgul [fw2x] suffers a hit!
4:
4: Lanthara [r4v] is victorious!
4:
4: Stack of nazgul lost two nazgul.
4: Stack of nazgul [fw2x] was killed.
4:
5: Lanthara [r4v], Imperial Empire, duke, with 39 nazgul, went north,
5: accompanied by:
5: Manis [h3g], Imperial Empire, with 17 archers, 18 hvy. xbowmen
5: Lars the very big Guy [o4l], refugee, prisoner
14: Pack of wolves [it0d], wolves, number: 6, arrived from the north.
15: Vincenzo Lenaras [w0l], refugee, with one peasant, arrived from the
15: west.
16: Pack of wolves [it0d], wolves, number: 6, went south.
17: Vincenzo Lenaras [w0l], refugee, with one peasant, went east.
17: Stack of nazgul [bs8o], nazgul, arrived from the east.
19: Stack of nazgul [bs8o], nazgul, went west.
22: Horde of rats [he5s], rats, number: 25, arrived from the east.
24: Stack of giant lizards [bb3s], giant lizards, number: 8, arrived from
24: the west.
28: Stack of harpies [ge5u], harpies, number: 10, went west.
Routes leaving Imperial Mountains:
North, mountain, to Imperial Mountains [ar69], 10 days
East, mountain, to Imperial Mountains [as70], 10 days
South, plain, to Buffalo Plains [at69], 7 days
West, mountain, to Imperial Mountains [as68], 10 days
Inner locations:
Lair [ae0z], lair, 1 day
Seen here:
Stack of nazgul [fi0y], nazgul, number: 3
Stack of harpies [ge5u], harpies, number: 10
Stack of harpies [ig2w], harpies, number: 9
Horde of rats [he5s], rats, number: 24
Stack of giant lizards [bb3s], giant lizards, number: 7


Live Painting Options
Select a painting style:
Min X:
Max X:
Min Y:
Max Y:
Colors:
[
X
]
[
add
]
Change


Money Play. How should Red play 63?
pips Red=122 White=106
(CorrectAnswer= 0/0, ErrorScore= 0)
One of things the bots have taught us is to go while the going is good. A 1970s player might have found 13/7, 10/7 but anyone playing in this millennium will find 21/8, 21/15 relatively swiftly.
The move has some duplication but the key is put pressure on the other White blot and hopefully significantly increase the percentage of gammon won.
20/15, 13/10 is reasonable but still small error.
The move has some duplication but the key is put pressure on the other White blot and hopefully significantly increase the percentage of gammon won.
20/15, 13/10 is reasonable but still small error.
1. Cubeful 2-ply 21/15 13/10 Eq.: +0.189 0.684 0.000 0.000 - 0.316 0.070 0.006 2. Cubeful 2-ply 21/18 21/15 Eq.: +0.166 (-0.023) 0.675 0.000 0.000 - 0.325 0.072 0.005 3. Cubeful 2-ply 21/15 8/5 Eq.: +0.129 (-0.060) 0.656 0.000 0.000 - 0.344 0.062 0.004 4. Cubeful 2-ply 21/18 13/7 Eq.: +0.106 (-0.083) 0.663 0.000 0.000 - 0.337 0.102 0.012 5. Cubeful 2-ply 21/12 Eq.: +0.105 (-0.084) 0.650 0.000 0.000 - 0.350 0.069 0.005


Add Point Markers
If your monitoring site is a relatively small location we recommend mapping using point markers.
Add Bulk Coordinates
If your monitoring site is comprised of several locations, we recommend mapping using our csv data dump.


npm puts various things on your computer. That’s its job.
This document will tell you what it puts where.
./node_modules
of the current package root.-g
): puts stuff in /usr/local or wherever node is installed.require()
it.npm link
.The prefix
config defaults to the location where node is installed. On most systems, this is
/usr/local
. On Win node is typically installed at {prefix}/bin/node
rather than
{prefix}/node.exe
.
When the global
flag is set, npm installs things into this prefix. When it is not set, it uses the
root of the current package, or the current working directory if not in a package already.
Packages are dropped into the node_modules
folder under the prefix
. When installing
locally, this means that you can require("packagename")
to load its main module, or
Global installs on Unix systems go to {prefix}/lib/node_modules
. Global installs on Windows go to
{prefix}/node_modules
(that is, no lib
folder.)
Scoped packages are installed the same way, except they are grouped together in a sub-folder of the relevant
If you wish to When in global mode, When in local mode, executables are linked into When in global mode, man pages are linked into When in local mode, man pages are not installed. Man pages are not installed on Windows systems. See Posix, or This is controlled by the Temporary files are stored by default in the folder specified by the Temp files are given a unique folder under this root for each run of the program, and are deleted upon
successful
exit. When installing locally, npm first tries to find an appropriate Starting at the $PWD, npm will walk up the folder tree checking for a folder that contains either a
If no package root is found, then the current folder is used. When you run Any bin files are symlinked to If the For global installation, packages are installed roughly the same way, but using the folders described
above. A nother optimization can be made by installing dependencies at the highest level possible, below the localized
"target" folder. Consider this dependency graph: In this case, we might expect a folder structure like this: Since foo depends directly on Even though the latest copy of blerg is 1.3.7, foo has a specific dependency on version 1.2.5. So, that
gets
installed at [A]. Since the parent installation of blerg satisfies bar’s dependency on
Bar [B] also has dependencies on baz and asdf, so those are installed in
bar’s Underneath bar, the Underneath For a graphical breakdown of what is installed where, use Upon publishing, npm will look in the This allows a package maintainer to install all of their dependencies (and dev dependencies) locally,
but only
re-publish those items that cannot be found elsewhere. See node_modules
folder with the name of that scope prefix by the @ symbol, e.g. npm install
@myorg/package
would place the package in {prefix}/node_modules/@myorg/package
. See
require()
a package, then install it locally.Executables
{prefix}
on Windows.
./node_modules/.bin
so that they can be made
a npm test
.)
Man Pages
{prefix}/share/man
.Cache
%AppData%/npm-cache
on Windows.cache
configuration param.Temp Files
tmp
config, which
defaults to
the TMPDIR, TMP, or TEMP environment variables, or /tmp
on Unix and
c:\windows\temp
on
Windows.
More Information
prefix
folder. This is so
that
npm install<EMAIL_ADDRESS>will install to the sensible root of your package, even if you happen
to have
cd
ed into some other folder.
package.json
file, or a node_modules
folder. If such a thing is found, then
that is
treated as the effective "current directory" for the purpose of running npm commands. (This behavior is
inspired
by and similar to git’s .git-folder seeking logic when running git commands in a working dir.)
npm install<EMAIL_ADDRESS>, then the package is loaded into the cache, and then
unpacked
into ./node_modules/foo
. Then, any of foo’s dependencies are similarly unpacked into
./node_modules/foo/node_modules/...
.
./node_modules/.bin/
, so that they may be found by npm
scripts when
necessary.Global Installation
global
configuration is set to true, then npm will install packages "globally".
Example
foo
+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>| +--
<EMAIL_ADDRESS>(latest=1.3.7)
| +--
<EMAIL_ADDRESS>| | `--<EMAIL_ADDRESS>(cycle)
| `-- asdf@*
`--
<EMAIL_ADDRESS>`--
<EMAIL_ADDRESS>`--
bar
foo
+-- node_modules
+-- bar (1.2.3) <---[B]
| +-- baz (2.0.2) <---[C]
| | `-- node_modules
="sourceLine" id="cb2-9" title="9"> | `-- asdf (2.3.4)
`-- baz (1.2.3) <---[D]
`-- node_modules
`-- quux (3.2.0) <---[E]
<EMAIL_ADDRESS>and<EMAIL_ADDRESS>, those are installed in
foo’s
<EMAIL_ADDRESS>,
it does not install anot node_modules
folder.
Because it depends on<EMAIL_ADDRESS>, it cannot re-use the<EMAIL_ADDRESS>installed in
the parent
node_modules
folder [D], and must install its own copy [C].
baz -> quux -> bar
dependency creates a cycle. However,
because bar is
already in quux’s ancestry [B], it does not unpack another copy of bar into that folder.foo -> baz
[D], quux’s [E] folder tree is empty, because its dependency on
bar is
satisfied by the parent folder cop
npm ls
.Publishing
node_modules
folder. If any of the items there are
not in the
bundledDependencies
array, then they will not be included in the package tarball.
package.json
for more information.See also


Basic nav pills
Only you could make those words cute. Oh I beg to differ, I think we have a lot to discuss.  I am not a killer. I feel like a jigsaw puzzle missing a piece. And I'm not even sure what the picture should be.
I'm thinking two circus clowns dancing. You? Finding a needle in a haystack isn't hard when every straw is computerized. Tell him time is of the essence. Somehow, I doubt that. You have a good heart, Dexter.
I'm really more an apartment person. This man is a knight in shining armor. Oh I beg to differ, I think we have a lot to discuss.  You all right, Dexter?
I'm generally confused most of the time. Cops, another community I'm not part of.  I catch killers. Hello, Dexter Morgan.


Landing Page
Special Projects
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.
BLAKE NISSEN
02.15.18
The 2017-18 season was supposed to be a year in transition for both the men’s and women’s basketball teams. Only one season has gone according to plan.
The women’s team beat Kent State and Ball State recently, only losing to Mid-American Conference standout Central Michigan by two. With a young roster, the ceiling is as high as could be.
With multiple winnable games on the schedule ahead, the women’s team has a chance to turn what looked to be a re-tooling year after the loss of great seniors into a special one.
The men’s team, on the other hand, has been ravaged by injuries that have come at both ends of the roster.
After Jaaron Simmons left for Michigan in April, the Bobcats looked to be in trouble at the guard position — it was to be expected. But then Teyvion Kirk and Zach Butler looked to be competent enough to mitigate the loss of one of the MAC’s best players.
Then a wave of injuries that no one has ever seen before washed over the Bobcats.
First it was Jason Carter, who is presumably out for the season. Then it was Kevin Mickle, who tore his meniscus in his left knee. He’s still playing through the injury, as are Mike Laster with his shoulder, Jordan Dartis with his hip and Gavin Block with, well, everything. Freshmen Ben Vander Plas and A.J. Gareri have also been bitten by the injury bug, too.
All of the injuries have limited the Bobcats on the floor, who have had to rise above the injuries to do whatever they can to scrap together a healthy lineup.
Add that in with a few close losses and a few blowouts, and the men’s team hasn’t seen the season it’s wanted. There’s not much time to right the ship, but the signs are there.
But that’s what makes the end of college basketball season exciting. Both teams are up against the clock, and it’s time to figure out who can do what. There’s just a little over two weeks left in conference play, and there’s still so much to be decided. The women’s team looks primed for a bye to Cleveland, and the men’s team has work to do if it wants a home game in the first round of the MAC Tournament.
In the following pages, we’ve got stories about it all: Gabby Burris becoming a freshman standout, Kevin Mickle’s journey from a soccer player to a basketball player in Athens, a column on coach Saul Phillips and a story about James Gollon and his brother’s relationship that will touch anyone who reads it.
There have been good and bad storylines from both the men’s and women’s team this season, which has made for an interesting few months in The Convo. Our men’s and women’s basketball reporters have enjoyed covering the season thus far — I know I have.
This special edition of the tabloid was enjoyable to work on and enjoyable to produce. Our editors, designers, editorial staff and, of course, Assistant Sports Editor Spencer Holbrook, worked incredibly hard to produce this content which I know will be enjoyable and exciting to read through.
We’ve got plenty of season left, so please, continue to read The Post in the next few weeks. We won’t disappoint, I promise.
Thanks for reading,
Andrew Gillis
Landing Page
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.


Note:
: If you are running this test off local disk on Chrome, it will fail unless you start Chrome with
--allow-file-access-from-files
.


Hello everyone, my name is Keith. This page is an opportunity for you to get to know me. I don't want to give away too much since you will be answering some questions about me but I'll hit some of the bullet points. I was born in Salem, OR and have lived in the northwest my entire life. I have played sports since I was a young child. My other hobbies include fly-fishing, cooking/eating, T.V., comedy and snowboarding. I attended Oregon State University in Corvallis, OR before moving to Seattle. I have lived in Seattle for two years. I am new to coding but am really excited about learning more and the opportunities it will open.


Prototypes
Citizens
- MYR RAS landing page (JIRA 30061)
- Service unavailable
- Paperless communication to patients
- Redesigned survey message
- Access code instead of password
- NHS number instead of password
- Return to referrer with advice JIRA 25492
- Accept but book later JIRA 25493
- Improvements to completion screen
- Login accessibility enhancements
- Page titles and content hints Improvements for accessibility JIRA 18884
- Clinic selection Improvements for accessibility JIRA 18885
- MYR appointment slot issues journey
- Manage your referral start page (Sketch for NHS beta)
Before August 2017
Health professionals
-
Paperless comms - professional user workflow JIRA 28548
• Prototype v5 Revised version at end of journey
• Prototype v4 Tested Sheffield, Liverpool, Leeds and Newcastle October 2018
• Prototype v3 Tested Nottingham 19/09/18
• Prototype v2b Not tested, design rejected.
• Axure Prototype 2 (patient does not have an existing email in PDS)
• Axure Prototype 1 (patient has existing emails in PDS)` -
Pre-submission screen issue JIRA 28526
• Direct prototype (popup)
• EMIS prototype (popup)
• EMIS prototype v2 (page) - Referral summary screen redesign JIRA 27973
- Header re-design
- Access code replacing password
- Training environment login
- Referral screen concept
- Capture if a referral was recommended on advice and guidance. (opens in new window)
- Draft UBRNs (opens in new window)
- Reporting - ideas (opens in new window)
- Reporting - production designs (opens in new window)
- Worklist filters (opens in new window)


KABADDI
Contact: +917768092236
Entry Fee: Boys Rs.700
RULES:-
1.Each team must have minimum 10 and maximum 12 players. A playing squad of 7 shall take the
Ground at a time, and the remaining 3 or 5 are substitutes.
2.The duration of Match shall be a minimum of 30 minutes, divided equally into 2 halves of 15
minutes each, with a 5-minute internal between the two halves.
3.Scoring System
a) Each team will score one point for every opponent out or put out.

c) Each team shall score one point for every bonus point awarded.
4.Time Out
a) Each team is allowed to take 1 TIME OUT of 90 seconds per match.
b) During the time out, the match clock will be paused and will restart on commencement of next raid.
c) Official Time out can be called by referee in case of any injury.
5.Substitution
a) Each team is allowed a maximum number of 5 substitutions per match with the permission of referee.
b) Substitutions are not allowed for players who are out.
c) Players can be resubstituted.
d) Match clock will be officially stopped for the duration of substitution.
e) In case a team utilises all 5 substitutions and one of its players suffers an injury in the immediate
raid after the final substitution, the referee may choose to allow substitutes.
6. Results
The team which scores highest number of points at the end of the match will be declared a winner.
7. In Case of tie
a) In case if tie, an extra time of 7 minutes will be awarded to decide the result of match.
b) This extra time of 7 minutes will be divided into halves of 3 minutes each and a break of 1 minute between the halves
c) The court and raid position will be the same as they were at the beginning of the match.
d) Regular rules of the play shall be followed.
8.If at the end of 7 minutes the game is still tied, 3 raid are given to each side and the winner will be declared accordingly.


Niraj, The gift of God, I believe that God has sent him into my life to give me something to fight for, to show me there is love in this world, to provide me with the hope and to bring me joy. He is a man with high dignity and moral values, Innovative and always tends to precisely new ideas. I love the way he listens and respects others. He has such a tremendous positive charisma.
He has the courage of his convictions I have found the perfect partner to spend my life with.
Loving him has given me a new meaning to my life, and it's impossible now to think of my life/dream about a life without him. I love him more than anything else in this world and never want to lose him.
in words of Ruchi
Ruchi, a princess I meet on the Earth who is directly put by heaven. I have seen her in some shades of life and never been this Fortunate in life to get a life partner like her. Her ability to pour abundance smile and happiness to everybody is wonder blessings she has got from heaven of all the gods. Her charm makes everybody love her. She was adorable for me when I first met her, I was not sure that our relationship would go further but now she is a priceless gem of my life whom I never want to lose.
She is a joyful, energetic, adorable, nice magnificent, and smart girl who has a clear idea about life.
I would like to make this princess my queen♛ of heart♡.
:niraj
Fullfill us with you blessing and wishes. Thanks.


Free times
Displaying free times from selected calendars in increments of 15 min:
Date range
(First choose a range of dates to check for busy times FORMAT: MM/DD/YYYY - MM/DD/YYYY)
{% if session.calendars is defined %}
Now select the calendars you would like to check
{% for cal in session.calendars %}
{{ cal.summary }}
{% if loop.index is divisibleby 3 %}
{% endif %}
{% endfor %}
{% endif %}


Earnings report is an official public statement of a company's profitability.
Home
(current)
About
Services
Contact
Enter the companies' tickers to see their earnings reports dates
Enter!
Sign Up for Weekly Reports:


Play-Again
Exit


Project survey form
In order to be contacted, please provide some additionnal information including the best conveniant time to reach you.
In order to be contacted, please provide some additionnal information including the best conveniant time to reach you.


Professional Experience
1
Tripping Cats OÜ
Oct 2019 - Present (Tallin, Estonia)
Web Architect
Tripping Cats OÜ was founded in Estonia on 2019 by a passionate team of software engineers & designers.
We've launched https://lacandidieta.com on December 2019 to help people fighting against a condition called candidiasis.
We've started 2020 working on https://capitall.app a personal financial manager.
https://tribu.yoga is our latest adventure: a minimalist solution for yoga groups management and communications.
2
Eleven Systems, LLC
Feb 2015 - May 2019 (Mill Valley, California)
Senior Software Engineer
Eleven Systems develops web-based and iOS mobile software that focuses on two main areas. The first is Family Office software, which allows ultra-high net worth customers to manage the complex mix of assets and investments that they control. Eleven Systems works with Jetson Systems (experts in high end home automation and control systems) as part of Grassy Creek to produce the Personal Life Manager. Personal Life Manager includes features to manage properties, financial assets, inventory, alternative investments, a private communication platform, and much more.
On Eleven Systems I'v created the foundation for a web applications family, in addition to implementing the security layer in each one, a consolidated build process, shared components logic, code organization and UI. In my last stage I also worked on applications for iOS Mobile using Swift and creating communication bridges between web and mobile applications.
3
Alinean, Inc.
Nov 2013 - Feb 2015 (Orlando, Florida)
Front-End JavaScript Developer
Alinean (Now Mediafly) makes it easy for companies to successfully incorporate interactive selling tools like ROI calculators, TCO and product comparisons, and diagnostic and benchmark assessments into existing sales processes.
My job at Alinean was to develop the Front-End layer for the company's applications suite, as part of the core of the web development team.
4
Cambio Labs, LLC
Jan 2012 - Nov 2013 (Vineyard, Utah)
PHP Back-End & Front-End Developer
Cambio Labs is a Utah based company passionate about building professional websites that make companies looks good and get more customers.
I really loved my time working for Cambio Labs, converting PSD templates to clean, pixel perfect and interactive web pages, all this time learning from the experts. Also I worked in the maintenance and new features development for a sales and inventory system.
5
Othos Telecomunicações
Jan 2010 - Apr 2012 (São Paulo, Brazil)
UIX Designer / Front-End Developer
Othos is a telecommunications service provider that offers different products and services based on high-end technology (VoIP). I've worked with network specialists and communication engineers providing them with user interfaces for the solutions they created. My work was to abstract the complexity of those systems using a simple UI layer for the final users.
6
Mia Films & Seat For Two
Jan 2008 - Jan 2010 (San José, Costa Rica)
Full-Stack Developer & Front-End Lead
I've started at Mia Films as Full Stack Developer, the company was developing a dating site, I enjoyed so much my time here creating MySQL tables, PHP classes, doing systems analysis and creating the UI to support it. The project grew up enough and was launched with great success. A new company was created for the project: Seat For Two, so I've started a second phase on this company as a Front-End Lead.
Education
1
Adventist University of Central America
Jan 2005 - Dec 2010 (Alajuela, Costa Rica)
Bachelor Degree in Computer Science
Amazed by computers in my early years I've started studying computer science in 2005, I've learn algorithms, programming, integrated circuit design, operating systems fundamentals among many other things. Those years I've discovered C, C++, Cobol, C#, Delphi, Pascal, PHP, JavaScript, CSS, HTML and so on and so forth... Just to confirm that programming is my life.
2
Adventist University of Central America
Jan 2011 - Dec 2012 (Alajuela, Costa Rica)
Licentiate Degree in Computer Science
I continued my education in the same university in order to keep deepening my knowledge in computers, I was already working at that time and ended up creating the first registration and students control system for my university.


This board has not been found.It might have been deleted.You might find the board you are looking for with the other boards.


{% load i18n %} {% if not is_renewal_page %}
{% blocktrans with plan.name as p %} You have selected the {{ p }} Edition subscription. {% endblocktrans %}
{% endif %}{{ plan.monthly_fee }}
{% trans "Monthly Fee" %}
{{ plan.description }}
{% blocktrans with next_invoice_date as invoice_date %} CommCare is billed on a monthly basis, and all subscriptions require a 30 day minimum commitment. You should expect your first invoice on {{ invoice_date }}, or you can prepay for your subscription by following the instructions here. {% endblocktrans %}
{% blocktrans %} Once you subscribe to a paid plan, you will be able to pause your subscription after 30 days, but you will no longer be able to downgrade to the CommCare Community plan. {% endblocktrans %}
{% blocktrans %} I understand and wish to continue. {% endblocktrans %}
{% elif is_same_edition %}{% blocktrans with current_plan as p %} Continuing will keep you on {{ p }} Edition Software Plan and any pending subscriptions will be cancelled. {% endblocktrans %}
{% elif is_downgrade_before_minimum %}
{% blocktrans with current_plan as p %}
You’ll have access to the features on your
{{ p }} Edition Software Plan through {{ current_subscription_end_date }}.
On {{ start_date_after_minimum_subscription }} your current subscription will be downgraded
to the {{ new_plan_edition }} Edition Software Plan.
{% endblocktrans %}
{% blocktrans with current_plan as p %} We're sorry to see you downgrade! You are currently subscribed to the {{ p }} Software Plan. {% endblocktrans %}
{% endif %}


Book List
Search keyword
Book name
Description
ISBN
Author
Publisher
Price
Payment method
{{t.subject}}
{{t.description}}
{{t.isbn}}
{{t.author.name}}
{{t.publisher.name}}
$ {{t.price}}
Owned
Pay with cheque
Pay with cash account


Forex reserves up by $3.5 bn to a new lifetime high of $446 billion
In the previous week, the reserves had increased by $1.832 billion to $442.583 billion
by Press Trust of IndiaThe country's foreign exchange reserves rose by $3.515 billion to touch a fresh lifetime high of $446.098 billion in the week to November 1, helped by increase in foreign currency assets, RBI data showed on Friday.
In the previous week, the reserves had increased by $1.832 billion to $442.583 billion.
The increase in reserves in the reporting week was mainly on account of a jump in foreign currency assets (FCA), a major component of the overall reserves.
FCA increased by $3.201 billion to $413.654 billion in the week ended November 1, the RBI said.
Expressed in US dollar terms, the foreign currency assets include the effect of appreciation or depreciation of non-US units like the euro, pound and the yen held in the foreign exchange reserves.
During the week, gold reserves increased by $301 million to $27.353 billion.
The special drawing rights with the International Monetary Fund increased by $2 million to $1.443 billion during the week.
The country's reserve position with the Fund also increased by $10 million to $3.648 billion, the data showed.


august 7, 2015
My first job after college was in a call center. I picked up a lot of valuable skills in that unglamorous job, and I also learned some things about myself.   I rehearse what I will say before I call to make a reservation. I won't order a pizza or schedule an appointment if I can't do it online. I'm not sure why I experience so much anxiety with phone calls, but apparently I'm not alone (it appears to be a millenial thing). I sometimes hear the sound of a phone ringing in my nightmares. I. Hate. The phone.
If there's one thing that scares me more than the phone, it's video chats like Skype and Hangouts. It's exactly like talking on the phone, except the person can see you! I can't roll my eyes at what you said, or get by with a few "mmhmms" while otherwise spacing out? How terrible! The prospect of spending 9 remote weeks in video pairing sessions for Phase 0 at DBC really gave me some pause. But I refused to let my irrational fear stop me from committing to this experience. It was simply another challenge I'd have to overcome.
And 5 weeks in, it hasn't been much of an issue after all. I do experience some anxiety, but the pairing challenges are so immersive, soon enough I'm lost in the work and not at all worried about my phone performance.
Pairing has actually been kind of fun. In some cases, I've felt glad that I was working with someone, as they helped me understand a concept better, or the work just flowed easily between both of us. The majority of the time though, I'm finding I do work best alone. I think this is mostly because I find it hard to concentrate on thinking through a solution when someone else is speaking or even just watching me do something. I've found that I'm definitely an experimenter when it comes to getting my code to work, and at times it's draining to have to explain everything I'm doing to someone else.
I'm hopeful that when I have a better understanding of what a piece of code will do without having to test every single thing, I'll be able to work more efficiently with a peer. I know that it will likely be a large part of my future job responsibilities, and in a way I'm looking forward to that. Two heads are better than one, and it will be fun to be able to strategize with someone when we both know what we're doing. Presently, I feel most effective working solo, but I know that pairing is another skill that I'll hone over time.
DBC is huge on feedback, both giving and receiving. I've been pleased with the feedback I've received, as it's largely positive and makes me feel more confident in my pairing skills. Early on in Phase 0, I had a couple people say that I could have been more definitive in selecting a driver/navigator role, so now I think about my preference before I come into a challenge and let my partner know. For example, on my last pairing session I had already spent several hours pairing on a different challenge earlier in the day, so I asked my partner if he would mind doing most of the driving so I could focus more on thinking the problem through with my half-fried brain.
One piece of feedback pointed out that at times I have difficulties explaining myself, which I think stems from not being entirely confident in this new vernacular that I'm acquiring. Maybe I stumble over words or just generally am not communicating ideas and concepts effectively. That's now an issue that I'm aware of, so I make an effort to gather my thoughts before blurting out a bunch of nonsense.
For the most part, I've enjoyed giving feedback to others. It's nice to take a few minutes to reflect on the challenge and consider what went well, what didn't, and what you both could stand to improve. I do wish there was some leeway though, as sometimes I have a really tough time coming up with actionable (constructive) feedback. I'd say that's the most difficult thing for me when writing feedback--occasionally a session just goes very smoothly and there's nothing I'd want to change.


The compiled, production ready plugin is available in the /dist
directory.
Only use the code in the /src
directory if you plan to compile the plugin from
source as part of your project’s build process.
Building from source assumes an intermediate level of
knowledge about build tooling. If you have trouble compiling the plugin on your
own please use the provided /dist
files or seek help from Stack Overflow.
Include directly
Include the minified Universal Module Definition (UMD) files as a script tag to register scrollnav as a global variable.
Manual
<script src="[your assets directory]/scrollnav.umd.min.js"></script>
CDN
If you want to leverage the speed and distribution of a CDN scrollnav is available on unpkg and jsdelivr. The URL is pinned to v3.0.0 so you’ll need to update the script tag whenever a new version is released.
<script<EMAIL_ADDRESS>Package manager
Install with Yarn
yarn add scrollnav
Install with NPM
npm install scrollnav
Install with Bower
bower install scrollnav --save
The folks from Bower no longer recommend using Bower. Luckily they’ve created a guide to migrating to Yarn.


--- layout: home title: permalink: /exhibitions/ main_image_path: /uploads/sisters-i-2.jpg main_image_caption: 'Trish WYLIE : Sisters I oil on canvas 4 x 5''' frontpage: true homepage_description_markdown: '' frontpagetitle: About archive: false images: - image_path: image_title: image_description: _options: main_image_path: width: 1200 height: 1200 resize_style: contain mime_type: image/jpeg correct_orientation: true _comments: title: Page title permalink: Be careful editing this main_image_path: Image used to represent your page archive: Not used yet! frontpage: Show this page on the homepage homepage_description_markdown: Text used on homepage if shown frontpagetitle: Alternative title for home page use images: Add and edit images here ---
FORTHCOMING EXHIBITIONS at CAREY BLYTH GALLERY 8 Woodstock Road Oxford OX2 6HT
From 9 September 2023 All The Pretty Horses Paintings by Trish WYLIE
Gallery open : Tues- Sat 11-5 pm
CURRENT EXHIBITION at CAREY BLYTH GALLERY 8 Woodstock Road Oxford OX2 6HT
July - August 2023 : Back to Abstract: Paintings by Chloe Fremantle and Netta Carey
Gallery open : Wed- Sat 12-5
May / June 2023 : Pots of Plenty : Paintings by Anne Lynch and Ceramics by Alan Berman.
Gallery open : Wed- Sat 12-5
18 March - 29 April : Anne Howeson 'Feet of Angels' Drawings worked over photographs from William Henry Fox Talbot Catalogue Raisonee at Bodleian Libraries, and over 19th & 18th Century engravings. Beautiful drawings that merge historic with contemporary.
Jan - March 11 2023 : Mixed Exhibition : 40 Paintings & Sculptures. New paintings by Netta Carey, Paul Amey & new sculputures by Martin Smith plus gallery artists....
'Light Seeking Light' curated by Jenny Blyth: Paintings by Peter BLEGVAD & Chloe FREMANTLE at the new Royal Watercolour Society Galleries, 3-5 Whitcomb Street London WC2H 7HA Artist Talks in conversation with Jenny Blyth, Will Eaves and Harriet Walter : Saturdays 5 & 12 November
October 2022 : Netta Carey : 'Mirror, Mirror' : Colour field paintings showing with 30 paintings & sculptures by gallery artists : Florence Amey, Alison Berrett, Day Bowman, Antonia Bruce, Michael Buck, Addy Gardner, Gerry Judah, Michael Sofroniou, Martin Smith
April 2022 : Alison Berrett : 'My Bathybic Heart' : Abstract Expressionist paintings - land and seascapes.
March 2022 : Michael BUCK : A Life In The Landscape
Michael Buck, artist and ecologist, makes a stand for a return to synchronicity - a life truly lived in the landscape, at one with the natural world.
February 2022 : Paul Amey, Florence Amey, Jeff Clarke Chloe Fremantle, Carolyn Horton, Addy Gardner, Martin Smith, Andrew Walton ... and more. A mixed exhibition of Paintings, Prints, Photographs and Sculpture by Gallery Artists.
October 2021 : Gerry JUDAH : Ark Angels : Drawings & Sculpture
September 2021 : Florence AMEY : Gems from Andalucia
Amey captures the magic and the wild heart of Southern Spain in abstract expressionist paintings in acrylic on board.
July/August 2021 : PAUL AMEY : Chilling at the Ocean Bar
Beautifully coloured seascapes transport you to the Mediterranean, chilling at the ocean bar as you gaze across azure seas. Seascapes and interiors.
December 2020 : CLAIRE CHRISTIE SADLER : CALL OF THE WILD
Charcoal drawings of The Western Highlands and Isles - feathers, lochs and shape-shifting mountains by CCS.
September 2020 : JEFF CLARKE : CHIAROSCURO
Jeff Clarke, Master Printmaker, showing drawings, etchings and prints of Greece, Crete, Italy and France to include still life and landscape.
March 2020 : PLASHY PLACES
Day Bowman explores the littoral shoreline. Abstract paintings.
February 2020 : LOVE & KISSES
Antonia Bruce Milogritos Hearts, Rose Arbuthnott Portraits, Nicholas Arbuthnott Sculpture, Carolyn Horton Chine Colle Collage
January 2020 : ADDY GARDNER : A World of Our Own Paintings of Welsh Mountains, Snowdonia & Oxfordshire.
December 2019 : ANDREW WALTON : OTMOOR : A Place Apart : Paintings & Drawings
October 2019 : ROSE-MARIE CALDECOTT : The Quiet Season Fractal Landscape Paintings.
August/September 2019 : Paul AMEY & Florence AMEY : Summer Nights
Night Swimming, and abstractions. Paintings.
EXHIBITIONS & PROJECTS curated/exhibited by Jenny Blyth Fine Art outside of CBG.
September 2020 : 'Contemplation: Snow Into Water' paintings by Chloe FREMANTLE & textile 'paintings' by Cassandra WALL curated by Jenny Blyth at The North Wall Arts Centre, Oxford.
May/June 2019 : 'Touching the Earth' paintings by ADDY GARDNER & sculpture by MARTIN SMITH curated by Jenny Blyth at The North Wall Arts Centre, Oxford.
February/March 2019 : 'Reflecting the Landscape' Photography by Jenny Blyth at Wolfson College, Oxford.
GERRY JUDAH : THE CRUSADER at The Imperial War Museum of Manchester
On permanent display since November 2010. Commission secured by Jenny Blyth. Gerry Judah is also showing Crusader II at St Paul's Cathedral.
THE ALCHEMY OF LINE & COLOUR : Art Portfolio for Habitat, London curated by Jenny Blyth.
16 prints by Contemporary British Artists: WILLIAM SCOTT, PATRICK HERON, PATRICK CAULFIELD, BRUCE MCLEAN, STEPHEN CHAMBERS, DAVID AUSTEN & CLARE WOODS
2006 - 2018 : JOSEPHINE TROTTER Solo exhibitions biannually shown by Jenny Blyth Fine Art. Publications : Josephine Trotter : A lifetime of painting published by Jenny Blyth Fine Art. ISBN 978-1-5262-0158-4 . Orders from<EMAIL_ADDRESS>Price £35 plus postage.
Jenny Blyth Fine Art curated and exhibited 40 exhibitions at ART JERICHO, Oxford between 2010 and 2016. Art Jericho closed December 31 2016.
CAROLYN HORTON : Gifford Circus
ART JERICHO, Oxford
November/December 2016
JOHN TRIGG : The Theatre of Longing
ART JERICHO, Oxford
October/November 2016
JEFF CLARKE : Still Light
ART JERICHO
July/August 2016
ANDREW WALTON : Otmoor Revisited
ART JERICHO
21 April - 29 May 2016
JAMES ALLAN : Space Speaks
ART JERICHO
17 March - 17 April 2016
HELEN SLATER, ROSE-MARIE CALDECOTT, BEN RAMOS, JENNY BLYTH
The Magic of the Trees
ART JERICHO
4 January - 7 February 2016
STUART ROPER : Oxford Abstracted
ART JERICHO
4 January - 7 February 2016
ADDY GARDNER : Sky Fall
ART JERICHO
December 2015
ROSIE FAIRFAX CHOLMELEY & ROBIN WILSON
Wytham Woods & Scilly Isles
ART JERICHO
AUGUST/SEPTEMBER 2015
MARTIN GROVER : Stand By Me
ART JERICHO
AUGUST/SEPTEMBER 2015
FLORENCE AMEY : Alegria
ART JERICHO
AUGUST/SEPTEMBER 2015
CHLOE FREMANTLE : Reflections
ART JERICHO
JUNE/JULY 2015
ANTONIA BRUCE : Blue Moon
ART JERICHO
APRIL/MAY 2015
AMELIA PHILLIPS
ART JERICHO
March 2015
BEN RAMOS
ART JERICHO
February 2015
DAY BOWMAN : Alchemy
ART JERICHO
November/December 2014
SOCIETY OF WOODENGRAVERS
ART JERICHO
November/December 2014
EMILY AULT : Shotover Edge
ART JERICHO
October/November 2014
MAISIE MAUD BROADHEAD : Photography Oxford Festival
ART JERICHO
September/October 2014
ROSE-MARIE CALDECOTT : The Radiance of Being
ART JERICHO
August 2014
JOHN TRIGG : The Tombstone Boys
ART JERICHO
June/2014
ADDY GARDNER : Light in the Landscape
ART JERICHO
May/June 2014
ANTONIA BRUCE : Blue Moon
ART JERICHO
April/May 2014
JOSEPHINE TROTTER : British Landscape
Gallery 8
8 Duke Street, St. James’s,
London SW1Y 6BN
March/April 2014
KIM SHAW
Paper Ghosts
Jenny Blyth Fine Art
ART JERICHO
February/March 2014
ANDREW WALTON & DAVID ATTWOOLL : Groundwork
Paintings by ANDREW WALTON, Poems by DAVID ATTWOOLL
Art Jericho
January/February 2014
LONDON ART FAIR 2013
Islington Design Centre, London N1
Jenny Blyth Fine Art exhibiting SOPHIE BAKER, DAY BOWMAN, ANTONIA BRUCE, WILLIAM COTTERILL, ADDY GARDNER, GERRYJUDAH
CHLOE FREMANTLE 'Muse in the Garden' Oxford Botanic Garden through four seasons
The Gallery at Oxford Botanic Garden, Rose Lane Oxford OX1 4AZ
March/May 2013
JETHRO BUCK : Falling
Contemporary paintings by Jethro Buck inspired by Fine Art of Indian Classical Miniature Painting
ART JERICHO
March/April 2013
PATRICIA O’BRIEN : Chasing Beauty
February/March 2013
ART JERICHO
DAY BOWMAN : Belief and Beyond
March/ May 2012
Barclays Bank
Piccadilly Branch
London W1
WILL COTTERILL : Times Remembered
February 2012
ART JERICHO
CAMILLA JACKSON : Untethered
October 2011
The Gallery in Cork Street
London W1S 3NG
ADDY GARDNER : Earth & Sky
September 2011
GALLERY 27
27 Cork Street London W1S 3NG
CHLOE FREMANTLE & TAEKO MAKINO : Summer Haiku
July/August 2011
ART JERICHO
SOPHIE BAKER
PAINTINGS FROM THE NEW WORLD
/February/March 2011
ART JERICHO
NICK WHITE : Asperatus
January/February 2011
ART JERICHO


Lagrange is a minimalist Jekyll theme. The purpose of this theme is to provide a simple, clean, content-focused blogging platform for your personal site or blog. Below you can find everything you need to get started. Getting Started Getting Started: getting started with installing Lagrange, whether you are completely new to using Jekyll, or si... Read more 01 Jan 2016 - 1 minute read
Lagrange is a minimalist Jekyll theme. The purpose of this theme is to provide a simple, clean, content-focused blogging platform for your personal site or blog. Below you can find everything you need to get started. Getting Started Getting Started: getting started with installing Lagrange, whether you are completely new to using Jekyll, or si... Read more 01 Jan 2016 - 1 minute read
Lagrange Lagrange is a minimalist Jekyll theme for running a personal blog or site for free through Github Pages, or on your own server. Everything that you will ever need to know about this Jekyll theme is included in the README below, which you can also find in the demo site. Notable features Compatible with GitHub Pages. ... Read more 10 Oct 2015 - 11 minute read
Lagrange Lagrange is a minimalist Jekyll theme for running a personal blog or site for free through Github Pages, or on your own server. Everything that you will ever need to know about this Jekyll theme is included in the README below, which you can also find in the demo site. Notable features Compatible with GitHub Pages. ... Read more 10 Oct 2015 - 11 minute read
Markdown Support As always, Jekyll offers support for GitHub Flavored Markdown, which allows you to format your posts using the Markdown syntax. Examples of these text formatting features can be seen below. You can find this post in the _posts directory. Basic Formatting With Markdown, it is possible to emphasize words by making them italiciz... Read more 01 Jan 2014 - 5 minute read


Logo
Co-Work
Contact
Bookings
Membership
Contact
Reserve a Room
Events
Membership
Book a Tour
Contact Us
Please provide your name
and your email
and your message
We'll get back to you soon!


--- layout: page title: About header-img: "img/about-bg.png" ---
I am a 39 year old single father of 3.


If person( 1 ) can type RATE words per minute, how many minutes will it take him( 1 ) to type a AMOUNT word document?
\text{amount} = \text{rate} \times \text{time}
AMOUNT\text{ words} = RATE\dfrac{\text{words}}{\text{minute}} \times \text{ time in minutes}
\text{time in minutes} = \dfrac{AMOUNT\text{ words}}{RATE\dfrac{\text{words}}{\text{minute}}}
\hphantom{\text{time in minutes}} = \dfrac{AMOUNT}{RATE}\text{ minutes}
\hphantom{\text{time in minutes}} = TIME\text{ minutes}
If person( 1 ) can type RATE words per minute and it took him( 1 ) TIME minutes to type his( 1 ) latest essay, how many words does the essay have?
\text{amount} = \text{rate} \times \text{time}
\text{number of words} = RATE\dfrac{\text{words}}{\text{minute}} \times TIME\text{ minutes}
\hphantom{\text{number of words}} = RATE \times TIME\text{ words}
\hphantom{\text{number of words}} = AMOUNT\text{ words}
If person( 1 ) can type a AMOUNT word document in TIME minutes, how many words per minute can he( 1 ) type?
\text{amount} = \text{rate} \times \text{time}
AMOUNT\text{ words} = \text{rate in words per minute} \times TIME\text{ minutes}
\text{rate in words per minute} = \dfrac{AMOUNT\text{ words}}{TIME\text{ minutes}}
\hphantom{\text{rate in words per minute}} = \dfrac{AMOUNT}{TIME}\text{words per minute}
\hphantom{\text{rate in words per minute}} = RATE\text{ words per minute}


miRNAFinder
miRNAFinder is a tool to identify potential pre-miRNAs for given sequences. This utilizes a machine learning model trained on a preprocessed dataset of miRBase v22.1. More resources can be found on the Resources page.
miRNAFinder is a tool to identify potential pre-miRNAs for given sequences. This utilizes a machine learning model trained on a preprocessed dataset of miRBase v22.1. More resources can be found on the Resources page.


Output Generated¶
This summarizes the expected output depending on how the pipeline logic boolean values are set in the config file.
Full Pipeline with Chunking¶
Setting this logic:
GenerateGRM:true
GenerateNull:true
GenerateAssociations:true
GenerateResults:true
SkipChunking:false
SaveChunks:true
Returns this output:
What can be reused?
Null Model only¶
Setting this logic:
GenerateGRM:false
GenerateNull:true
GenerateAssociations:false
GenerateResults:false
SkipChunking:false
Returns this output:
What can be reused?
Association Analysis only¶
Setting this logic (see OPTION A: Imputation files need window chunking):
GenerateGRM:false
GenerateNull:false
GenerateAssociations:true
GenerateResults:false
SkipChunking:false
SaveChunks:true
Returns this output:
What can be reused?
Setting this logic (see OPTION B: Imputation files do not need window chunking and will be reused):
GenerateGRM:false GenerateNull:false GenerateAssociations:true GenerateResults:false SkipChunking:true
Returns this output:
What can be reused?
Output Files Generated¶
This section describes the file format output and what is located in each result file.
For association analysis results file per snp. This is for text files generated with the suffix: * *_allSNPs_noFiltering.txt.gz * *_commonSNPs_cleaned.txt.gz * *_rareSNPs_cleaned.txt.gz
Column |
Interpretation |
|---|---|
CHR |
chromosome the variant is located |
POS |
base position of the variant (hg19 vs hg38 is based upon what was specified at runtime) |
majorAllele |
major allele (most common frequency in the input population) |
minorAllele |
minor allele (lesser common frequency in the input population) |
SNPID |
variant name |
BETA |
effect size based on the minor allele |
SE |
standard error of beta |
OR |
odds Ratio |
LogOR |
log(odds ratio) |
Lower95OR |
lower 95% confidence interval of the odds ratio |
Upper95OR |
upper 95% confidence interval of the odds ratio |
MAF |
minor allele frequency |
MAC |
minor allele count |
p.value |
p-value of the variant |
N.Cases |
number of cases evaluated for this variant (binary traits only) |
N.Controls |
number of controls evaluated for this variant (binary traits only) |
casesHomMinor |
number of cases evaluated for this variant that are homozygous for the minor allele (binary traits only) |
casesHet |
number of cases evaluated for this variant that are heterozygous (binary traits only) |
controlHomMinor |
number of control evaluated for this variant that are homozygous for the minor allele (binary traits only) |
controlHet |
number of controls evaluated for this variant that are heterozygous (binary traits only) |
negLog10pvalue |
negative log base 10 of the p-value |
R2 |
imputation quality for imputed variants |
ER2 |
empirical R2 quality extracted from info file from imputation -- for genoytyped variants only |
GENOTYPE_STATUS |
imputed, genotyped or genotyped and imputed status for the variant |
There is an intermediate file also output with the suffix allChromosomeResultsMerged.txt
. This is output directly from SAIGE,
however, it is not cleaned and alleles and betas have not been corrected for minor allele basis. All GWAS results, including the graphs
generated from the pipeline are based on the files above ending in _commonSNPs_cleaned.txt.gz
and _rareSNPs_cleaned.txt.gz
.
However, some T statistics and variance calculations are included in this file, along if the variant converged or not. Therefore, it is still saved in the output so it can easily be searched and referenced for particular variants, if needed.
Column |
Interpretation |
|---|---|
CHR |
chromosome the variant is located |
POS |
base position of the variant |
SNPID |
variant name |
Allele1 |
allele 1 (careful, not necessarily major allele) |
Allele2 |
allele 2 (careful, not necessarily minor allele) |
AC_Allele2 |
allele count of allele 2 |
AF_Allele2 |
allele frequency of allele 2 (not necessarily minor allele) |
imputationInfo |
imputation quality score |
N |
total samples considered in model for this variant |
BETA |
effect size of allele 2 (not necessarily minor allele) |
SE |
standard error of beta |
p.value |
p-value of the variant |
p.value.NA |
p-value of variant when SPA is not applied |
Is.SPA.converge |
whether saddle point approximation (SPA) converged for this variant |
Tstat |
estimated variance of score statistic with sample related incorporated |
varTstar |
variance of score statistic without sample related incorporated |
AF.Cases |
allele frequency of allele 2 in cases (only for binary trait) |
AF.Controls |
allele frequency of allele 2 in controls (only for binary traits) |
N.Cases |
total cases considered in model for this variant (only for binary traits) |
N.Controls |
total controls considered in model for this variant (only for binary traits) |
homN_Allele2_cases |
homozygote counts in cases |
hetN_Allele2_cases |
heterozygote counts in cases |
homN_Allele2_ctrls |
homozygote counts in controls |
hetN_Allele2_ctrls |
heterozygote counts in controls |