The PWG held its May 2021 Virtual Face-to-Face Meeting on May 4-7, 2021 via Webex teleconferences. This event was held in collaboration with Linux Foundation OpenPrinting Workgroup. Sessions were presented by both organizations over the event's 4 days. Representatives from Artifex, Canon, Canonical, Google, High North, HP Inc., Konica Minolta, Kyocera Document Solutions, Lakeside Robotics, Lexmark, Microsoft, Qualcomm, Pharos, Red Hat, Ricoh, TIC, and TCS attended the meetings, among others. Attendees reviewed work in progress, including drafts of a number of in-progress specifications, and discussed liaisons with partner groups. Here is a summary of the proceedings.
The F2F event began with the PWG Plenary session, which had a reduced
scope to limit the presentation time. The PWG Chair began with the new
PWG Antitrust Policy, which was presented at the start of each session
at this F2F, and will be presented at the start of all PWG
teleconferences and F2F sessions going forward. The PWG Chair then reviewed the
overall state of the PWG, its programs and initiatives, and briefly
discussed upcoming face-to-face meeting scheduling. We noted that
there are currently 692 printers certified
under the PWG's IPP Everywhere™ Self Certification program. We
discussed the PWG Steering Committee's activities and initiatives,
including progress on Process 4.0, new policies, and recently approved
documents. Officers from the IDS Workgroup and IPP Workgroup
briefly summarized their Workgroup's status, and PWG Liaison Officers
also briefly reported on the status of our partners' work in Mopria Alliance,
ISO JTC1 WG12, and INCITS.
The Linux Foundation OpenPrinting Workgroup held seven sessions on the first and second days, covering a variety of topics. On the first day in the OpenPrinting Plenary, Ira McDonald reviewed the Linux OpenPrinting project's accomplishments from 2020 and surveyed the efforts under way for 2021.
Following lunch, Aveek Basu (Lexmark / Linux Foundation OpenPrinting) presented
a summary of the OpenPrinting Workgroup's activities during Google
Summer of Code (GSoC) and Google Season of Docs (GSoD) events in 2020,
and also the work being done as part of the Linux Foundation Mentorship
Program (LFMP). Piyush Goyal presented a summary of his GSoD 2021 work on
documentation for PAPPL Applications developers [link] to the group. Aveek
concluded with a preview of the work planned for 2021
including attending Plumber's 2021 and engagement in the LFMP. Next,
Michael Vrhel (Artifex) presented on the state of Ghostscript and MuPDF,
covering two releases to Ghostscript and three releases of MuPDF. Other
changes, security testing methodologies, and the status of a few other
minor projects such as MuJS were also covered. Work planned for 2021
includes a new PDF interpreter in Ghostscript, Ghostscript device
interface cleanup, resolution independent display list for Ghostscript,
digital signatures, and ".docx" file format output for Ghostscript.
After a break, Sean
Kau (Google) presented on the state of Chrome OS printing, reviewing
the open source components used in the Chromium OS / Chrome OS printing
system, including CUPS, cups-filters, Avahi, Ghostscript, and
sane-airscan. Recent additions include expanded lpadmin errors and
greater use of automated testing. New projects originated by the Google
Chromium printing team include foomatic_shell, virtual-usb-printer, and
ippusb_bridge, which is implemented in Rust. The presentation concluded
with some discussion about scanning and the standards available today
(eSCL and IPP Scan) and the desire for some additional features
including "push scan".
On the second day, Mike Sweet (Lakeside Robotics) presented the CUPS Plenary, covering the changes that have occurred between Apple's "main" CUPS distribution and the OpenPrinting CUPS fork, which is seeing more active development. Mike is now coordinating code changes across the two distributions, with OpenPrinting CUPS pushing toward a 2.4.0 release. Apple will likely release a 2.3.5 release sometime in June 2021. CUPS 2.4 is expected to include many changes including shared printers reporting all required attributes/keys/values, OAuth 2.0/OpenID authentication, pkg-config support, snapcraft support, "job-sheets-col" and better "media-col" attribute support, TLS and X.509 improvements, and some new deprecations (cups-config and Kerberos authentication). Mike then reviewed the current plans for CUPS 3.0, which will be a profound change in architecture to previous CUPS releases. Much work is needed for this transformation to occur. Mike then presented on the state of CUPS Printer Applications, which are the successor to the legacy CUPS PPD / driver architecture. Mike has been working on the PAPPL framework for creating Printer Applications, and Till Kamppeter has been using this to create the new PostScript Printer Application. Till then presented a discussion of the details of the PostScript Printer Application, noting that it supports 4000 models based on PPDs from Foomatic and HPLIP. The project is nearly feature complete.
After lunch, Till presented an overview of the status of cups-filters,
CUPS SNAP, IPP USB, and other projects. The cups-filters project is
evolving with CUPS in many ways, including encapsulating filter binary
functions within discrete library functions, reducing the overhead of
spawning independent processes. The libppd and driverless utility
projects were discussed. A major effort is underway to release CUPS as a
Snap. Driverless scanning is also a major area of engagement by the
OpenPrinting Workgroup currently, and the complexities of that effort
were covered in detail. Implementation issues with IPP USB were also
discussed. Till concluded with a discussion about GUI requirements.
Complete minutes are available here: https://ftp.pwg.org/pub/pwg/liaison/openprinting/minutes/OP-Summit-Minutes-20210504.htm
IPP Workgroup sessions started on the second day of the F2F event with a
status summary of IPP Workgroup activities currently in progress. IPP
Everywhere v1.1 will become mandatory starting July 1, 2021. The IPP
Everywhere Self Certification tools currently available are v1.0 update 5
and v1.1 update 2, with v1.1 update 3 hopefully available the week
after the F2F event.
The IPP WG continued to discuss the evolution of IPP/2.0 and reviewed
the initial draft of Internet Printing Protocol/2.x Fourth Edition
(BASE). The discussion centered around the document's scope and how that
relates to versioning and existing standards such as 5100.12 and STD
92. We then shifted to discuss scoping IPP Everywhere v2.0. We agreed
"photo printing" is an important vertical solution that should be tested
as a defined feature. We also discussed whether System Service should
be included or not, and at what point we dedicate more energy to this,
noting that we should first conclude our work on NODRIVER, EPX, and PPX.
On the third day, following the IDS session, we reviewed the new draft of IPP Encrypted Jobs and Documents v1.0 (TRUSTNOONE), which has been updated to incorporate S/MIME 4.0 (RFC 8551) and make that the primary required technology. OpenPGP will be left in but its description will be moved to an informative annex, making it an unofficial optional technology for TRUSTNOONE. Mike will announce it for more broad review once the new draft has been created.
We then had a Cloud Printing and Scanning BoF to generally discuss open
next directions for INFRA and other PWG specifications to support these
use cases for both 2D and 3D printing. We agreed that we needed to more
clearly define the set of use cases for some of these general domains.
Smith pointed out the OAuth 2.0 Device Authorization Grant and we agreed
we should incorporate that into the range of options for registering a
new IPP Proxy with a Cloud Print solution. We discussed some of the
challenges with printing directly to a printer that is advertised via a
cloud, and deferred discussion of IPP Scan enhancements until there are
more examples of it being implemented in the field. We finished off the
day by starting a review of the latest IPP Enterprise Printing
Extensions v2.0. A number of changes were suggested.
On the last day, we began with a 3D Scanning and Production BoF, where
we discussed file formats and their applicability to different important
3D scanning use cases, including acquiring point cloud data about an
existing object and scanning a produced part for quality control. The
E57 format is common for laser / LIDAR scanners but not used much for
scanning smaller objects or for scanners that use cameras. The group
speculatively agreed 3MF would be a good file format for 3D scanning
that should satisfy both use cases.
After a break, we began a review of the latest draft of IPP Driverless
Printing Extensions v2.0 (NODRIVER), which contains a resolution for the
"print-quality" enhancements. Smith decided that Mike's proposal to
encode this as an extension to "job-presets-supported" had some
advantages over his own proposal. The group had a long discussion about
the "print-processing-attributes-supported" attribute, which was
basically the same as the earlier proposed
"print-quality-hints-supported" attribute with a simplified definition
and a new name. The discussion was productive and allowed the group to
realize the value of some of the content present in earlier drafts that
was removed. We then briefly reviewed the new draft of IPP Production
Printing Extensions (PPX) which added the "job- phone-number",
"job-phone-number-default", "job-phone-number-supported", "job-
recipient-name", "job-recipient-name-default", and
"job-recipient-name-supported" attributes that were removed from EPX. We
concluded with Next Steps.
The Imaging Device Security session was held at the start of the third day. Al started by presenting the current status of the HCD iTC and its efforts to develop HCD cPP v1.0 and HCD SD v1.0. Additional comments had been submitted against the 2nd internal drafts of the HCD cPP and HCD SD to implement the recommendations of the Network Subgroup. The HCD iTC has spent the past few weeks completing the Security Problem Definition (SPD) and gathering feedback. A new Essential Security Requirements (ESR) document requirement, “The HCD shall verify the hardware-anchored integrity of firmware/software, including initial boot, operating system, and applications”, was added at the request of the HCD iTC. The HCD iTC formed a Hardware-anchored Integrity Verification subgroup to address this requirement. That subgroup developed a Secure Boot SFR (FPT_SBT_EXT) that addresses this ESR requirement and the subgroup will recommend to the full HCD iTC that it be added to the HCD cPP. The HCD iTC is now evaluating several SFRs including the NTP SFR, updates to the FPT_KYP_EXT Protection of Key and Key Material SFR from JBMIA, and feedback from the ITSCC on the ESR requirement “The HCD shall generate audit data, and be capable of sending it to a trusted external IT entity and store it in the HCD”. Al also discussed the deferred areas that the HCD iTC needs to engage on, and presented a proposal for a revised schedule, which puts completion in March 2022. He concluded the discussion about the HCD iTC with some thoughts on lessons learned over the last 14 months.
Al then reviewed the results of a discussion in a previous IDS Workgroup meeting with two members of the Massachusetts Department of Transportation (MASS DOT). One highlight of the discussion was that the MASS DOT members noticed that even when public interfaces are specified and in place for a long time, even if they are not correctly specified, they are very difficult to get changed because printer owners are concerned about unknown consequences to customers if configurations are changed. This is something that was new to many of us at the IDS meeting but is pretty well known to the IPP Workgroup.
Ira then covered the latest HCD Security Guidelines status. An updated
draft was not published in time to be reviewed at this meeting, but
Smith provided updates to the Wi-Fi content in Section 4 and Ira changed
much of the guidance in Section 4 as a result. Ira plans to add some
material on IPP to Section 4 as well. Ira says he plans to have a
full-content update sometime in Q3 2021. The meeting concluded with Ira
summarizing current standards development efforts in the Trusted
Computing Group (TCG) and the Internet Engineering Task Force (IETF)
that pertain to the IDS domain.
Complete minutes are available here: https://ftp.pwg.org/pub/pwg/ids/minutes/ids-f2f-minutes-20210506.pdf
The next PWG Face-to-Face meeting will be held August 17-19, 2021 via Webex teleconference. Be sure to subscribe to the<EMAIL_ADDRESS>mailing list to receive announcements about upcoming events and event changes or check the PWG Meetings page for updates on plans for upcoming meetings.
summarizing current standards development efforts in the Trusted Computing Group (TCG) and the Internet Engineering Task Force (IETF) that pertain to the IDS domain.Complete minutes are available here: https://ftp.pwg.org/pub/pwg/ids/minutes/ids-f2f-minutes-20210506.pdf
The next PWG Face-to-Face meeting will be held August 17-19, 2021 via Webex teleconference. Be sure to subscribe to the<EMAIL_ADDRESS>mailing list to receive announcements about upcoming events and event changes or check the PWG Meetings page for updates on plans for upcoming meetings.


CARNET
SEAT Autonomous Driving Challenge
Barcelona. The city, the scenery, the inspiration
elarco collaborated with CARNET (Cooperative Automotive Research Network) to develop the scenario for the SEAT Autonomous Driving Challenge, which was held at the Smart City Expo 2017.
A distinctive element reinvented
The urban landscape design is rooted in the traditional element Trencadís. This model pays homage to the innovative spirit of Barcelona’s architecture and design history, by reinventing an already disruptive technique. A sharper and versatile version of Trencadís which draws an abstract skyline of the city.Translucent acrylic triangles, scattered on slender structures. The density of the buildings is strategically inverted, leaving the base empty thus facilitating the view of the race tracks.
Smart layout
The circuit layout is specifically designed to not interfere with the race tracks. All urban elements are placed within a security distance from the tracks, and they also leave enough room for the participants to pass through. Most of the iconic buildings and areas of Barcelona are represented and conceptualized in the scenery.
Adoptive Signs
Traffic signs are dynamic and customizable to the circuit’s needs. They can be switch on and off or between two different QR codes, and be visible by the participants and the public from any angle thanks to a 360º light on top of them.


The builtin type set.
Sets keep a flag for each item that is present. It's like a dict without
a value.
The item type can be int, string, bool, status and any class that has a
public ToString() method.
| NEW() @public |
Create a new empty set.
|
| NEW(keys) @public |
Create a new set from a list of items.
|
| $Size() int @public |
Return the number of items in the set.
|
| $copy() Set<Tkey> @public |
Return a shallow copy of the set.
|
| $ToString() string @public |
Return a string representation of the set.
|
| $Iterator() I.Iterator<Tkey> @file |
Return an iterator to iterate over all the keys.
|
| $has(key) bool @public |
Check if an item is present in the set.
|
| $keys() list<Tkey> @public |
Return a list with all the keys.
|
| $add(key) Set<Tkey> @public |
Add an item to the set.
|
| $addSet(other) Set<Tkey> @public |
Add all items in other to the set.
|
| $addList(keys) Set<Tkey> @public |
Add a list of items to the set.
|
| $set(key) Set<Tkey> @public |
Add an item to the set if not yet present.
|
| $setSet(other) Set<Tkey> @public |
Add all items in other to the set if not yet present.
|
| $setList(keys) Set<Tkey> @public |
Add all items in the list keys to the set if not yet present.
|
| $remove(key) Tkey @public |
Remove an item from the set.
|
| $removeSet(other) Set<Tkey> @public |
Remove all items from the set that are in other.
|
| $removeNotInSet(other) Set<Tkey> @public |
Remove all items from the set that are not in other.
|
| $clear() Set<Tkey> @public |
Make the set empty.
|
| $clear(key) Set<Tkey> @public |
Remove an item from the set if present.
|
| $union(set) Set<Tkey> @public |
Make a copy of the set and all items in set if not yet present.
|
| $intersection(other) Set<Tkey> @public |
Find all items present both in this set and other.
|
| $difference(other) Set<Tkey> @public |
Find items that are not present in other.
|
| |


Checks if there is a captcha handler
Checks if there is a two-factor handler
Sets a handler for captcha processing
Sets a handler for two factor processing
Processing captcha
Processing two-factor
Generated using TypeDoc
Checks if there is a captcha handler


This guide will help you understand how to transition from an existing Gatsby project to Next.js. Migrating to Next.js will allow you to:
And more! Let’s walk through a series of steps to complete the migration.
package.json
and dependencies
The first step towards migrating to Next.js is to update
package.json
and dependencies. You should:
react
and
react-dom
).
next
.scripts
. One is
next dev
, which runs a development server at
localhost:3000
. You should also add
next build
and next start
for creating and
starting a production build.
Here’s an example package.json
(view diff):
{
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start"
},
"dependencies": {
"next": "latest",
"react": "latest",
"react-dom": "latest"
}
}
Gatsby uses the public
directory for the compiled output,
whereas Next.js uses it for static assets. Here are the steps for
migration (view diff):
.cache/
and public
from
.gitignore
and delete both directories.
static
directory as public
.
.next
to .gitignore
.
Both Gatsby and Next support a pages
directory, which uses
file-system based routing.
Gatsby’s directory is src/pages
, which is also
supported by Next.js.
Gatsby creates dynamic routes using the createPages
API
inside of gatsby-node.js
. With Next, we can use
Dynamic Routes inside of
pages
to achieve the same effect. Rather than having a
template
directory, you can use the React component inside
your dynamic route file. For example:
createPages
API inside
gatsby-node.js
for each blog post, then have a template
file at src/templates/blog-post.js
.
pages/blog/[slug].js
which
contains the blog post template. The value of slug
is
accessible through a
query parameter. For
example, the route /blog/first-post
would forward the query
object { 'slug': 'first-post' }
to
pages/blog/[slug].js
(learn more here).
With Gatsby, global CSS imports are included in
gatsby-browser.js
. With Next, you should create a
custom _app.js
for global CSS. When migrating, you can copy over your CSS imports
directly and update the relative file path, if necessary. Next.js has
built-in CSS support.
The Gatsby Link
and Next.js
Link
component
have a slightly different API.
// Gatsby
import { Link } from 'gatsby'
export default function Home() {
return <Link to="/blog">blog</Link>
}
// Next.js
import Link from 'next/link'
export default function Home() {
return (
<Link href="/blog">
blog
</Link>
)
}
Update any import statements, switch to
to href
,
and add an
tag as a child of the element.
The largest difference between Gatsby and Next.js is how data fetching is implemented. Gatsby is opinionated with GraphQL being the default strategy for retrieving data across your application. With Next.js, you get to choose which strategy you want (GraphQL is one supported option).
Gatsby uses the graphql
tag to query data in the pages of
your site. This may include local data, remote data, or information about
your site configuration. Gatsby only allows the creation of static pages.
With Next.js, you can choose on a
per-page basis which
data fetching strategy
you want. For example, getServerSideProps
allows you to do
server-side rendering. If you wanted to generate a static page, you’d
export getStaticProps
/ getStaticPaths
inside
the page, rather than using pageQuery
. For example:
// src/pages/[slug].js
// Install remark and remark-html
import remark from 'remark'
import html from 'remark-html'
import { getPostBySlug, getAllPosts } from '../lib/blog'
export async function getStaticProps({ params }) {
const post = getPostBySlug(params.slug)
const markdown = await remark()
.use(html)
.process(post.content || '')
const content = markdown.toString()
return {
props: {
...post,
content,
},
}
}
export async function getStaticPaths() {
const posts = getAllPosts()
return {
paths: posts.map((post) => {
return {
params: {
slug: post.slug,
},
}
}),
fallback: false,
}
}
You’ll commonly see Gatsby plugins used for reading the file system
(gatsby-source-filesystem
), handling markdown files
(gatsby-transformer-remark
), and so on. For example, the
popular starter blog example has
15 Gatsby specific packages. Next takes a different approach. It includes common features directly
inside the framework, and gives the user full control over integrations
with external packages. For example, rather than abstracting reading from
the file system to a plugin, you can use the native Node.js
fs
package inside getStaticProps
/
getStaticPaths
to read from the file system.
// src/lib/blog.js
// Install gray-matter and date-fns
import matter from 'gray-matter'
import { parseISO, format } from 'date-fns'
import fs from 'fs'
import { join } from 'path'
// Add markdown files in `src/content/blog`
const postsDirectory = join(process.cwd(), 'src', 'content', 'blog')
export function getPostBySlug(slug) {
const realSlug = slug.replace(/\.md$/, '')
const fullPath = join(postsDirectory, `${realSlug}.md`)
const fileContents = fs.readFileSync(fullPath, 'utf8')
const { data, content } = matter(fileContents)
const date = format(parseISO(data.date), 'MMMM dd, yyyy')
return { slug: realSlug, frontmatter: { ...data, date }, content }
}
export function getAllPosts() {
const slugs = fs.readdirSync(postsDirectory)
const posts = slugs.map((slug) => getPostBySlug(slug))
return posts
}
Since version 10.0.0, Next.js has a built-in Image Component and Automatic Image Optimization.
The Next.js Image Component,
next/image
, is an extension of the HTML
element, evolved
for the modern web.
The Automatic Image Optimization allows for resizing, optimizing, and serving images in modern formats like WebP when the browser supports it. This avoids shipping large images to devices with a smaller viewport. It also allows Next.js to automatically adopt future image formats and serve them to browsers that support those formats.
Instead of optimizing images at build time, Next.js optimizes images on-demand, as users request them. Unlike static site generators and static-only solutions, your build times aren’t increased, whether shipping 10 images or 10 million images.
This means you can remove common Gatsby plugins like:
gatsby-image
gatsby-transformer-sharp
gatsby-plugin-sharp
Instead, use the built-in
next/image
component and
Automatic Image Optimization.
import Image from 'next/image'
export default function Home() {
return (
<>

My Homepage

<Image
src="/me.png"
alt="Picture of the author"
width={500}
height={500}
/>

Welcome to my homepage!

</>
)
}
With Gatsby, your site’s metadata (name, description, etc) is located
inside gatsby-config.js
. This is then exposed through the
GraphQL API and consumed through a pageQuery
or a static
query inside a component.
With Next.js, we recommend creating a config file similar to below. You can then import this file anywhere without having to use GraphQL to access your site’s metadata.
// src/config.js
export default {
title: 'Starter Blog',
author: {
name: 'Lee Robinson',
summary: 'who loves Next.js.',
},
description: 'A starter blog converting Gatsby -> Next.',
social: {
twitter: 'leeerob',
},
}
Most Gatsby examples use react-helmet
to assist with adding
meta
tags for proper SEO. With Next.js, we use
next/head
to
add meta
tags to your
element.
For example, here’s an SEO component with Gatsby:
// src/components/seo.js
import { Helmet } from 'react-helmet'
export default function SEO({ description, title, siteTitle }) {
return (
<Helmet
title={title}
titleTemplate={siteTitle ? `%s | ${siteTitle}` : null}
meta={[
{
name: `description`,
content: description,
},
{
property: `og:title`,
content: title,
},
{
property: `og:description`,
content: description,
},
{
property: `og:type`,
content: `website`,
},
{
name: `twitter:card`,
content: `summary`,
},
{
name: `twitter:creator`,
content: twitter,
},
{
name: `twitter:title`,
content: title,
},
{
name: `twitter:description`,
content: description,
},
]}
/>
)
}
And here’s the same example using Next.js, including reading from a site config file.
// src/components/seo.js
import Head from 'next/head'
import config from '../config'
export default function SEO({ description, title }) {
const siteTitle = config.title
return (

<title>{`${title} | ${siteTitle}`}</title>
<meta name="description" content={description} />
<meta property="og:type" content="website" />
<meta property="og:title" content={title} />
<meta property="og:description" content={description} />
<meta property="og:site_name" content={siteTitle} />
<meta property="twitter:card" content="summary" />
<meta property="twitter:creator" content={config.social.twitter} />
<meta property="twitter:title" content={title} />
<meta property="twitter:description" content={description} />

)
}
Take a look at this pull request for more details on how an app can be migrated from Gatsby to Next.js. If you have questions or if this guide didn’t work for you, feel free to reach out to our community on GitHub Discussions.


{% extends "bcs/base.html" %} {% block title %}ID Docs: Birth Certificates by State{% endblock %}
No articles are available.


Sorry, but the page you are looking for has not been found. Try checking the URL for errors, then hit the refresh button on your browser or try something else.


PyAutoLens¶
When two or more galaxies are aligned perfectly down our line-of-sight, the background galaxy appears multiple times. This is called strong gravitational lensing, & PyAutoLens makes it simple to model strong gravitational lenses, like this one:
PyAutoLens is based on the following papers:
Adaptive Semi-linear Inversion of Strong Gravitational Lens Imaging
AutoLens: Automated Modeling of a Strong Lens’s Light, Mass & Source
Example¶
With PyAutoLens, you can begin modeling a lens in just a couple of minutes. The example below demonstrates a simple analysis which fits the foreground lens galaxy’s mass & the background source galaxy’s light.
import autofit as af
import autolens as al
import os
# In this example, we'll fit a simple lens galaxy + source galaxy system.
dataset_path = '{}/../data/'.format(os.path.dirname(os.path.realpath(__file__)))
lens_name = 'example_lens'
# Get the relative path to the data in our workspace & load the imaging data.
imaging = al.imaging.from_fits(
image_path=dataset_path + lens_name + '/image.fits',
psf_path=dataset_path+lens_name+'/psf.fits',
noise_map_path=dataset_path+lens_name+'/noise_map.fits',
pixel_scales=0.1)
# Create a mask for the data, which we setup as a 3.0" circle.
mask = al.mask.circular(shape_2d=imaging.shape, pixel_scales=imaging.pixel_scales, radius=3.0)
# We model our lens galaxy using a mass profile (a singular isothermal ellipsoid) & our source galaxy
# a light profile (an elliptical Sersic).
lens_mass_profile = al.mp.EllipticalIsothermal
source_light_profile = al.lp.EllipticalSersic
# To setup our model galaxies, we use the GalaxyModel class, which represents a galaxy whose parameters
# are model & fitted for by PyAutoLens. The galaxies are also assigned redshifts.
lens_galaxy_model = al.GalaxyModel(redshift=0.5, mass=lens_mass_profile)
source_galaxy_model = al.GalaxyModel(redshift=1.0, light=source_light_profile)
# To perform the analysis we set up a phase, which takes our galaxy models & fits their parameters using a non-linear
# search (in this case, MultiNest).
phase = al.PhaseImaging(
galaxies=dict(lens=lens_galaxy_model, source=source_galaxy_model),
phase_name='example/phase_example', non_linear_class=af.MultiNest)
# We pass the imaging data and mask to the phase, thereby fitting it with the lens model above & plot the resulting fit.
result = phase.run(data=imaging, mask=mask)
al.plot.fit_imaging.subplot_fit_imaging(fit=result.most_likely_fit)
Features¶
PyAutoLens’s advanced modeling features include:
Galaxies - Use light & mass profiles to make galaxies & perform lensing calculations.
Pipelines - Write automated analysis pipelines to fit complex lens models to large samples of strong lenses.
Extended Sources - Reconstruct complex source galaxy morphologies on a variety of pixel-grids.
Adaption - Adapt the lensing analysis to the features of the observed strong lens imaging.
Multi-Plane - Perform multi-plane ray-tracing & model multi-plane lens systems.
Visualization - Custom visualization libraries for plotting physical lensing quantities & modeling results.
HowToLens¶
Included with PyAutoLens is the HowToLens lecture series, which provides an introduction to strong gravitational lens modeling with PyAutoLens. It can be found in the workspace & consists of 5 chapters:
Introduction - An introduction to strong gravitational lensing & PyAutolens.
Lens Modeling - How to model strong lenses, including a primer on Bayesian non-linear analysis.
Pipelines - How to build pipelines & tailor them to your own science case.
Inversions - How to perform pixelized reconstructions of the source-galaxy.
Hyper-Mode - How to use PyAutoLens advanced modeling features that adapt the model to the strong lens being analysed.
Workspace¶
PyAutoLens comes with a workspace, which can be found here & which includes:
Aggregator - Manipulate large suites of modeling results via Jupyter notebooks, using PyAutoFit’s in-built results database.
Config - Configuration files which customize PyAutoLens’s behaviour.
Dataset - Where data is stored, including example datasets distributed with PyAutoLens.
HowToLens - The HowToLens lecture series.
Output - Where the PyAutoLens analysis and visualization are output.
Pipelines - Example pipelines for modeling strong lenses.
Plot - Example scripts for customizing figures and images.
Preprocessing - Tools for preprocessing data before an analysis (e.g. creating a mask).
Quick Start - A quick start guide, so you can begin modeling your lenses within hours.
Runners - Scripts for running a PyAutoLens pipeline.
Simulators - Scripts for simulating strong lens datasets with PyAutoLens.
Tools - Extra tools for using many other PyAutoLens features.
Slack¶
We’re building a PyAutoLens community on Slack, so you should contact us on our Slack channel before getting started. Here, I will give you the latest updates on the software & discuss how best to use PyAutoLens for your science case.
Unfortunately, Slack is invitation-only, so first send me an email requesting an invite.
Documentation & Installation¶
The PyAutoLens documentation can be found at our readthedocs, including instructions on installation.
Contributing¶
If you have any suggestions or would like to contribute please get in touch.
Credits¶
Developers:
James Nightingale - Lead developer & PyAutoLens guru.
Richard Hayes - Lead developer & PyAutoFit guru.
Ashley Kelly - Developer of pyquad for fast deflections computations.
Amy Etherington - Magnification, Critical Curves and Caustic Calculations.
Xiaoyue Cao - Analytic Ellipitcal Power-Law Deflection Angle Calculations.
Qiuhan He - NFW Profile Lensing Calculations.
Nan Li - Docker integration & support.
Code Donors:
Andrew Robertson - Critical curve & caustic calculations.
Mattia Negrello - Visibility models in the uv-plane via direct Fourier transforms.
Andrea Enia - Voronoi source-plane plotting tools.
Aristeidis Amvrosiadis - ALMA imaging data loading.
Conor O’Riordan - Broken Power-Law mass profile.


2.0.3 (2015-05-18)
Features
- Add Arabic - Jordan (ar-JO) localization #546
Bug Fixes
- formatMessage fails when params is falsy #547
- async rules cannot return immediately #341
2.0.2 (2015-02-02)
Bug Fixes
- use
peerDependencies
for npm package dependencies #528
-
validationElement
and validationMessage
bindings throw if observable is not validatable #519
- validation cannot be removed from attached observable #526
- localization may not work in node.js; some files were still not working with RequireJS #509
- Nuget package will contain the same file names as for Bower or NPM
2.0.1 (2015-01-26)
This release enables cdnjs npm auto-update and fixes localization loading issue with RequireJS.
Bug Fixes
- Localization loading randomly breaks when using requirejs #509
Localization
- add localization file for Chinese - Taiwan (zh-TW) #513
2.0.0 (2015-01-20)
Features
- new localization files: Hebrew, Italian, Persian, Hungarian, Croatian, Brazilian, Japanese, Swedish, Norwegian, Chinese, German, Catalan, Danish, Korean, Latvian, Romanian, Bulgarian, Portuguese, Czech, Turkish #165, #177, #196, #201, #203, #204, #212, #221, #261, #270, #322, #327, #329, #340, #378, #411, #415, #416, #430, #467
- add config option
errorsAsTitle
to disable setting element 'title' with error description. Default is true
#168
- add config option
grouping.live
to react to changes to observableArrays #223
- add config option
decorateElementOnModified
#320
- add config option
allowHtmlMessages
for allowing HTML in validation messages #364
- add config option
validate.throttle
to implement throttling for validation #344
- add support for HTML5 date, email and number input types #130
- decorate radio buttons using checked binding #193
- Number validator - Allow numbers starting with point. #236
- step rule supports value
any
#271
- remove dependency on jQuery #318
- update knockout dependency to v3.0.0 #358
- add
setRules
method #337
- min and max validation use type attribute to determine behavior #355
- make library available through npm #357
- support observable params for validators #363
- min and max rules work with Date observables #459
- allow grouping options to be specified to
validatedObservable
#461
- add version in banner #428
- add support for
textInput
binding #451
- add support for
selectedOptions
binding #426
- add basic collection methods to errors, exposing raw validatables. #449
- ko.validation.group does not resolve deferred computed values unless they have rules defined on them. #163
- make localization files AMD and CommonJS/Node compatible #492
- enable loading of multiple locales and add possibility to switch between them #492
Bug Fixes
- unwrap parameters before using them in
formatMessage
#235
- make attached error property to be observable #247, #173
- grouping options does not overwrite global configuration options #248
- titles are not reset when data becomes valid #170
- reorder
phoneUS
validation checks to preserve optional properties if observable is not initialized or null. #234
- fix memory leaks in
addAnonymousRule
rules #346
- handle rule
params
which may be undefined #334
-
unique
rule can behave incorrectly for external values #365
- use update binding handler instead of utility method setTextContent #368
-
onlyIf
doesn’t affect anonymous validation rule #374
- fix group returns observables in errors array, not the value of each error #383
- fix initial value for isValid of
validatedObservable
#387
- fix check for knockout library #447
- make
formatMessage
aware if min and max rules were created from Javascript #385
-
writeInputAttributes
fails when anonymous rules are used #400
-
maxLength
rule fails if the value (of the observable) is a number #457
-
applyBindingsWithValidation
fails when called with viewModel and options #137
-
applyBindingsWithValidation
should extend provided config #472
-
dateISO
rule accepts months or days outside the valid range #265
-
writeInputValidationAttributes
does not support write HTML5 attributes correctly when params
is observable #481
- prevent
ko.validation.group
to notify with intermediary validation state #99
- grouping over validatedObservable objects is not possible #494
-
showAllMessages
throws when accessing isModified
when grouping over validatedObservable instances #269
-
validatedObservable
does not react when its value changes #442
- updating a validatedObservable will not reset initial validation result #209
-
parseInputAttributes
option may duplicate rules when enabled #277
Breaking Changes
- remove
ko.validation.configure
method, ko.validation.init
must be used instead #496
- rename
decorateElement
to decorateInputElement
#361
- do not change original data by
group
method #465, #225
- loading localization files using
script
tags or with and AMD loader
no longer changes the language automatically. A call to ko.validation.locale
is required #506
- rename some localization files due to invalid identifiers, no-NB.js ? nb-NO.js, ca-CA.js ? ca-ES.js c2d0ec19bc0abea073a4bbabc933e7299aa6af5b
- change project structure #511 - directories are now lowercase


# Context
* [The Cold, Hard Lessons of Mobile Home U. - NYTimes.com ](https://www.nytimes.com/2014/03/16/magazine/the-cold-hard-lessons-of-mobile-home-u.html?_r=0) "We're the Dollar General store of housing," Rolfe said, adding, with an amiable grin, "If you can’t afford anything else, then you'll live with us."" *Importing older US style mobile homes might make sense.*
* [Campgrounds Turn Residential in Germany - SPIEGEL ONLINE](https://www.spiegel.de/international/germany/campgrounds-turn-residential-in-germany-a-935811.html) An increasing number of people are moving to German campgrounds permanently to save money. The little communities of motorhomes and trailers offer a comfortable yet affordable lifestyle that residents say they couldn't find elsewhere.
* [Easy Living on the Spree: As Rents Rise, Some Berliners Find Refuge on the Water - SPIEGEL ONLINE](https://www.spiegel.de/international/germany/easy-living-on-the-spree-as-rents-rise-some-berliners-find-refuge-on-the-water-a-809327.html) As rents continue to rise in Berlin, many young people are finding it harder to afford apartments on land. Some have opted instead to build their own houseboats and moor them along the city's Spree River. One even plans to open his abode up to tourists seeking accommodation this summer.
# Mobile Homes
* [Mobil-Homes Kft.](http://www.ujmobilhazak.eu/#models) This a good Hungarian provider with prices.
* [Letniskowo.pl](https://www.letniskowo.pl/) But they actually resell these Polish models.
* [Open Building Institute](https://www.openbuildinginstitute.org/) workshops and ebook
* [Old silo now spaceship-esque tiny home in Berlin - YouTube](https://www.youtube.com/watch?v=1v5DbCbl08M)
* [Going to the woods to live deliberately (not leaving Berlin) - YouTube](https://www.youtube.com/watch?v=xNgFNU5hQcE)
# Campervan
* [PaulCamper - private Wohnmobil-Vermietung in Deutschland](https://paulcamper.de/) a not very well working marketplace, but I managed to rent someone's Bulli here
* [9 Things You'll HATE about Van Life - YouTube](https://www.youtube.com/watch?v=llaSTuA-MA4)
* [5 Reasons I Regret Purchasing Our Class A Motorhome - YouTube](https://www.youtube.com/watch?v=4DUz0OO1T2g)
* [Worst Parts Of Truck Living - YouTube](https://www.youtube.com/watch?v=JIQA-1QVuUc)
* [The Van Conversion Guide - Complete how-to for self-build vans](https://www.thevanconversionguide.com/) ebook
# Affordable Real Estate
* [Immobiliare Cilibrasi - Home](https://www.facebook.com/immobilarecilibrasi/) Cheap real estate near Gangi, Sicily.
# Houseboat
* [Modernes Hausboot in Berlin](https://www.airbnb.co.uk/rooms/24382581) winterized, heated, not moving
* [Exklusives Hausboot auf der Havel](https://www.airbnb.com/rooms/35218699)
* [Hausboot Wannsee 1](https://www.booking.com/hotel/de/wasserapartment-wannsee-1.en-gb.html)
* [House Boat Müritz](https://www.airbnb.com/rooms/21372139)
* [Lakehouse, private Dock, 30 min. to Downtown](https://www.airbnb.co.uk/rooms/12059821) simple living by the water
* [Theo's Flosmobil Fuhrerscheinfrei mieten - Konigs Wusterhausen](https://www.airbnb.co.uk/rooms/25157238) tiny, simple, driveable on a lake
* [Houseboat Porta Mare](https://www.houseboatportamare.com/) non-moving houseboat in Szczechin
* [BunBo, das Bungalow Boot | Das Hausboot zum Mieten](https://bunbo.de/)
* [Berlin Bootsverleih | Rent a houseboat Berlin](https://www.berlin-bootsverleih.com/en/houseboats)
* [Hausboot mieten Brandenburg - Bootsferien fuhrerscheinfrei - Hausbootvermietung Brandenburg Deutschland](https://www.hausboot-nicols.de/hausboot-mieten/deutschland/urlaub-brandenburg)
# Survivalism
* [Making a Camping Cabin for $ 5! - YouTube](https://www.youtube.com/watch?v=b-vZmfmeNbY)
* [Scythian Living in Hungarian - YouTube](https://www.youtube.com/watch?v=U7EFV5pl2PQ)
* [Advoko MAKES - YouTube](https://www.youtube.com/channel/UCc1ufNROdAxto9Fr0jnEE2Q)
* [Kusk Bushcraft - YouTube](https://www.youtube.com/channel/UCSP_Awq2yMFLfSO_n6O-bGQ)
* [Coastal Foraging With Craig Evans - YouTube](https://www.youtube.com/channel/UCpBQMibpipuqHsI_mJMVveA)


Issue: COMMON-TYPE
References: CLtL p.35, p.76
Category: CHANGE
Edit history: Version 1, 20-Mar-89, by Moon
Problem description:
The type COMMON is defined in a very peculiar way and does not seem to
be useful for anything. It can be extended by users using DEFSTRUCT,
but not DEFTYPE nor DEFCLASS, but it cannot be extended by implementations.
Whether certain types such as NUMBER and ARRAY are subtypes of COMMON
is implementation-dependent. The goal of having the COMMON type was
probably to improve portability, but it is unclear how it could actually
be used in that way.
Proposal (COMMON-TYPE:REMOVE):
Remove COMMON and COMMONP from the language.
Rationale:
Keeping the definition of COMMON accurate in the new specification, in
the face of changes elsewhere in the language such as the introduction
of CLOS and the possible introduction of character registries, is
difficult when no one is sure what COMMON is for. If no one uses COMMON,
it would be less work to just get rid of it.
Current practice:
Every implementation probably implements COMMON. Moon has never seen it
used except in a program to test whether its implementation matched CLtL.
Cost to Implementors:
None.
Cost to Users:
None unless they are actually using COMMON.
Cost of non-adoption:
Implementors would have to maintain COMMON. Users would have to try to
understand it, or figure out that they didn't care about it.
Performance impact:
None.
Benefits:
Simpler language.
Esthetics:
Simpler language.
Discussion:
None.


What's Trending
School News
Timetable
Class and Daily routines
| MON | TUE | WED | THU | FRI | SAT | SUN |
|---|---|---|---|---|---|---|
| Math | Phy | Math | Chem | Geo | Math | KIN |
| Chem | Math | Math | Math | Geo | Geo | KIN |
| Math | Math | Chem | Chem | Geo | Geo | Fra |
| Fra | Eng | Chem | Chem | Eng | Phy | Hist |
| Math | Rel | Phy | Phy | Math | Sport | Bio |
| Rel | Rel | Rel | Phy | Chem | Bio | Bio |


Caption Position
Top
Left
Right
Bottom
Float
Caption Alignment
Near
Far
Center
Subtitle Position
Top
Left
Right
Bottom
Float
Subtitle Alignment
Near
Far
Center
Enable Trim


NoSQL, no worries? Not exactly, but it’s still a powerful approach for some problems.
Sign up for an account at MongoDB Atlas, the official hosted service of MongoDB with a generous (500mb) free tier. You can also explore the many MongoDB tools out there, though none in particular are recommended or required for installation (we’re really just checking out MongoDB as a way to understand document-oriented databases - it’s unlikely to become a core part of your toolkit the way SQLite and PostgreSQL may).
Another database, same data? Let’s try to store the RPG data in our MongoDB instance, and learn about the advantages and disadvantages of the NoSQL paradigm in the process. We will depend on PyMongo to connect to the database.
Note - the JSON representation of the data is likely to be particularly useful for this purpose.
Reproduce (debugging as needed) the live lecture task of setting up and inserting the RPG data into a MongoDB instance, and add the code you write to do so here. Then answer the following question (can be a comment in the top of your code or in Markdown) - “How was working with MongoDB different from working with PostgreSQL? What was easier, and what was harder?”
There is no other required tasks to turn in, but it is suggested to then revisit the first two modules, rework/complete things as needed, and just check out with fresh eyes the SQL approach. Compare and contrast, and come with questions tomorrow - the main topic will be database differences and tradeoffs!
Put Titanic data in Big Data! That is, try to load
titanic.csv
from yesterday into your MongoDB cluster.
Push MongoDB - it is flexible and can support fast iteration. Design your own database to save some key/value pairs for an application you’d like to work on or data you’d like to analyze, and build it out as much as you can!


{% extends "base.html" %} {% block title %}Main{% endblock %} {% block header %} Welcome{% if session.username %}, {{ session.username }}{% endif %}! {% endblock %} {% block content %}
This is the place to be for all writers and readers, no matter whether you like fan fiction or original stories.
All stories are welcome here, however we would ask you to keep the following guidelines into account:
You'll find a Feedback button after every story. Giving feedback is a nice boost for the author and as such, you're very welcome to tell them what you thought. Please be kind:
If we can all keep these simple guidelines in mind, this can stay a welcoming place for all. Thank you in advance for your cooperation!
Happy reading / writing!
{% endblock %}


Working...
Left Click
to select.
Right Click
when selected to expand (draw friends).
Double click
to open profile.
Enter
to add users.
username
SteamID64:
Status:
Last online:
Joined:
Game:


This is my personal blog. The views expressed on these pages are mine alone and not those of my employer.


WITNESS LIST State, Federal & International Relations Committee May 6, 1997-8:00A HB 3099 For: Richards, Judy (Duncanville) Registering, but not testifying: For: James, Fances (Himself) Jones, Jesse (Himself) Kincaid, Sandra (Herself) Richards, Preston (Himself) Saltsgiver, Janet (Meek Family Assoc) On: Hite, Gerron (THC) HCR 228 For: Jones, Delwin (Himself) SB 771 Registering, but not testifying: For: Junell, Robert (himself) Kibby, Sandy (TX PTA) SB 810 For: Lippert, Dorothy (Herself) Naishtat, Elliott (Himself) Suucy, Ruth (TIBA) Thoms, Alston (Himself) Against: Rhodes, Denise (TX Agriwomen) Registering, but not testifying: For: Black, Stephen (Council of TX ARCHEOL) Boyd, Douglas (Himself) Harris, Edward (Himself) Harris, Helen (Herself) Saltsgiver, Janet (Meek Family Assoc) Schott, Richard (Himself) Thoms, Doris (Herself) Thoms, Walter (Himself) On: Mercado-Allinger, Pat (Himself) SB 1108 For: Bertram, James (LRRA) Jones, Delwin (Himself) SB 1127 For: Johnson, H.T. (Greater Kelly Dev Corp) Longoria, John (Himself) Registering, but not testifying: For: Avila, William (Greater Kelly Dev. Corp) Castaneda, Tris (San Antoio Chamber) SB 1310 For: Janek, Kyle (Himself) Registering, but not testifying: For: Igo, Shannon (TML) On: Milstead, Kevin (THC) Tunnell, Curtis (THC) SB 1622 For: Jones, Delwin (Himself) Registering, but not testifying: For: Burger, Anita (City of Lubbock) Ince, Max (LRRA) SCR 55 Registering, but not testifying: For: Marchant, Kenny (Himself)


Iván Sánchez Ortega
Brief bio
Afilliation Allegiances
(Opinions and thoughts are my own)
I'm EXTREMELY SKEPTICAL of the MapML proposal.
...and I wrote a lengty essay about that:
https://ivan.sanchezortega.es:444/politics/2020/08/13/mapml-essay-tldr.html
15-minute talk means I gotta focus,
So let me focus on this part of the XKCD joke
There are literally hundreds of Leaflet plugins,
and each of them is a use case...
Focus even more: Leaflet stuff which aligns with the workshop themes
Browser APIs you (probably) didn't even knew existed:
Hwo does the user interact with the map?
Joystick control feels good
This must be useful for something, but I don't know what yet
Accesibility? Haptic peripherals? WebVR?
Can I have joystick/gamepad control in MapML?
How are developers supposed to hack/extend user interaction in MapML?
Breakthrough: realizing that GIS raster data fits natively in GL textures
Store data packed in WebGL1 RGBA textures
let data = geotiff.readRasters({
window: [x1, y1, x2, y2],
samples: [0],
width,
height
});
gl.texImage2D(data, 0, gl.RED, width, height, ...)
...and read the data from a GLSL shader
float texelColour = texture2D(
geoTiffTexture, texCoords.st).r;
WebGL2 introduces:
let data = geotiff.readRasters({
window: [x1, y1, x2, y2],
samples: [0,1,2,3,4,5,6],
width,
height
});
gl.texImage3D(gl.TEXTURE_2D_ARRAY, data, 0, gl.F32, width, height, ...)
// Fetch data from a sample, sample is the Z coordinate of the texture
float data = texture(geoTiffTexture,
vec3(texCoords.st, sampleIdx));
// Or do vertical slices of the datacube
float data = texture(geoTiffTexture,
vec3(sampleIdx, texCoords.st));
Mandatory buzzword-full slide
Real-time GPU-accelerated cloudless edge computing for cloudless imagery, not absent of monetization challenges.
Prediction: by 2023, every GIS person working with raster data will say: «How did we ever work without this?»
Forget about SVG.
How can we squeeze visualization performance?
How do we make non-3D GL more accessible to developers?
Let me present a fact:
Leaflet users want to display Google Basemaps.
And it's easy!
L.tileLayer(
"https://mt0.google.com/vt/lyrs=s&hl=en&x={x}&y={y}&z={z}&s=Ga"
).addTo(map);
...but.
...but Google's Terms of Service (as of 2018) were explicit about not doing this:
10.1 Administrative Restrictions.
No access to APIs or Content except through the Service. You will not access the Maps API(s) or the Content except through the Service. For example, you must not access map tiles or imagery through interfaces or channels (including undocumented Google interfaces) other than the Maps API(s).
Wording of the current ToS is not clear; can I/we have a clarification, please?
Pretty please with sugar on top?
Workaround: Use gmaps JS API and move it
...but there're noticeable lags.
Workaround: Steal the tiles
...but when do new tiles come in?
Enter MutationObserver
var googleMutant = L.DomUtil.create('div', 'leaflet-google-mutant');
var map = new google.maps.Map(googleMutant, /* map options */);
observer = new MutationObserver(onMutationCallback);
// Observe subtree additions in particular
observer.observe(googleMutant, { childList: true, subtree: true });
function onMutationCallback(mutations) {
// Iterate through mutations
// Iterate through DOM nodes in a mutation
// If mutated node is a tiled image:
// Steal the tile
}
«Absolutely brilliant and terrible at the same time»
https://twitter.com/mourner/status/1300719192627347456My (controversial?) hard point of view:
I bet that MapML shall not:
...read the essay later!
https://ivan.sanchezortega.es:444/politics/2020/08/13/mapml-essay-tldr.html
...read the essay later!
https://ivan.sanchezortega.es:444/politics/2020/08/13/mapml-essay-tldr.html


---
layout: single
author_profile: false
author: mark
title: "Submit Your Bach Bracket Picks"
permalink: /bachelor-submit-s18/
---
Drag the contestants in the order you think they will be told "thanks but no thanks".
- Top of the list = contestant who makes it to the end
- Bottom of the list = contestant you think will go home first
Good luck!
($10 USD / entry. Entries are due no later than Monday Jan 8 @ 8PM PST/EST)
{% include form-drag-sort.html %}
{% include gsheet.html %}


--- layout: post status: publish published: true title: CruiseControl With a Specific Version of Grails author: display_name: Geoff Lane login: admin email<EMAIL_ADDRESS>url: http://www.zorched.net author_login: admin author_email<EMAIL_ADDRESS>author_url: http://www.zorched.net date: '2008-03-27 09:42:31 -0400' date_gmt: '2008-03-27 15:42:31 -0400' categories: - Code - Web - Automation - Groovy tags: - cruisecontrol - ant - grails comments: [] ---
Continuous Integration is a good practice in software development. It helps catch problems early to prevent them from becoming bigger problems later. It helps to reinforce other practices like frequent checkins and unit testing as well. I'm using CruiseControl (CC) for Continuous Integration at the moment.
One of the things about Grails is that it is really run through a series of scripts and classes that set up the environment. The Ant scripts really just delegate the work to those grails scripts. To run properly, the GRAILS_HOME environment needs to be set so that it can find the proper classes, etc. This is not a problem if you are running a single Grails application in Continuous Integration. The issue arises when you want to run multiple against different version of Grails. A project I'm working on uncovered a bug in the 1.0.2 release of Grails. The code worked fine on 1.0.1 so I wanted to run against that specific version of Grails.
It ends up this is not to hard with a few small changes to your Ant build.xml file.
First you can declares some properties that have the paths to the Grails directory and the grails executable (the .bat version if your CC server is on Windows). {% highlight xml %}
Next you can declare a custom target to execute on the CC server. You reference the 'cc-grails' property declared. The key is that you must override the GRAILS_HOME when you execute the grails script.
{% highlight xml %}
Now the Continuous Integration of your Grails app runs against a specific version of Grails.


Ewan McDonnell
Portfolio
Job Title:
Computer Science Graduate, Former: Project Officer, Retail Fuel Seller, Utilities Meter Reader
Ruby Programmer. Web Applications. Software Development. Interests: Languages, Economics, Political Economy, History
Learn more about me here.


{% load static %}
Turn off eventual script blockers and/or switch to a web browser supporting javascript.
This error could also be due to not being able to access the online jQuery javascript library.


Use datetime calendar to choose a date and/or time from a popup calendar. This can be used as a replacement for the bootstrap-ui datepicker-popup control
Pick a date range, using two dates. Use minDate and maxDate to make sure your end date cannot be before your start date and vice-versa
Date picker only passes in the model and isOpen parameters, the rest are determined by the constant uiDatetimePickerConfig
Use dropup to make the dropdown menu go upwards instead of down. NOTE: Cannot currently use append-to-body="true" with dropup class
Use a particular view mode only for the datepicker.
Set a default time when choosing a date
Pick a minimum time in 1 picker and a maximum time in another picker. The opposite picker will disable so you cannot overlay the ranges


Terms and Conditions
Welcome to SimpleSalary!
These terms and conditions outline the rules and regulations for the use of SimpleSalary's Website, located at www.SimpleSalary.co.uk.
By accessing this website we assume you accept these terms and conditions. Do not continue to use SimpleSalary if you do not agree to take all of the terms and conditions stated on this page.
The following terminology applies to these Terms and Conditions, Privacy Statement and Disclaimer Notice and all Agreements: "Client", "You" and "Your" refers to you, the person log on this website and compliant to the Company’s terms and conditions. "The Company", "Ourselves", "We", "Our" and "Us", refers to our Company. "Party", "Parties", or "Us", refers to both the Client and ourselves. All terms refer to the offer, acceptance and consideration of payment necessary to undertake the process of our assistance to the Client in the most appropriate manner for the express purpose of meeting the Client’s needs in respect of provision of the Company’s stated services, in accordance with and subject to, prevailing law of Netherlands. Any use of the above terminology or other words in the singular, plural, capitalization and/or he/she or they, are taken as interchangeable and therefore as referring to same.
Cookies
We employ the use of cookies. By accessing SimpleSalary, you agreed to use cookies in agreement with the SimpleSalary's Privacy Policy.
Most interactive websites use cookies to let us retrieve the user’s details for each visit. Cookies are used by our website to enable the functionality of certain areas to make it easier for people visiting our website. Some of our affiliate/advertising partners may also use cookies.
License
Unless otherwise stated, SimpleSalary and/or its licensors own the intellectual property rights for all material on SimpleSalary. All intellectual property rights are reserved. You may access this from SimpleSalary for your own personal use subjected to restrictions set in these terms and conditions.
You must not:
- Republish material from SimpleSalary
- Sell, rent or sub-license material from SimpleSalary
- Reproduce, duplicate or copy material from SimpleSalary
- Redistribute content from SimpleSalary
This Agreement shall begin on the date hereof. Our Terms and Conditions were created with the help of the Terms And Conditions Generator and the Privacy Policy Generator.
Parts of this website offer an opportunity for users to post and exchange opinions and information in certain areas of the website. SimpleSalary does not filter, edit, publish or review Comments prior to their presence on the website. Comments do not reflect the views and opinions of SimpleSalary,its agents and/or affiliates. Comments reflect the views and opinions of the person who post their views and opinions. To the extent permitted by applicable laws, SimpleSalary shall not be liable for the Comments or for any liability, damages or expenses caused and/or suffered as a result of any use of and/or posting of and/or appearance of the Comments on this website.
SimpleSalary reserves the right to monitor all Comments and to remove any Comments which can be considered inappropriate, offensive or causes breach of these Terms and Conditions.
You warrant and represent that:
- You are entitled to post the Comments on our website and have all necessary licenses and consents to do so;
- The Comments do not invade any intellectual property right, including without limitation copyright, patent or trademark of any third party;
- The Comments do not contain any defamatory, libelous, offensive, indecent or otherwise unlawful material which is an invasion of privacy
- The Comments will not be used to solicit or promote business or custom or present commercial activities or unlawful activity.
You hereby grant SimpleSalary a non-exclusive license to use, reproduce, edit and authorize others to use, reproduce and edit any of your Comments in any and all forms, formats or media.
Hyperlinking to our Content
The following organizations may link to our Website without prior written approval:
- Government agencies;
- Search engines;
- News organizations;
- Online directory distributors may link to our Website in the same manner as they hyperlink to the Websites of other listed businesses; and
- System wide Accredited Businesses except soliciting non-profit organizations, charity shopping malls, and charity fundraising groups which may not hyperlink to our Web site.
These organizations may link to our home page, to publications or to other Website information so long as the link: (a) is not in any way deceptive; (b) does not falsely imply sponsorship, endorsement or approval of the linking party and its products and/or services; and (c) fits within the context of the linking party’s site.
We may consider and approve other link requests from the following types of organizations:
- commonly-known consumer and/or business information sources;
- dot.com community sites;
- associations or other groups representing charities;
- online directory distributors;
- internet portals;
- accounting, law and consulting firms; and
- educational institutions and trade associations.
We will approve link requests from these organizations if we decide that: (a) the link would not make us look unfavorably to ourselves or to our accredited businesses; (b) the organization does not have any negative records with us; (c) the benefit to us from the visibility of the hyperlink compensates the absence of SimpleSalary; and (d) the link is in the context of general resource information.
These organizations may link to our home page so long as the link: (a) is not in any way deceptive; (b) does not falsely imply sponsorship, endorsement or approval of the linking party and its products or services; and (c) fits within the context of the linking party’s site.
If you are one of the organizations listed in paragraph 2 above and are interested in linking to our website, you must inform us by sending an e-mail to SimpleSalary. Please include your name, your organization name, contact information as well as the URL of your site, a list of any URLs from which you intend to link to our Website, and a list of the URLs on our site to which you would like to link. Wait 2-3 weeks for a response.
Approved organizations may hyperlink to our Website as follows:
- By use of our corporate name; or
- By use of the uniform resource locator being linked to; or
- By use of any other description of our Website being linked to that makes sense within the context and format of content on the linking party’s site.
No use of SimpleSalary's logo or other artwork will be allowed for linking absent a trademark license agreement.
iFrames
Without prior approval and written permission, you may not create frames around our Webpages that alter in any way the visual presentation or appearance of our Website.
Content Liability
We shall not be hold responsible for any content that appears on your Website. You agree to protect and defend us against all claims that is rising on your Website. No link(s) should appear on any Website that may be interpreted as libelous, obscene or criminal, or which infringes, otherwise violates, or advocates the infringement or other violation of, any third party rights.
Your Privacy
Please read Privacy Policy
Reservation of Rights
We reserve the right to request that you remove all links or any particular link to our Website. You approve to immediately remove all links to our Website upon request. We also reserve the right to amen these terms and conditions and it’s linking policy at any time. By continuously linking to our Website, you agree to be bound to and follow these linking terms and conditions.
Removal of links from our website
If you find any link on our Website that is offensive for any reason, you are free to contact and inform us any moment. We will consider requests to remove links but we are not obligated to or so or to respond to you directly.
We do not ensure that the information on this website is correct, we do not warrant its completeness or accuracy; nor do we promise to ensure that the website remains available or that the material on the website is kept up to date.
Disclaimer
To the maximum extent permitted by applicable law, we exclude all representations, warranties and conditions relating to our website and the use of this website. Nothing in this disclaimer will:
- limit or exclude our or your liability for death or personal injury;
- limit or exclude our or your liability for fraud or fraudulent misrepresentation;
- limit any of our or your liabilities in any way that is not permitted under applicable law; or
- exclude any of our or your liabilities that may not be excluded under applicable law.
The limitations and prohibitions of liability set in this Section and elsewhere in this disclaimer: (a) are subject to the preceding paragraph; and (b) govern all liabilities arising under the disclaimer, including liabilities arising in contract, in tort and for breach of statutory duty.
As long as the website and the information and services on the website are provided free of charge, we will not be liable for any loss or damage of any nature.