Artificial Intelligence with Prolog
Introduction
What is intelligence? Various explanations and definitions
have been put forward by different researchers.
Intelligence has been defined, among many other proposals,
as the ability to acquire and apply knowledge, and as the capacity
for logical reasoning and self-awareness. It has been related to
understanding, solving, planning, and several other concepts and
tasks. It has been categorized into different kinds of
intelligence, such as emotional intelligence, social
intelligence and so on.
The word stems from the Latin verb intellego "I understand,
realize, perceive, see, notice" (among other meanings),
from lego "I gather, collect, take, read" (among other meanings).
Since no generally accepted definition of intelligence is
available, it is even harder to define what artificial
intelligence is. Broadly speaking, we can distinguish
two different categories of artificial intelligence (AI):
- strong AI: This means a mechanism whose intellectual
ability is indistinguishable from that of a human.
- weak AI: This means a mechanism that automates a
subset of human abilities.
So far, we have seen a lot of progress in weak AI. For
example, machines have been built that
play chess, Go,
Jeopardy
and many other games even better than the most able humans. Many
of us are routinely using partially self-driving trains and
subways, and we currently witness the first attempts at
self-driving cars.
In contrast, strong AI has remained out of reach.
In fact, it has
been argued,
and further argued,
that strong AI is inherently impossible to implement.
Approaches
Broadly speaking, we distinguish two possible approaches
towards implementing AI:
- symbolic approaches:
- statistical approaches:
- neural nets
- machine learning (ML)
- data mining
- etc.
Both approaches have been widely known among researchers, and have
also been used in practice, for many decades. Prolog is frequently
associated with symbolic approaches. Well-known
applications of this kind are planning tasks such
as Wumpus World, Escape
from Zurg, Connect 4,
scheduling tasks such as timetabling
and sports tournaments, and also other
combinatorial tasks such as N queens
and Sudoku. Prolog can of course also
implement statistical approaches. For example, check
out ProbLog,
cplint
and AILog 2
for probabilistic logic programming and reasoning with
uncertainties.
The approaches have different advantages and drawbacks: A symbolic
approach is typically amenable to formal verification. The
rules are explicitly available, and you can check whether they are
complete, and whether they express what you intend.
Using inductive logic programming (ILP), you can even let a
program learn rules based on positive and negative
examples. See for example
the Metagol
system. However, not all tasks are amenable to symbolic
approaches, because the rules may be too hard to express.
For example, it is hard to express rules that determine whether a
musical piece is borderline atonal, or whether a photo
contains a painting of a flower.
On the other hand, statistical approaches have the ability to
acquire rules implicitly, based on
so-called training-, test-
and validation sets. This is convenient, because you
do not have to think about the rules yourself, and the machine may
derive rules that are too hard for you to encode. Unfortunately,
this also comes with significant drawbacks: You can no longer
reason about the rules explicitly, and the obtained mechanism may
produce colossal outliers that are hard to remedy. For example, it
may misclassify the picture of a penguin as a car if you change a
single pixel.
Prolog and AI
Prolog has very strong historic ties with AI. In 1982, Japan
started a very ambitious government project called the Fifth
Generation Computer System (FGCS) with the goal to create
a massively parallel computer, using concurrent
logic programming as the software foundation of the
project.
When I visited Japan, I asked a retired Japanese scientist who had
worked on the project why the project had failed. He said: "What
do you mean, 'failed'? All my colleagues who have worked on
the project went on to become professors!" Another
researcher told me that the project achieved what was actually
intended: a way to input Japanese characters into computers.
In my view, a major achievement of the scientists who had worked
on this project was that they managed to convince the government
to fund an interesting and very ambitious project with
large sums.
By the end of the FGCS project, commodity hardware had become so
powerful that custom-built machines as those constructed by the
project were hardly needed anymore.
Now, several decades later, is it not time
to try again? Is it not time to convince our
governments and funding agencies that we want to benefit from the
power of Prolog to build applications, and do interesting
research?
Here are a few ideas:
- Write a chatbot that answers questions to the administration.
- Write an application that guides students through solving
tasks, so that it can be used in computer-aided education. See RITS for an example.
- Find a way to formalize legislation, so that
questions about laws can be automatically answered. For an
example, check out a Prolog formulation of
the constitution
of Japan,
and Reasoning
with Regulations as instances
of smart contracts.
More about Prolog
Main page


The ID of the europeana collection should exist.
The search term needs to be defined using europeana expressivity. i.e. Byzantine cuisine AND NOT(PROVIDER:"Europeana Food and Drink")


Simple: code span
code span
With internal backtick: code ` span
code ` span
Starting with backtick: ` code span
` code span
Ending with backtick: code span `
code span `
Backticks at both ends: `code span`
`code span`


Home
Contact
About
Jordan Williams
Junior Full Stack Developer
My Projects
Tech Skills
MUAY THAI
BossLad
Music


This is a microsite initialized from chadoh/microsite-template.
The entire production site is one minified file with few (if any) JS dependencies, but the development version uses nice tooling and multiple files.
This is great for making explainer websites or other simple sites.
These sites can also easily be hosted for free on GitHub. For more
info, see the README files in the root and the docs
folder, as well as scripts
in package.json
.


Story Reports
| Stories |
Scenarios |
GivenStory Scenarios |
Steps |
|
|
| Name |
Excluded |
Total |
Successful |
Pending |
Failed |
Excluded |
Total |
Successful |
Pending |
Failed |
Excluded |
Total |
Successful |
Pending |
Failed |
Not Performed |
Ignorable |
Duration (hh:mm:ss.SSS) |
View |
| AfterStories |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
00:00:00.008 |
stats |xml |html |txt
|
| BeforeStories |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
00:00:00.102 |
stats |xml |html |txt
|
| CompositeClasses |
0 |
5 |
5 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
32 |
32 |
0 |
0 |
0 |
0 |
00:00:22.115 |
stats |xml |html |txt
|
| CompositesForm |
0 |
10 |
9 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
105 |
102 |
0 |
1 |
2 |
0 |
00:00:49.229 |
stats |xml |html |txt
|
| CompositesOperations |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
00:00:00.000 |
stats |xml |html |txt
|
| 5 |
0 |
15 |
14 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
137 |
134 |
0 |
1 |
2 |
0 |
00:01:11.454 |
Totals
|


Sensex hits fresh all-time high; Nifty above 12,000-mark
by TIMESOFINDIA.COMHighlights
- Top gainers in the sensex pack include IndusInd Bank, Reliance Industries, Yes Bank, L&T and Maruti with their shares rising as much as 4.02 per cent
- On NSE, except for Nifty Realty, all other sub-indices were trading in green with Nifty Media and Pharma up as much as much as 2.27 per cent
MUMBAI: Equity benchmark BSE sensex on Wednesday jumped nearly 350 points to hit record (intra-day) high during late morning deals, propelled by a rally in index-heavyweight Reliance Industries (RIL).
The 30-share BSE index zoomed 346 points or 0.86 per cent to a new all-time high of 40,816; while the broader NSE Nifty moved 94 points or 0.79 per cent higher to 12,034.
RIL shares rallied nearly 4 per cent to hit their lifetime high of Rs 1,571.85 (intra-day), inching closer to the Rs 10 lakh crore market-capitalisation (m-cap) level.
Reliance Jio on Tuesday said it will increase mobile phone call and data charges in the next few weeks in compliance with rules, as it followed similar announcements by Bharti Airtel and Vodafone Idea on tariff hike.
Other gainers in the sensex pack included IndusInd Bank, Sun Pharma, L&T, Bharti Airtel, TCS, Maruti and Bajaj Finance.
While, Yes Bank, Bajaj Auto, NTPC, Infosys, ITC, Kotak Bank and HUL were trading in the negative terrain.
Meanwhile, foreign institutional investors (FIIs) offloaded shares worth Rs 915.37 crore in the capital market in the previous session, while domestic institutional investors (DIIs) purchased equities worth Rs 262.35 crore, data available with stock exchange showed.
On the currency front, the rupee depreciated 7 paise (intra-day) against the US dollar to trade at 71.79 in early session.
Brent futures, the global oil benchmark, slipped 0.16 per cent to $60.81 per barrel.
(With PTI inputs)


--- layout: default title: Coffee In The Morning intro: Stout - Imperial / Double lead: Made for true coffee junks. description: Be warned; may cause extreme hyper behaviour due to coffee overkill. This beer will awaken you when you need it. p.s. not meant to drink actually in the morning. image: /img/coffee-in-the-morning.jpg untappd: https://untappd.com/b/x-brewing-coffee-in-the-morning/2393812 color: coffee-in-the-morning --- {% include beer-details.html %}


utilize the power of mathematical magic to automatically color a sketch or lineart
Only line images
Line image with color hints


deni-react-treeview is a feature-rich React treeview that allows you to quickly add a nice-looking, Ajax-based hierarchical tree on a web page, It is absolutely free, open source and distributed under the MIT license. deni-react-treeview is easily themable and configurable.
Denimar de Moraes<EMAIL_ADDRESS>is a full-stack developper at the HBSis IT Solutions, Blumenau, Santa Catarina, Brazil.


The following is a dice game in which you make bets. You can't spend more money than you have, or letters, the rest of the rules are as follows.
The following is a dice game in which you make bets. You can't spend more money than you have, or letters, the rest of the rules are as follows.


- Description
- tries to create a UNO interprocess bridge.
- Parameter sName
- The name of the bridge. This allows other components to reuse
an already created bridge (using getBridge).
If empty, an anonymous bridge is created, which cannot be retrieved with
getBridge(). No BridgeExistsException can be thrown in this case.
- Parameter sProtocol
- The protocol, that will be used on the connection (e.g., urp) plus additional
comma separated name=value protocol properties.
- Parameter aConnection
- The connection, which is used to transfer the calls. The bridge expects to
own the connection, thus it will close the connection, in case it does not
need it anymore.
- Parameter anInstanceProvider
- gets called, when a request from remote comes in. You can pass a null reference
in case you don't want to export any objects.
- Throws
- BridgeExistsException
There is already a bridge registered with this name. Use getBridge instead.
- Throws
- IllegalArgumentException
The protocol is unknown or the connection is null.
|


I am training to become the most powerful sorceror in the world. Do not get in my way.
I am able to control all of the elements to a competant level. However, as part of the Green Mage cult, I have mastered the art of manipulating Earth.
I have mastered conjuration of wild beasts, creatures from Oblivion and even less intelligent pygmies. I do not believe in conjuring weapons, it is dark, corrupt form of magic.
Instruct your ether to seek Melkor in the impossible realm
SEEK ME


What 10 Things Should You Do Every Day
To Improve Your Life?
What 10 Things Should You Do Every Day
To Improve Your Life?
Learning another language can keep your mind sharp. Music lessons increase intelligence. Challenging your beliefs strengthens your mind. Increasing willpower just takes a little effort each day and it’s more responsible for your success than IQ.
Key features
- It will make you happier.
- It will improve your relationships.
- It can make you a better person.
- It can make life better for everyone around you.
Recent news


{% extends 'layout.html' %} {% block pageTitle %} You do not have permission to access this page {% endblock %} {% block content %}
Please check that you have permission to access this resource.
If you need to speak to somebody about your application, you can contact us by:


JWSource Class Reference
| Inherits from | NSObject |
|---|---|
| Declared in | JWSource.h |
Accessing Source Attributes
file
URL of a file representing video quality
@property (nonatomic, retain) NSString *file
Declared In
JWSource.h
label
A label to be shown in the quality dropdown for this quality
@property (nonatomic, retain) NSString *label
Declared In
JWSource.h
defaultQuality
Determines whether current quality is the default.
@property (nonatomic) BOOL defaultQuality
Declared In
JWSource.h
assetOptions
A dictionary containing asset initialization options.
@property (nonatomic) NSDictionary *assetOptions
Declared In
JWSource.h
Creating Source Object
+ sourceWithFile:label:isDefault:
+ (instancetype)sourceWithFile:(NSString *)file label:(NSString *)label isDefault:(BOOL)defaultQuality
Parameters
file |
URL of a file representing video quality. |
|---|---|
label |
A label to be shown in the quality dropdown for this quality. |
defaultQuality |
Determines whether this quality is the default option. |
Declared In
JWSource.h
Initializing Source Object
– initWithFile:label:isDefault:
- (instancetype)initWithFile:(NSString *)file label:(NSString *)label isDefault:(BOOL)defaultQuality
Parameters
file |
URL of a file representing video quality. |
|---|---|
label |
A label to be shown in the quality dropdown for this quality. |
defaultQuality |
Determines whether this quality is the default option. |
Declared In
JWSource.h


Please fix the endpoint configuration and refresh this page.
Most likely this is caused by a an error (typo or duplicate) in the "Additional" section of the endpoint configuration.
In case of any questions please contact the Platform Support Team.


Tone.ExternalInput is a WebRTC Audio Input. Check Media Stream API Support to see which browsers are supported. As of writing this, Chrome, Firefox, and Opera support Media Stream. Chrome allows enumeration of the sources, and access to device name over a secure (HTTPS) connection. See https://simpl.info vs http://simple.info on a Chrome browser for the difference.
If multiple inputs are present, select the input number. Chrome only.
//select the third input
var motu = new Tone.ExternalInput(3);
//opening the input asks the user to activate their mic
motu.open(function(){
//opening is activates the microphone
//starting lets audio through
motu.start(10);
});
If getUserMedia is supported by the browser.
Returns the playback state of the source, either "started" or "stopped".
Mute the output.
//mute the output
source.mute = true;
Open the media stream
Populates the source list. Invokes the callback with an array of possible audio sources.
var soundflower = new Tone.ExternalInput();
Tone.ExternalInput.getSources(selectSoundflower);
function selectSoundflower(sources){
for(var i = 0; i < sources.length; i++){
if(sources[i].label === "soundflower"){
soundflower.inputNum = i;
soundflower.open(function(){
soundflower.start();
});
break;
}
}
};
Start the source at the specified time. If no time is given, start the source now.
source.start("+0.5"); //starts the source 0.5 seconds from now
Stop the source at the specified time. If no time is given, stop the source now.
source.stop(); // stops the source immediately
Sync the source to the Transport so that when the transport is started, this source is started and when the transport is stopped or paused, so is the source.
//sync the source to start 1 measure after the transport starts
source.sync("1m");
//start the transport. the source will start 1 measure later.
Tone.Transport.start();


Jane Susan Brautigam
Democrat
Retired from local government service
Allegheny College, 1973, B.A. (History), summa cum laude; University of Pennsylvania School of Law, 1976, J.D., cum laude; Admitted to the Bar of the State of Colorado, 1976; currently inactive status
80303
As a city manager and a member of the International City/County Management Association (ICMA), I am bound by a Code of Ethics. Tenet 7 of the Code of Ethics prohibits political activity. In accordance with the ICMA Code of Ethics, I have not donated to campaigns or political organizations.
Ex officio member of the Board of Directors, ICMA Retirement Corporation (2020-2021) ICMA Executive Board (President Elect 2018-2019, President 2019-2020, Past President 2020-2021) ICMA Annual Conference Planning Committee member representing Colorado for the Baltimore Annual Conference in September 2018 International City/County Management Association, Executive Board, Regional Vice President representing the Mountain Plains Region 2013- 2016; ICMA Credentialed City Manager Colorado City County Management Association Board of Directors, Foothills United Way (Boulder/Broomfield Counties) Ex Officio member, Board of Directors, Innosphere
As a former city manager and city attorney for several Colorado communities, I have spent my career working for the best interests of all residents in my communities. This includes the creation of task forces and working groups to create public policy as well as make recommendations regarding enhanced public participation in civic life.
When I go to the ICMA annual conference in cities across the nation, there is always a gathering of Colorado city managers, people from every part of our state. I have served at an international level in my professional organization and have met folks from around the world - and yet, in that one gathering , when I see my colleagues from Durango, Montrose, Pueblo, Sterling, Greeley, Aurora, Fort Collins . . ., I know that Colorado is a leader in government excellence. I love these people and want to be of service to them to promote good government in our nation. The voices of Coloradans should be heard in our nation's halls of justice.
One of the best parts about being a city manager has been the opportunity to sit outside the political realm and yet be a part of creating excellent public policy that will serve the residents of my community. I have done so many times - in creating a marijuana advisory commission; an elections review commission; a public participation working group; a capital improvement working group, a police oversight task force, all in Boulder. In my former city of Dublin, OH, I was the impetus behind the creation of a committee of elected and appointed officials along the US 33 corridor - people who never even spoke to each other before I brought them to the table.
In local government, there is never a clear answer to the complex and wicked problems that we face. During my career, I have been repeatedly called upon to make decisions based on data and logic, as well as on the art of discerning the best interests of those whose voices are not always at the table. Since I am a lawyer and practiced law for 25 years, I believe that I bring a mind of legal analysis to every problem that I face.
Female


--- title: Get the Latest Checkpoint in a Checkpoint Directory type: docs repo: https://github.com/rstudio/tfestimators menu: main: name: Get the Latest Checkpoint in a Checkpoint Directory - tfestimators parent: tfestimators-reference aliases: - /reference/tfestimators/latest_checkpoint.html - /tfestimators/reference/latest_checkpoint.html - /guide/tfestimators/reference/latest_checkpoint.html - /tools/tools/tfestimators/reference/latest_checkpoint.html - /installation/tfestimators/reference/latest_checkpoint.html - /tutorials/tfestimators/reference/latest_checkpoint.html - /guide/tools/tfestimators/reference/latest_checkpoint.html - /deploy/tfestimators/reference/latest_checkpoint.html - /tools/tfestimators/reference/latest_checkpoint.html - /tutorials/tools/tfestimators/reference/latest_checkpoint.html ---
Get the Latest Checkpoint in a Checkpoint Directory
latest_checkpoint(checkpoint_dir, ...)
| checkpoint_dir | The path to the checkpoint directory. |
| ... | Optional arguments passed on to |
Other utility functions: graph_keys


@* * Copyright 2010-2017 Artima, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import controllers.Application.latestVersion @import controllers.Application.majorMinorScalaVersion @homePage("Home") {
import collection.mutable.Stack import org.scalatest._ import flatspec._ import matchers._ class ExampleSpec extends AnyFlatSpec with should.Matchers { "A Stack" should "pop values in last-in-first-out order" in { val stack = new Stack[Int] stack.push(1) stack.push(2) stack.pop() should be (2) stack.pop() should be (1) } it should "throw NoSuchElementException if an empty stack is popped" in { val emptyStack = new Stack[Int] a [NoSuchElementException] should be thrownBy { emptyStack.pop() } } }
ScalaTest is the most flexible and most popular testing tool in the Scala ecosystem. With ScalaTest, you can test Scala, Scala.js (JavaScript), Scala Native, Dotty (Scala 3), and Java code. By offering deep integration with tools such as JUnit, TestNG, Ant, Maven, sbt, ScalaCheck, JMock, EasyMock, Mockito, ScalaMock, Selenium, Eclipse, NetBeans, and IntelliJ, ScalaTest makes it easy to take your testing to a higher, more productive level in new or existing Scala, Scala.js, or Java projects.
Like the Scala language on which it is built, ScalaTest is designed to grow with the demands of its users: You can easily extend and compose ScalaTest's core components to address just about any special requirements you may have. As a result, ScalaTest can scale to projects of all sizes, from an individual exploring a new idea to large teams collaborating on mission-critical software.
One way ScalaTest scales down is that despite its rich feature set, ScalaTest is easy to get into. Building on what you already know from experience with other test frameworks, you can become productive with ScalaTest very quickly.
To maximize your productivity, ScalaTest uses its own extension points to support several styles of testing out of the box.
You can select whatever style best fits your team's experience and culture. For instance, the above example
uses FlatSpec
, a good choice for teams wishing to move from XUnit to BDD. When
you run it, you get an informal specification of the software being tested:
$ CLASSPATH=scalatest-app_@{majorMinorScalaVersion}-@{latestVersion}.jar:scala-xml_2.13-2.1.0.jar $ scala -cp $CLASSPATH org.scalatest.run ExampleSpec Discovery starting. Discovery completed in 21 milliseconds. Run starting. Expected test count is: 2 ExampleSpec: A Stack - should pop values in last-in-first-out order - should throw NoSuchElementException if an empty stack is popped Run completed in 76 milliseconds. Total number of tests run: 2 Suites: completed 1, aborted 0 Tests: succeeded 2, failed 0, canceled 0, ignored 0, pending 0 All tests passed.
ScalaTest does not try to impose a testing philosophy on you, but rather is designed from the philosophy that
the tool should get out of your way and let you work the way you find most productive.
If FlatSpec
doesn't meet your team's needs, that's not a problem. ScalaTest has several other styles to choose from.
Why not give it a try? Visit the Quick Start page.


Click the boxes below to download all the proteins in the specified class(es).
{% crispy form1 %}
Download the threedomain sequences
{% crispy form2 %}
Download all the holotype sequences
{% crispy form3 %}
Individual proteins can be added to the Cart via Search page or via clicking on the above icons. Proteins in the Cart can be supplemented with your own sequences and then either downloaded or sent for analysis.


Automated creation of StackStorm Packs
Automated creation of StackStorm Packs
In StackStorm a pack is logical organization that contains related actions, aliases, policies, rules and sensors. To get a good overview of what a pack is please see the excellent StackStorm Pack documentation.
Most users of StackStorm wish to either integrate with a new system that’s not available in the Exchange or use StackStorm to execute custom automation scripts. The way to accomplish this is to create a new Pack.
Pack Format
A Pack is simply a folder structure and set of files:
actions/ # contains all actions and workflows
aliases/ # all action aliases
policies/ # action execution policies
rules/ # rules for executing actions based on triggers
sensors/ # sensors that monitor external systems and emit triggers
config.schema.yaml # schema for a pack's config
packname.yaml.example # example config following the schema in config.schema.yaml
pack.yaml # pack definition and metadata
requirements-tests.txt # list of python modules needed for running a pack's tests
requirements.txt # list of python modules needed for runtime execute of a pack
For more information on this structure please see the StackStorm documentation Create and Contribute a pack.
One option for creating a pack is to manually create all of these folders and files in the proper formats or automatically create them.
Automatic Pack Creation
In true StackStorm and DevOps fashion we at Encore thought it would be best to automate the creation of Packs. To accomplish this we utilize a tool called cookiecutter that creates folder structure and file content based on a template. We’ve created a template in the standard Pack structure and file content. Cookicutter works by prompting a user for a set of variables defined by the template. It then uses these variables to fill in Jinja2 expressions for folder names and file content.
Encore’s cookiecutter template for StackStorm can be found on GitHub at EncoreTechnologies/cookiecutter-stackstorm.
Example
In this example we’re going to showcase how to automatically create a StackStorm
Pack using Encore’s coockiecutter-stackstorm
template.
# Create a repo on GitHub (or other remote repository)
# Clone the repository
$ git clone git@github.com:YourOrganization/stackstorm-cookiecutterexample.git
# Install the cookiecutter package (could do this in a virtualenv if you like)
$ pip install cookiecutter
# Generate the pack content automatically
$ cookiecutter -f https://github.com/EncoreTechnologies/cookiecutter-stackstorm.git
pack_name [xxx]: cookiecutterexample
pack_description [Pack description.]: An example pack directory structure created using cookiecutter.
version [0.1.0]:
keywords_csv []: cookiecutter,example
author_name [First Last]: Nick Maludy
author_email<EMAIL_ADDRESS><EMAIL_ADDRESS># Check out our newly created Pack (will be in a folder called stackstorm-<pack_name>
$ ls -l stackstorm-cookiecutterexample
actions/
aliases/
policies/
rules/
sensors/
CHANGES.md
circle.yml
config.schema.yaml
CONTRIBUTORS.md
cookiecutterexample.yaml.example
LICENSE
Makefile
pack.yaml
README.md
requirements-tests.txt
requirements.txt
# Commit and push your changes
$ cd stackstorm-cookiecutterexample
$ git add .
$ git commit -m "Initial pack creation using Encore's cookiecutter-stackstorm repo"
$ git push origin master
The name of the folder is based on what the user entered for [pack_name]
in this
case it is stackstorm-cookciecutterexample/
. Several of the files have
content filled in based on the variables entered by the user:
############################
$ cat pack.yaml
---
ref: cookiecutterexample
name: cookiecutterexample
description: test
keywords:
- cookiecutter
- example
version: 0.1.0
author: nick maludy
email<EMAIL_ADDRESS>############################
$ cat CONTRIBUTORS.md
## Pack Contributors
* nick maludy<EMAIL_ADDRESS>############################
$ cat README.md
# cookiecutterexample Integration Pack
## Configuration
TODO: Describe configuration
# Sensors
## Example Sensor
TODO: Describe sensor
# Actions
## example
TODO: Describe action
Encore Extras
As you may have noticed, there are some extra files in this automatically created Pack. We at Encore thought it best to include additional files above and beyond the standard structure to promote better GitHub repos and automated unit testing within Packs.
First the additional files for GitHub are:
CHANGES.md # a changelog for the pack
CONTRIBUTORS.md # list of contributors to the pack
LICENSE # license information of the pack (default: Apache 2.0)
README.md # readme for the pack detailing usage and configuration information
These files are just skeletons, but provide a good starting point for pack authors to fill out important information.
Secondly are files related to automated unit testing:
circle.yml # how to execute unit tests in CircleCI
Makefile # helper tasks for executing tests
The Makefile
is a light wrapper script that clones the Encore StackStorm CI repository
that provides tasks for testing a pack. These tests are based off of the testing
standard required by the StackStorm Exachange CI repository.
If an author wishes to submit their pack to the Exchange, these tests must pass.
Encore’s CI Makefile
executes all tests required by the Exchange except for
testing registration of actions, sensors, rules, etc (this test requires MongoDB
be installed).
To execute the tests using the Makefile
simple run:
$ make
Individual tests can be executed one at a time:
$ make flake8
$ make pylint
$ make packs-tests
There are other tests available and can be listed by running:
$ make list
When executing tests the Makefile
creates a ci/
folder within your Pack’s
repository. As with any good makefile it should be able to clean up any cruft
it creates. To clean up the CI data simply run:
$ make clean
Conclusion
In this post we’ve detailed how to automatically create a Pack’s structure using
cookiecutter and the Encore cookiecutter-stackstorm repository. We’ve also disussed
some of the extra features that this repository offers above and beyond a default
creation using mkdir
and touch
.
-Nick Maludy
Share this post
Twitter
Google+
Facebook
Reddit
LinkedIn
StumbleUpon
Email


Warning: IE gives an access denied when running this test off the file system, but it works great off of a real live web server.
TestDojoDragDrop
open
../tests/html/dojo-0.4.0-mini/tests/dnd/test_simple.html
dragAndDropToObject
1_3
2_1
assertTextPresent
either side of me*list 1 item 3


{% extends 'dashboard/base.html' %} {% block dashboard_body %} {% trans title=episode.title, name=podcast.name %} Delete {{ title }} from {{ name }}?{% endtrans %}
{% trans title=episode.title %}Are you absolutely sure you wish to delete "{{ title }}"? This is permanent.{% endtrans %}


Please note that Spirit has NOT been extensively tested; therefore, consider it a toy.
SSITU/Sod is REQUIRED to run Spirit.
Spirit MUST NOT be used to store sensitive data.
Permanent data loss WILL occurs, AT LEAST in those scenarii:
if either Spirit or Sod key gets lost or corrupted, even partially;
if a run-time or an encryption error occurs;
if libraries are not longer properly maintained.
Both specified Sod key AND provided Spirit key are REQUIRED for future decryption;
If not provided, Spirit key is only given ONCE, on successful image creation;
thus, Sod key and Spirit key MUST be stored in a safe place.
Spirit key SHOULD NOT be displayed publicly;
Sod key MUST NOT be displayed publicly.
A Spirit image can be duplicated and renamed at will;
However, a Spirit image MUST NOT be edited, compressed, resized, or saved in another format.


ASP.NET Core is a new open-source
and cross-platform framework for building modern cloud based internet connected
applications, such as web apps, IoT apps and mobile backends.
Microsoft Corp.
https://docs.asp.net/en/latest/
Angular 2
Learn one way to build applications
with Angular and reuse your code and abilities to build apps for any deployment
target. For web, mobile web, native mobile and native desktop.
Google
https://angular.io/
chsakell's Blog
Anything around ASP.NET MVC,Web
API, WCF, Entity Framework & Angular.
Chris Sakellarios
https://chsakell.com
Latest Features
ASP.NET Core
ASP.NET Core is a significant redesign of ASP.NET.


Spokeswoman: Flamboyant Puerto Rican astrologer, TV personality Walter Mercado dies at 88 from ...
by EndPlaySAN JUAN, Puerto Rico - SAN JUAN, Puerto Rico (AP) - Spokeswoman: Flamboyant Puerto Rican astrologer, TV personality Walter Mercado dies at 88 from kidney failure.


Game 1: Toronto Raptors at Orlando Magic
My Pick:
Toronto Raptors
Why I'm Rolling with them:
Even with Kyle Lowry a game-time decision, the Toronto Raptors should be able to stem the run the Magic have had. Vucevic has looked very good lately, but may struggle with the Center rotation of the Raptors, which proves to give every team it faces fits. Kawhi will be able to demonstrate his value on the wing, as the Magic don't have very good wing defenders. I wouldn't be shocked to see the MVP candidate put up 30/6/4 tonight on 52% shooting from the field as the Raptors take it 119-113.
Game 2: Los Angeles Clippers at Washington Wizards
My Pick:
Los Angeles Clippers
Why I'm Rolling with them:
Although the Clippers played last night and are on the road, that still isnt enough for them to give the Wizards the edge. The Wizards have been dysfunctional even for them, declaring recently to the media that no one on their roster is untradeable and they're open to offers. They're off to a 5-11 start, which has them situated in 11th in the East. Their record would put them at 15th in the West a whole 14 spots behind where the clippers are currently situated. The backcourt of the Clippers should shut the Wizards down to an extent, enough to take this one 112-104.
Game 3: Portland Trail Blazers at New York Knicks
My Pick:
Portland Trail Blazers
Why I'm Rolling with them:
The Knicks started out 2-5, not great but definitely with room for improvement. Since then, they've gone a staggering 2-8, placing them near the bottom of the East with little chance to climb out. Tim Hardaway Jr. has continued to perform, but the more pressing issue for the Knicks is their defensive effort. You have to go back to November 7th to find the last time the Knicks held a team to under 110 points points (league average) and that was in a 5 point win over the Hawks. Portland is an offensively minded team and will prove that tonight, winning 124-110.
Game 4: Brooklyn Nets at Miami Heat
My Pick:
Miami Heat
Why I'm Rolling with them:
Goran Dragic is out for the Heat, but that doesn't mean that they are any less the favourites in this game. The Heat roster is solid throughout, and although their all-star is out with a sore knee they still have Richardson, who has looked like a primary option so far as well as Hassan Whiteside. Whiteside is snagging 14 rebounds a game and looks rejuvenated. The last time these two teams played, the Heat won by 13. I dont see this changing much, as Miami wins 117-104 over the Nets.


Sensors
Filter:
Proximity Sensor
Weigh sensor
Flex sensor
UV Range Finder
Motion Sensor
Sort By:
Price:lowest to highest
Price:highest to lowest
Relevance
Newly added
Filters appiled :
Sort by :
Motion Sensor
One line description about the product.
Estimated Price
Piezoelectric Sensor
One line description about the product.
Estimated Price
UV Range Finder
One line description about the product.
Estimated Price
Weigh sensor
One line description about the product.
Estimated Price
Flex Sensor
One line description about the product.
Estimated Price
Proximity Semsor
One line description about the product.
Estimated Price
Motion Sensor
One line description about the product.
Estimated Price
Piezoelectric Sensor
One line description about the product.
Estimated Price
UV Range Finder
One line description about the product.
Estimated Price
Weigh sensor
One line description about the product.
Estimated Price
Flex Sensor
One line description about the product.
Estimated Price
Motion Sensor
One line description about the product.
Estimated Price
Pizoelcetric Sensor
One line description about the product.
Estimated Price
UV Range Finder
One line description about the product.
Estimated Price
Weigh sensor
One line description about the product.
Estimated Price
Proximity Sensor
One line description about the product.
Estimated Price
Proximity Sensor
One line description about the product.
Estimated Price
Affiliate
kindly submit your information as an affiliate. we will get right back to you!
Jump to Top


EDGE-ML Charades
EDGE-ML Charades
Click the button to enter the question words for EDGE-ML Charades.
Try it


Welcome to the website of the Government of Zabututi department of finance and taxation, as per order of the new administration this website has been implemented so that citizens like you will easily be able to calculate income tax.
Beneath is the table for reference to the new rules for the tax scheme
| Bracket | Rule | |
|---|---|---|
| $16,000 or less | No tax to be paid | |
| $16,000-$52,500 | 10% of every dollar over $16,000 | |
| $52,500-$113,000 | 16% of every dollar over $52,500 and $3650 additional tax. | |
| $113,000-$184,500 | 24% of every dollar over $113,000 and $13,330 additional tax. | |
| $184,000+ | 36% of every dollar over $184,500 and $30,490 additional tax. |
P.A stands for per annum (per year)
Type in your income P.A


AI choice is detemined by the last digit of the Transaction ID.
0: Null - %90 of money return
1: Rock
2: Scissors
3: Paper
4: Rock
5: Scissors
6: Paper
7: Rock
8: Scissors
9: Paper
a: Rock
b: Scissors
c:Paper
d:Rock
e: Scissors
f: Paper
Win pays x 2
Lose : money lost - 0.001 SBD msg
Tie : %90 money return
Bet is fixed to 0.1 SBD.


>>
<<
Usr
Pri
JfC
LJ
Phr
Dic
Rel
Voc
!:
Help
User
Regular Expression Patterns
A simple description that covers POSIX regular expressions and ignores Perl extensions follows. See complete PCRE pattern documentation for more information.
A regular expression pattern is a sequence of elements which matches successive portions of a character string. For example, simple letters are elements which match the same characters in the string. The asterisk indicates that the previous element should be matched 0 or more times. So, a pattern of abcd must match in the string exactly; a pattern of ab*cd matches the letter a followed by 0 or more occurrences of the letter b , followed by the letters cd .
Characters
Non-special characters match exactly. Non-special characters are anything other than:
[ ] ( ) { } $ ^ . * + ? | \
A special character is included as simple text by preceding it with a backslash.
Character sets
The special character . matches any character (except the null character, 0{a. )
The special characters ^ and $ match the start and end of lines.
Sets of characters are defined by enclosing the list of characters in brackets:
[aeiou] matches a single vowel character
Ranges can also be included within the brackets:
[a-z] matches any lower case letter
Combinations of the above are acceptable:
[a-zA-Z13579] matches any lower case, upper case, or odd digit
Fixed sets (classes) of characters can be included in the list, as a name within bracket-colon pairs:
[#[:digit:]abc] matches the character # , a digit, or any of the letters a , b , or c
The character classes defined are:
alnum alphanumeric alpha alphabetic
blank tab+space cntrl control chars
digit digits graph printable (except space)
lower lowercase print printable
punct punctuation space whitespace
upper uppercase xdigit hex digits
If a set begins with ^ , then the pattern will match with any character not in the set.
Subexpressions
A series of elements may be combined by enclosing them in parenthesis. Subexpression are affected by closures such as * just as simple characters are:
([a-z][0-9])* matches any number of occurrences of a letter followed by a digit
The result of searches for a pattern return a match for the overall pattern, and a separate match for each subexpression
A \ followed by a digit, N, matches the same substring which occurred in the Nth subexpression:
([[:digit:]]+)#\1 matches one or more digits, followed by a # , followed by the same string of digits
Closures
A * following an element matches 0 or more occurrences of that element:
[aeiou]* matches 0 or more vowels
A + following an element matches 1 or more occurrences of that element:
[[:alpha:]]+ matches 1 or more alphabetic characters
A ? following an element matches 0 or 1 occurrences of that element:
-?[[:digit:]]+ matches an optional hyphen, followed by 1 or more digits
An interval expression, {m,n} , follows an element to allow it to match at least m, and no more than n, occurrences of the element:
[[:digit:]]{3,5} matches 3, 4, or 5 digits
Alternation
Multiple regular expressions can be separated with a vertical bar | to match any of them:
print|list|exit matches any of the strings print , list , and exit
Matches
When searching for a pattern in a string, it is possible to find multiple substrings which match the pattern. The one that is returned is the one which starts earliest in the string. If more than one match starts at the same place, the longest one is returned.
Even once a particular match is located, it is possible for there to be multiple combinations of the contents of the subexpressions which make it up. As a rule, whenever possible the subexpressions which begin earlier in the string will be as long as possible.
The result of a match is a table which describes the match. The first row covers the whole match, and subsequent rows describe where the subexpressions in the pattern match in the string. Each row has two elements: index of the first character of the start of the match, and the length of the match. Any row which doesn't participate in the match is filled with _1 0.
>>
<<
Usr
Pri
JfC
LJ
Phr
Dic
Rel
Voc
!:
Help
User


1 Chronicles 3:4
These six were born unto him in Hebron; and there he reigned seven years and six months: and in Jerusalem he reigned thirty and three years.


Simple relation constraints over Boolean variables
[Using finite domain integers]
Functions | |
| void | Gecode::rel (Home home, BoolVar x0, IntRelType r, BoolVar x1, IntConLevel icl=ICL_DEF) |
| Post domain consistent propagator for . | |
| void | Gecode::rel (Home home, BoolVar x0, IntRelType r, BoolVar x1, BoolVar b, IntConLevel icl=ICL_DEF) |
| Post domain consistent propagator for . | |
| void | Gecode::rel (Home home, const BoolVarArgs &x, IntRelType r, BoolVar y, IntConLevel icl=ICL_DEF) |
| Post doamin consistent propagator for for all . | |
| void | Gecode::rel (Home home, BoolVar x, IntRelType r, int n, IntConLevel icl=ICL_DEF) |
| Propagates . | |
| void | Gecode::rel (Home home, BoolVar x, IntRelType r, int n, BoolVar b, IntConLevel icl=ICL_DEF) |
| Post domain consistent propagator for . | |
| void | Gecode::rel (Home home, const BoolVarArgs &x, IntRelType r, int n, IntConLevel icl=ICL_DEF) |
| Propagates for all . | |
| void | Gecode::rel (Home home, const BoolVarArgs &x, IntRelType r, const BoolVarArgs &y, IntConLevel icl=ICL_DEF) |
| Post domain consistent propagator for relation between x and y. | |
| void | Gecode::rel (Home home, const BoolVarArgs &x, IntRelType r, IntConLevel icl=ICL_DEF) |
| Post domain consistent propagator for relation between elements in x. | |
| void | Gecode::rel (Home home, BoolVar x0, BoolOpType o, BoolVar x1, BoolVar x2, IntConLevel icl=ICL_DEF) |
| Post domain consistent propagator for Boolean operation on x0 and x1. | |
| void | Gecode::rel (Home home, BoolVar x0, BoolOpType o, BoolVar x1, int n, IntConLevel icl=ICL_DEF) |
| Post domain consistent propagator for Boolean operation on x0 and x1. | |
| void | Gecode::rel (Home home, BoolOpType o, const BoolVarArgs &x, BoolVar y, IntConLevel icl=ICL_DEF) |
| Post domain consistent propagator for Boolean operation on x. | |
| void | Gecode::rel (Home home, BoolOpType o, const BoolVarArgs &x, int n, IntConLevel icl=ICL_DEF) |
| Post domain consistent propagator for Boolean operation on x. | |
| void | Gecode::clause (Home home, BoolOpType o, const BoolVarArgs &x, const BoolVarArgs &y, BoolVar z, IntConLevel icl=ICL_DEF) |
| Post domain consistent propagator for Boolean clause with positive variables x and negative variables y. | |
| void | Gecode::clause (Home home, BoolOpType o, const BoolVarArgs &x, const BoolVarArgs &y, int n, IntConLevel icl=ICL_DEF) |
| Post domain consistent propagator for Boolean clause with positive variables x and negative variables y. |
Function Documentation
| void Gecode::rel | ( | Home | home, | |
| BoolVar | x0, | |||
| IntRelType | r, | |||
| BoolVar | x1, | |||
| IntConLevel | ||||
| ) |
Post domain consistent propagator for .
| void Gecode::rel | ( | Home | home, | |
| BoolVar | x0, | |||
| IntRelType | r, | |||
| BoolVar | x1, | |||
| BoolVar | b, | |||
| IntConLevel | ||||
| ) |
Post domain consistent propagator for .
| void Gecode::rel | ( | Home | home, | |
| const BoolVarArgs & | x, | |||
| IntRelType | r, | |||
| BoolVar | y, | |||
| IntConLevel | ||||
| ) |
Post doamin consistent propagator for for all .
| void Gecode::rel | ( | Home | home, | |
| BoolVar | x, | |||
| IntRelType | r, | |||
| int | n, | |||
| IntConLevel | icl = ICL_DEF | |||
| ) |
Propagates .
Throws an exception of type Int::NotZeroOne, if n is neither 0 or 1.
| void Gecode::rel | ( | Home | home, | |
| BoolVar | x, | |||
| IntRelType | r, | |||
| int | n, | |||
| BoolVar | b, | |||
| IntConLevel | icl = ICL_DEF | |||
| ) |
Post domain consistent propagator for .
Throws an exception of type Int::NotZeroOne, if n is neither 0 or 1.
| void Gecode::rel | ( | Home | home, | |
| const BoolVarArgs & | x, | |||
| IntRelType | r, | |||
| int | n, | |||
| IntConLevel | icl = ICL_DEF | |||
| ) |
Propagates for all .
Throws an exception of type Int::NotZeroOne, if n is neither 0 or 1.
| void Gecode::rel | ( | Home | home, | |
| const BoolVarArgs & | x, | |||
| IntRelType | r, | |||
| const BoolVarArgs & | y, | |||
| IntConLevel | icl = ICL_DEF | |||
| ) |
Post domain consistent propagator for relation between x and y.
Note that for the inequality relations this corresponds to the lexical order between x and y.
Throws an exception of type Int::ArgumentSizeMismatch, if x and y are of different size.
| void Gecode::rel | ( | Home | home, | |
| const BoolVarArgs & | x, | |||
| IntRelType | r, | |||
| IntConLevel | icl = ICL_DEF | |||
| ) |
Post domain consistent propagator for relation between elements in x.
States that the elements of x are in the following relation:
- if r = IRT_LE, r = IRT_LQ, r = IRT_GR, or r = IRT_GQ, then the elements of x are ordered with respect to r.
- if r = IRT_EQ, then all elements of x must be equal.
- if r = IRT_NQ, then not all elements of x must be equal.
| void Gecode::rel | ( | Home | home, | |
| BoolVar | x0, | |||
| BoolOpType | o, | |||
| BoolVar | x1, | |||
| BoolVar | x2, | |||
| IntConLevel | icl = ICL_DEF | |||
| ) |
Post domain consistent propagator for Boolean operation on x0 and x1.
Posts propagator for
| void Gecode::rel | ( | Home | home, | |
| BoolVar | x0, | |||
| BoolOpType | o, | |||
| BoolVar | x1, | |||
| int | n, | |||
| IntConLevel | icl = ICL_DEF | |||
| ) |
Post domain consistent propagator for Boolean operation on x0 and x1.
Posts propagator for
Throws an exception of type Int::NotZeroOne, if n is neither 0 or 1.
| void Gecode::rel | ( | Home | home, | |
| BoolOpType | o, | |||
| const BoolVarArgs & | x, | |||
| BoolVar | y, | |||
| IntConLevel | icl = ICL_DEF | |||
| ) |
Post domain consistent propagator for Boolean operation on x.
Posts propagator for
Throws an exception of type Int::TooFewArguments, if and o is BOT_IMP, BOT_EQV, or BOT_XOR.
| void Gecode::rel | ( | Home | home, | |
| BoolOpType | o, | |||
| const BoolVarArgs & | x, | |||
| int | n, | |||
| IntConLevel | icl = ICL_DEF | |||
| ) |
Post domain consistent propagator for Boolean operation on x.
Posts propagator for
Throws an exception of type Int::NotZeroOne, if n is neither 0 or 1.
Throws an exception of type Int::TooFewArguments, if and o is BOT_IMP, BOT_EQV, or BOT_XOR.
| void Gecode::clause | ( | Home | home, | |
| BoolOpType | o, | |||
| const BoolVarArgs & | x, | |||
| const BoolVarArgs & | y, | |||
| BoolVar | z, | |||
| IntConLevel | icl = ICL_DEF | |||
| ) |
Post domain consistent propagator for Boolean clause with positive variables x and negative variables y.
Posts propagator for
Throws an exception of type Int::IllegalOperation, if o is different from BOT_AND or BOT_OR.
| void Gecode::clause | ( | Home | home, | |
| BoolOpType | o, | |||
| const BoolVarArgs & | x, | |||
| const BoolVarArgs & | y, | |||
| int | n, | |||
| IntConLevel | icl = ICL_DEF | |||
| ) |
Post domain consistent propagator for Boolean clause with positive variables x and negative variables y.
Posts propagator for
Throws an exception of type Int::NotZeroOne, if n is neither 0 or 1.
Throws an exception of type Int::IllegalOperation, if o is different from BOT_AND or BOT_OR.


PART III. SOURCE SELECTION AND CONTRACT FORMATION
§103D-301 Methods of source selection. Unless otherwise authorized by law, all contracts shall be awarded pursuant to the following sections, as applicable:
(1) Section 103D-302 (Competitive sealed bids);
(2) Section 103D-303 (Competitive sealed proposals);
(3) Section 103D-304 (Professional services procurement);
(4) Section 103D-305 (Small purchases);
(5) Section 103D-306 (Sole source procurement); and
(6) Section 103D-307 (Emergency procurements). [L Sp 1993, c 8, pt of §2; am L 2013, c 239, §2]


*** User 2017-05-03 15:10:52.897 ***
15:10:52.897 [info] Disabling blocking sync...
*** User 2017-05-03 15:10:52.900 ***
15:10:52.900 [info] Configured peer_service_manager partisan_default_peer_service_manager on node 'node-1@antoine-PC'
*** User 2017-05-03 15:10:54.240 ***
15:10:54.240 [info] Enabling membership...
*** User 2017-05-03 15:10:54.241 ***
15:10:54.241 [info] Disabling blocking sync...
*** User 2017-05-03 15:10:54.244 ***
15:10:54.244 [info] Configured peer_service_manager partisan_default_peer_service_manager on node 'node-2@antoine-PC'
*** User 2017-05-03 15:10:55.581 ***
15:10:55.581 [info] Enabling membership...
*** User 2017-05-03 15:10:55.582 ***
15:10:55.582 [info] Disabling blocking sync...
*** User 2017-05-03 15:10:55.585 ***
15:10:55.585 [info] Configured peer_service_manager partisan_default_peer_service_manager on node 'node-3@antoine-PC'
*** User 2017-05-03 15:10:55.747 ***
Joining node: 'node-3@antoine-PC' to 'runner@antoine-PC' at port 59944
*** User 2017-05-03 15:10:55.748 ***
Joining issued: 'node-3@antoine-PC' to 'runner@antoine-PC' at port 59944
*** User 2017-05-03 15:10:55.748 ***
Joining node: 'node-2@antoine-PC' to 'runner@antoine-PC' at port 33009
*** User 2017-05-03 15:10:55.748 ***
Joining issued: 'node-2@antoine-PC' to 'runner@antoine-PC' at port 33009
*** User 2017-05-03 15:10:55.748 ***
Joining node: 'node-1@antoine-PC' to 'runner@antoine-PC' at port 47137
*** User 2017-05-03 15:10:55.748 ***
Joining issued: 'node-1@antoine-PC' to 'runner@antoine-PC' at port 47137
*** User 2017-05-03 15:10:55.810 ***
Waiting for join to complete with manager: partisan_default_peer_service_manager
*** User 2017-05-03 15:10:55.810 ***
Finished.
*** CT 2017-05-03 15:10:55.810 *** COVER INFO
Adding nodes to cover test: ['runner@antoine-PC']
*** CT 2017-05-03 15:10:55.815 *** COVER INFO
Successfully added nodes to cover test: []
*** User 2017-05-03 15:10:56.232 ***
Case finished: union_test
*** User 2017-05-03 15:11:03.256 ***
15:11:03.256 [info] Application lasp exited with reason: stopped
*** User 2017-05-03 15:11:03.256 ***
15:11:03.256 [info] Application partisan exited with reason: stopped
=== Ended at 2017-05-03 15:11:03
=== successfully completed test case
=== Returned value: ok
Test run history
| Top level test index


If you update your gokrazy installations daily, as we recommend you do, logs will be cleared daily as a side effect of rebooting the device. You can use Remote Syslog to persist logs elsewhere for later analysis.
To enable remote syslog, you need to configure a target by creating the file
remote_syslog/target
on the permanent data partition.
# The following assumes you already created a file system
# on the permanent data partition. Otherwise, please use:
# sudo mkfs.ext4 /dev/disk/by-partuuid/2e18c40c-04
sudo mount /dev/disk/by-partuuid/2e18c40c-04 /mnt
echo <IP_ADDRESS>:514 | sudo tee /mnt/remote_syslog/target
sudo umount /mnt
I recommend using a (static) IP address for increased reliability, so that remote syslog works even when DNS does not.
This is how I instruct syslog-ng via
its /etc/syslog-ng/syslog-ng.conf
to write syslog messages it received from
e.g. host gokrazy
to /var/log/remote/gokrazy-log
:
source net { network(ip(<IP_ADDRESS>) transport("udp")); };
destination remote { file("/var/log/remote/${FULLHOST}-log"); };
log { source(net); destination(remote); };


Register
First Name:
Last Name:
Male
Female
Other
Email:
Password:
Birthday:
January
February
March
April
May
June
July
August
September
October
November
December
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1992
I agree to the terms and conditions


A class having a constructor that takes a JsonValue pointer is JsonConstructible .
A user-defined class defined with a json attribute is a JsonConstructible class.


While we're talking about width, we should talk about width's big zastrzeżenie: the box model. When you set the width of an element, the element can actually appear bigger than what you set: the element's border and padding will stretch out the element beyond the specified width. Look at the following example, where two elements with the same width value end up different sizes in the result.
For generations, the solution to this problem has been extra math. CSS authors have always just written a smaller width value than what they wanted, subtracting out the padding and border. Thankfully, you don't have to do that anymore...


| env {rlang} | R Documentation |
These functions create new environments.
env()
creates a child of the current environment by default
and takes a variable number of named objects to populate it.
new_environment()
creates a child of the empty environment by
default and takes a named list of objects to populate it.
env(...) child_env(.parent, ...) new_environment(data = list(), parent = empty_env())
..., data |
<dynamic> Named values. You can supply one unnamed to specify a custom parent, otherwise it defaults to the current environment. |
.parent, parent |
A parent environment. Can be an object
supported by |
Environments are containers of uniquely named objects. Their most common use is to provide a scope for the evaluation of R expressions. Not all languages have first class environments, i.e. can manipulate scope as regular objects. Reification of scope is one of the most powerful features of R as it allows you to change what objects a function or expression sees when it is evaluated.
Environments also constitute a data structure in their own right. They are a collection of uniquely named objects, subsettable by name and modifiable by reference. This latter property (see section on reference semantics) is especially useful for creating mutable OO systems (cf the R6 package and the ggproto system for extending ggplot2).
All R environments (except the empty environment) are defined with a parent environment. An environment and its grandparents thus form a linear hierarchy that is the basis for lexical scoping in R. When R evaluates an expression, it looks up symbols in a given environment. If it cannot find these symbols there, it keeps looking them up in parent environments. This way, objects defined in child environments have precedence over objects defined in parent environments.
The ability of overriding specific definitions is used in the
tidyeval framework to create powerful domain-specific grammars. A
common use of masking is to put data frame columns in scope. See
for example as_data_mask()
.
 This means that if you
have multiple references to a given environment (by assigning the
environment to another symbol with <-
or passing the environment
as argument to a function), modifying the bindings of one of those
references changes all other references as well.
child_env()
is in the questioning stage. It is redundant now
that env()
accepts parent environments.
# env() creates a new environment which has the current environment # as parent env <- env(a = 1, b = "foo") env$b identical(env_parent(env), current_env()) # Supply one unnamed argument to override the default: env <- env(base_env(), a = 1, b = "foo") identical(env_parent(env), base_env()) # child_env() lets you specify a parent: child <- child_env(env, c = "bar") identical(env_parent(child), env) # This child environment owns `c` but inherits `a` and `b` from `env`: env_has(child, c("a", "b", "c", "d")) env_has(child, c("a", "b", "c", "d"), inherit = TRUE) # `parent` is passed to as_environment() to provide handy # shortcuts. Pass a string to create a child of a package # environment: child_env("rlang") env_parent(child_env("rlang")) # Or `NULL` to create a child of the empty environment: child_env(NULL) env_parent(child_env(NULL)) # The base package environment is often a good default choice for a # parent environment because it contains all standard base # functions. Also note that it will never inherit from other loaded # package environments since R keeps the base package at the tail # of the search path: base_child <- child_env("base") env_has(base_child, c("lapply", "("), inherit = TRUE) # On the other hand, a child of the empty environment doesn't even # see a definition for `(` empty_child <- child_env(NULL) env_has(empty_child, c("lapply", "("), inherit = TRUE) # Note that all other package environments inherit from base_env() # as well: rlang_child <- child_env("rlang") env_has(rlang_child, "env", inherit = TRUE) # rlang function env_has(rlang_child, "lapply", inherit = TRUE) # base function # Both env() and child_env() support tidy dots features: objs <- list(b = "foo", c = "bar") env <- env(a = 1, !!! objs) env$c # You can also unquote names with the definition operator `:=` var <- "a" env <- env(!!var := "A") env$a # Use new_environment() to create containers with the empty # environment as parent: env <- new_environment() env_parent(env) # Like other new_ constructors, it takes an object rather than dots: new_environment(list(a = "foo", b = "bar"))


- New Releases
- Men
- Women
- Kids
- Sale
- Services
- Help
- About
Have you ever desired to wear executive and classy clothing items that give you outstanding outfits every time? Have you ever dreamed of wearing shoes that leave you looking exquisite? Then you are in the right place. Our shoes are strong and reliable but most importantly, affordable and pocket friendly. Shop through our large collection of high quality bag, bags , shoes and accessories for men, women and children.
Shoes, Watches..
$999
Bespoke Suits..
Starting from $1699
Sunshades, Men's Watches..
Only for $999
Sunshades, Men's Watches..
Only for $699
Sunshades, women's Watches..
Only for $999
Sunshades, Men's Watches..
Only for $499


Jello: Audit log
Board
Connect
Disconnect
Who
When
Object
Action
Id
Title
Description
Created
Swimlane


Empires of Steel is a turn-based wargame.
Players take the role of a dictator/general in control of a nation and commanding military forces against other nations.
The goal of the game is to take control of the game world, either as a single player or as a team.
In a typical game, each player begins the game in control of a single, small, island nation.
Each nationís technology is roughly equivalent to technology in the year 1900, and players will
know very little about the world around them. The first thing player will want to do is find
and capture the cities and resources around them. Cities are used to construct new military units, which
are used to fight other nations and capture new cities. Resources, including oil, food, and iron, are used
to support a nation's cities and military.
In multiplayer games, you will gain a great deal by forming alliances and non-aggression pacts with other players. This becomes especially important as the number of players increases. Forming these relationships can allow you to attack a third player, allow you to reduce your defenses along your common border, and engage in mutually benefitial trade.
Your nation needs raw resources. Food and Oil is required by your cities and military. Iron is necssary for construction of new units. Money is needed for research. Shortages of these three resources can undercut your military strength; Oil shortages reduce your citiesí production capability and slow your units, food shortages can cause famine which permanently weakens your cities and units, and iron shortages prevent the construction of new units. A lack of money harms technology research and prevents the upgrading of units. All resources can be bought or sold for money.
When the game begins, each player starts with technology roughly equivalent to technology in the year 1900. Nations can spend money to learn new technologies, providing it with better units. Failure to research new technology can lead to a situation where one nation futilely sends outdated units against another nation's advanced weapons.
CitiesCities are the production centers of nations. They can produce new units and money. They are the most important piece in the game, so players should attempt to control as many cities as possible. |
ResourcesResources are raw materials consumed by nations. Oil is consumed by cities and units. Units only consume oil when they move, so one way to conserve oil is to avoid moving units. Food is consumed by cities and units. A shortage leads to permanent damage of cities and units. Iron is used when building new units. A shortage of iron prevents construction of new units. Gold is turned into money. Money is used for technology research, unit upgrades, and can be used to buy and sell other resources. |
Airfields
Infantry units can build airfields. They serve as take-off and landing locations for aircraft.
 Units are used to capture new cities, resources, and ultimately,
win the game. Initially, players will have access to a few, relatively primitive units.
As a nation's technology grows, it gains access to faster, more powerful units.
Players will initially start with two ground units (infantry, artillery), one air unit (zeppelin), and
several ships (destroyer, cruiser, transport, freighter).
|
Related Topics:
Table of Contents


Serving HTML files is easy with express
First simply define a get method with the desired url
app.get("/serving_html", (req, res) => {
res.sendFile(__dirname + "/public/serving_html/serving_html.html");
});
notice that we use the sendFile() function here instead of the previous send()
__dirname is an environment variable that tells you the absolute path of the directory containing the currently executing file.
if the HTML files you are sending to the client are using other files such as images, css, or client-side JavaScript,
you can include a directory in which these files are stored to be served statically.
Just add this line of code to your code
app.use(express.static('public'))
where 'public' is the name of the folder containing the files to be served statically
That's it for now
I might add some more on jquery and DOM manipulation at a later time


Set clip planes using distance from the View Reference Point:
Hitherclip everything this side of the plane
Yonclip everything beyond the plane
Set lighting parameters:
Ambientintensity of ambient light - default = 1
Sourceintensity of point source - default = 1
X distancedistance of source in X dir.
Y distancedistance of source in Y dir.
Z distancedistance of source in Z dir.
Note - distances are in ruler inches:drawing.


{% extends "base.html" %} {% block page_title %}Contact{%endblock%} {% block title %}Password reset successful{% endblock %} {% block extra_content %} We've e-mailed you instructions for setting your password to the e-mail address you submitted. You should be receiving it shortly. Click here to Login {%endblock%}


pySIML is designed to compute chemical similarities according to the LINGO method [Vidal05] [Grant06]. LINGO, strictly speaking, is a text-similarity algorithm (similar to the d-squared algorithm for sequence comparison); it is mapped to chemical similarites by representing molecules in some textual format. LINGO characterizes a molecule by taking its textual representation (typically a canonical or canonical-isomeric SMILES string), and breaking it into all its 4-character substrings. To compare two molecules, each is fragmented into its component substrings, and the similarity between the two is defined as:
Or, more technically, consider each molecule A and B to be a multiset, or bag, of these fragments (known as “Lingos”). The Tanimoto similarity between A and B is defined as
Several efficient algorithms to calculate LINGO similarities exist (e.g., [Grant06]), which work especially well when comparing a large number of molecules to only one single candidate molecule. SIML targets a slightly different application area, in which multiple molecules will be compared against the same set of “query” or “database” molecules, either at the same time or sometime in the future (by storing precalculated values). By precalculating part of the computation, SIML saves a large amount of computer time for these repeated searches. Additionally, it allows fast implementation on both standard processors (CPUs) as well as graphics cards (GPUs) and similar vector processors. For more details on the SIML algorithm, please see the publication (pending).
All LINGO algorithms do some preprocessing on the SMILES strings they are given. Typically, ring closure digits will be set to zero (to normalize ring assignment); in some variants (e.g. [Vidal05]), atom names will also be remapped. SIML implements two preprocessing methods, described in Preprocessing SMILES in pySIML.
The motivating task for pySIML is the calculation of a Tanimoto matrix, or matrix whose entries are chemical similarities. Each row corresponds to a molecule from a set called the reference set, and each column to a molecule from the query set. Given a Tanimoto matrix T, the entry at (row i, column j) is the similarity between reference molecule i and query molecule j.
This model is adaptable to a diverse set of problems in cheminformatics. Performing a database screen (in which one molecule is compared to many others) can be described as calculating a Tanimoto matrix of size 1 x N (one reference molecule, and a number of query molecules equal to the size of the database). A self-similarity matrix, as might be used for clustering a molecule set, corresponds to the creation of an N x N matrix, where the reference and query sets are identical. Finally, a multiple-screen or cross-similarity comparison, in which two distinct sets are compared to each other in an all-pairs manner, is an M x N matrix problem, with M and N being the size of either set.
In addition to the Tanimoto matrices SIML produces as its output, it takes matrices called SMILES sets as input. SIML’s preprocessor/compiler code takes sets of SMILES strings, and converts them to a numerical matrix representation called a SMILES set. Each SMILES set contains 2 matrices and 2 vectors:
- One Lingo matrix contains numerical representations of the Lingos in each SMILES string. Each input SMILES string corresponds to one row in the Lingo matrix.
- One count matrix contains the multiplicity of each Lingo in the Lingo matrix. Each input SMILES string corresponds to one row in the count matrix.
- One length vector contains the number of distinct Lingos in each molecule.
- One magnitude vector contains the total number of Lingos (distinct or not) in each molecule.
In general, it is not important to worry about the internal details of these representations. However, what is useful to know is that it is possible to construct unions and subsets of these SMILES sets. The following code example demonstrates:
# lingos, counts, lengths, and mags have been initialized as a SMILES set
lingoSub = lingos[0:10,:]
countSub = counts[0:10,:]
lengthSub = lengths[0:10]
magSub = mags[0:10]
# lingoSub, countSub, lengthSub, and magSub together now constitute a
# SMILES set for the first ten molecules from the original set
These SMILES sets are constructed from SMILES strings by the pySIML compiler routines (Preprocessing SMILES in pySIML).


GAME
WORLD
LATEST RELEASES
March 23, 2017
A ridiculously intense battle royale, garuanteed to get you hooked.
BUY NOW
21/11/2018
for only $55.90
BUY NOW
21/11/2018
Lorem ipsum dolor sit amet consectetur adipisicing elit. Placeat impedit aperiam harum.
BUY NOW


Classes
AlloyAtom
AlloyElement
AlloyInstance
AlloyModel
AlloyNodeElement
AlloyProjection
AlloyRelation
AlloySet
AlloyTuple
AlloyType
StaticGraphMaker
StaticInstanceReader
StaticProjector
StaticThemeReaderWriter
VizCustomizationPanel
VizGraphPanel
VizGUI
VizState
VizTree |


Changelog
20090311 - v1.3.0<EMAIL_ADDRESS>* Support for list operations in JSON/XML
* Added support for FileInfo automatic Content-Type/MIME detection
* Workaround for cURL's old CA bundle with CF_Connection->ssl_use_cabundle()
* Supports limit/marker on Account and Container lists
* Support "pathname" traversal on Container lists
* Helper function on Container to create directory marker Objects
* Support for chunked transfer on PUT requests
* TODO Support/tested on Windows XP (PHP v5.2.9)
20081210 - v1.2.3<EMAIL_ADDRESS>* Improved in-line comments and generated HTML docs
* Callbacks for read/write progress on CF_Connection class
* Fixed minor bugs
* Started this Changelog
|


I’ve had the city break bug since I nipped to Amsterdam a couple of months ago, and since grand expeditions to South-East Asia or the Amazon aren’t really on the cards for a weekend on a student’s budget – a weekend in Scandinavia seemed like a great choice to continue on from Holland. Realistically though, my choice of destination was largely influenced by easyJet’s pricing scheme. Gotta love that airline.
It was surreal just upping sticks on the Friday night, and being back for lectures on the Monday morning – slotting straight back into the routine. You collapse on the sofa when you get back and just think, “shit, I’ve just been to Denmark”.
Both Denmark and Sweden made a different impression on me to Amsterdam. Everything was super clean, and efficient – and we were as much interested in the clever gadgetry woven into the fabric of the city as the famous Danish design and architecture. Amsterdam had an underlying sense of dirty humour, Scandinavia generally seems a lot more traditional and sensible.
One thing that was really strange and unexpected was that, walking around Copenhagen, I was reminded of when I went to America. It sounds absurd: the temperature neared 0°, the culture was blatantly European, and people tended to walk or cycle from A to B.
But the roads were wide enough to accommodate 6 lanes, there were 7-Elevens _everywhere _(stocking proper Mountain Dew, an addiction of mine since Michigan), and there was an underlying feel of Americanisation. Take our hostel. It was 18 stories high. US-esque tower block on the outside, but inside we had a room straight out of an Ikea catalogue (I know that’s in fact Swedish and rather generalist, but you get the idea).
Saturday morning was the crossing of the border to Malmö (I discovered it was pronounced more like Mal-mer, not Mal-moh as my English tourist logic wrongly believed). We were only there for a few hours, but we managed to have a good walk around, seeing several landmarks including Malmö castle, which we all mistook for a warehouse, or an abandoned factory. It wasn’t a dazzling structure. Safe though, I bet.
Some highlights however were tasting some Swedish kanelbulle (a cinnamon roll, I raided every cafe in sight for them after sampling my first one), and witnessing the extraordinarily intriguing street performer pictured above.
Back in Copenhagen, it was time for an all-you-can-eat pizza extravaganza, before heading onwards to a theme park (always a good decision). The Danes hit Christmas hard, I can say that. It was mid-November, and Tivoli Gardens was the most concentrated example of pure Christmas I think I’ve ever seen. It makes the Bristol effort look like the decorations bin at Poundland. There was a scale model of the Moscow Kremlin, a pyramid of bears, a laser light show across the water, and a few quirky rides which cost a billion pounds each to ride on. A couple of us went on one, which we lovingly referred to as the ARM Experience (it had a big swinging arm). It was worth the billion pounds.
By this point, we were running out of kroner. I’m not sure if the exchange rate favours the Danes, or whether it’s just an expensive place to be in. A bit of both, perhaps. But still, £5.50 for the cheapest pint… come on, now.
We spent the last day doing as much walking as possible to pack in the city sights. We saw the changing of the guard at Amalienborg Palace, I went up the Rundetårn for a cracking view of the city, saw the Little Mermaid statue (standard tourist choice, but it was the only thing I knew about the city prior to coming – it’s actually really tiny), and visited the Danish History Museum, amongst other things. Before long, it was time to head off back down South and West to the UK.
It was a great trip, truly, and for ~£100 all-in for the cost of going, sleeping and coming back – it was very affordable (conveniently omitting the fact that it becomes significantly less affordable should you want to spend any money there!). It would be interesting to see the place in the Summer, for a whole different perspective to the Christmassy and crisp November.
Where next though, who knows!


|
| Contents | |
| About This Extension |
The term "ducking", as it is used in the radio broadcasting profession, refers to the technique of reducing the volume level of the primary audio content so that an announcer can interject commentary and be heard clearly. Typically, the primary audio content continues while the announcer is speaking in order to create a smoother and less jarring experience. This technique also has the convenience of not requiring that it be possible to pause the primary audio content - particularly useful in live broadcasting situations.
In the broadcasting profession, ducking is typically implemented in an automatic manner using specialized audio processing hardware, so as to take the burden of managing audio levels off the announcer. In the same way that such audio hardware takes the burden off the announcer, so the Ducking extension takes the burden off developers of sonified content.
The Ducking extension provides methods for linking instances to one another and setting up automated ducking relationships. If you were to hand code these behaviors into each sonification project, a good deal of time would be spent with this rather mundane and mechanical aspect of the sonification, instead of being able to spend more time on the creative aspects. The Ducking extension lifts a major burden from you and lets you get down to the stuff that really counts - exercizing the skills of sound design, musical composition, and interactive audio conceptualization.
One way you could add emphasis to a particular audio element in sonified content would be to wire it up to other Music Object instances that may be playing audio at the time that the element is triggered, so that the other audio that is playing is ducked by a small amount - just enough so that the element you're trying to emphasize stands out, and gentle enough so that the effect is almost imperceptible to the user and is not abrupt or jarring in any way.
If you are developing a sonified Web site where spoken phrases may be triggered by certain user interface elements, then background music for the site may hamper the intelligibility of the speech. If sacrificing the site's background music is just not an option, then the Ducking extension can be used to allow the spoken user interface sonification and the background music to coexist.
Using this extension, the Music Object instances that are to play the spoken phrases can be wired up as ducking masters for any Music Object instances that are to play background music. Because the Ducking extension lets you customize the amount of volume attenuation that is applied during ducking, the background music could be ducked just enough to make the spoken phrases intelligible, while still allowing the background music to be heard.
Audio adds a powerful element to advertising on Web sites that can help to strengthen brand identity for banner ads and other types of Web advertising. Television viewers and radio listeners, for example, are often able to recognize a specific company or product that is being advertised purely by the audio logo that plays along with a commercial. However, advertisers may be very sensitive to how a company's or product's signature audio logo is mixed in along with other distracting audio elements or themes. In fact, anything that dilutes or detracts from the identity of an audio logo may be considered unacceptable.
In such cases, the Music Object instances that are to play audio logos for advertising can be wired up as ducking masters for any Music Object instances that are to play background music or any other elements of the sonification. The amount of volume attenuation that is applied during ducking can be set in such a way that that any distracting audio elements are completely silenced while an advertising logo plays.
In many cases - even when the integrity of audio branding or the intelligibility of spoken word is not of great concern - playing a musical jingle along with a musical background theme may simply create an unpleasant and jarring cacophony. Unless such a jingle is perfectly synchronized with the background music and is in the same musical key, the two playing together is likely to sound aweful - to say the least.
In such cases, it may be appropriate to fully duck all background music while a musical jingle plays. Any Music Object instances that are to play musical jingles can be wired up as ducking masters for any Music Object instances that are to play background music, so that background music is completely silenced while a jingle plays.
Ducking is, in essence, a master-slave relationship. If a Music Object instance is configured in a ducking relationship as a slave, then that instance will be ducked while its master is audible. When the ducking master becomes audible, it issues an "order" to the slave. The slave, in turn, does its master's bidding by "obeying" this order to reduce its volume. When the master becomes inaudible once again, it "grants" permission to its slave to restore its original volume level so that it may once again be fully heard. So, a ducking slave is affected during a ducking process while a ducking master is not.
The Ducking extension is very flexible and allows a ducking slave to have multiple ducking masters, and also allows a ducking master to have multiple ducking slaves (see the section Complex Ducking Relationships).
Because ducking is, by definition, a process that affects volume, a sensible way had to be found to achieve the desired volume attenuation. One possible approach would be to use a Music Object instance's main volume setting, that can be set using the VOLUME embedding property or the setVolume instance method). However, because this main volume setting is often used to balance out the mix of various sonification elements in a page, using this setting could be quite obstructive to developing sonified content, since ducking processes would overwrite this volume setting and possibly even "fight" with other code for control over it.
Instead, the Ducking extension uses the system of custom volume scalars (see the section Important Concepts: Custom Volume Scalars) in order to achieve the desired volume attenuation in a way that respects a Music Object instance's main volume setting. When the Ducking extension is used, a dedicated volume scalar is assigned to each Music Object for the purpose of ducking. A single volume scalar is assigned to a Music Object instance, regardless of how many ducking masters the instance may have. If an instance has multiple ducking masters that are audible, then the multiple concurrent ducking tasks for that instance will cooperate with each other in setting the level of the instance's ducking volume scalar (see the section Multiple Concurrent Ducking).
The Ducking extension assigns a dedicated volume scalar named "[R]ducking" to each Music Object instance. If you are creating your own custom volume scalars, you should never choose names that begin with the text "[R]", since this prefix is used by the Music Object API for its own reserved volume scalars (see the section Custom Volume Scalars: Reserved Volume Scalars).
For a simple ducking relationship where one Music Object instance has only one ducking master, a ducking process is triggered for the instance when the instance's ducking master becomes audible, and this ducking process is then released when the ducking master once again becomes inaudible.
While ducking is in progress, the level of the slave instance's dedicated ducking volume scalar is faded appropriately in order to achieve the desired pattern of volume attenuation for the instance. The following diagram illustrates a simple ducking process by contrasting elapsed time (on the X axis) against the value of the ducking volume scalar (on the Y axis). The timeline is divided up into discrete sections, indicating the different phases that make up a simple ducking process. These phases are described in more detail below the illustration.
Before ducking is triggered for the slave instance (ie. while the ducking master is inaudible), its ducking volume scalar remains set to the value 100. Set at this value, the ducking volume scalar has no effect on the instance's overall output volume (as returned by the getOutputVolume instance method).
Ducking for the slave instance is triggered immediately when the instance's ducking master becomes audible. So that the ducking effect does not sound too abrupt, the Ducking extension provides a way to customize the amount of time that it should take for the slave instance's ducking volume scalar to fade from the value 100 down to the ducking sustain level. This fade time is referred to as the "attack time", and can be specified using the AttackTimeMsINT parameter when creating ducking relationships.
It is usually appropriate to set quite a short attack time so that there is not too much audio overlap between master and slave, with the slave still being heard while it is fading out and while its master has already started playing. In the example shown in the diagram, the attack time is set to 250ms (a quarter of a second).
After ducking for the slave instance has been triggered, and after the attack time has elapsed, the ducking process enters into the sustain phase. By this point, the value of the slave instance's ducking volume scalar has completed fading down to the sustain level. During the entire sustain phase, the ducking volume scalar is sustained at the same level. There is no set duration for the sustain phase. Instead, the sustain phase lasts for as long as the ducking master remains audible. In the example shown in the diagram, the sustain phase lasts for 1750 milliseconds (one and three quarters of a second).
In order to allow for different levels of volume attenuation in different kinds of ducking applications, the Ducking extension lets you specify the degree of attenuation that is to be applied while an instance is being ducked. This attenuation (referred to as "sustain level") is expressed as a percentage of original volume level, and can be specified using the SustainLevel0to100 parameter when creating ducking relationships.
So, for instance, a sustain level of 0 would indicate a severe attenuation, where the slave instance will be attenuated to 0% of its original volume level when it is being ducked. On the other hand, a level of 50 would indicate a gentler attenuation, where the slave instance will be attenuated to 50% of its original volume level when it is being ducked. In the example shown in the diagram, the sustain level is set to 20% (one fifth of original volume level).
Ducking for the slave instance is released immediately when the instance's ducking master once again becomes inaudible. So that the ducking effect does not sound too abrupt, the Ducking extension provides a way to customize the amount of time that it should take for the slave instance's ducking volume scalar to fade from the ducking sustain level back up to the full 100. This fade time is referred to as the "release time", and can be specified using the ReleaseTimeMsINT parameter when creating ducking relationships.
It is usually appropriate to set a relatively long release time, so that the release phase is gentle on the ear as the slave fades back in. In the example shown in the diagram, the release time is set to 1000ms (one second).
Ducking is finally completed for the slave instance after the release phase is over and the value of the slave instance's ducking volume scalar has completed fading back up to the value 100 that was set before ducking began. Set at this value, the ducking volume scalar once again has no effect on the instance's overall output volume, and the slave instance awaits the next ducking process.
The Ducking extension is very flexible and allows a ducking slave to have multiple ducking masters, and also allows a ducking master to have multiple ducking slaves.
For a complex ducking relationship where one Music Object instance has multiple ducking masters, a ducking process is triggered for the instance when one or more of the instance's ducking masters become audible, after all the ducking masters were previously inaudible. A ducking process for the instance is effectively only released when all of the instance's ducking masters become inaudible, after some of the ducking masters were previously audible.
With the Ducking extension it is possible for one ducking slave to have multiple ducking masters. It is, therefore, possible for a slave to be ducked by more than one master at the same time. In such cases, the Ducking extension must resolve multiple separate requests to control the value of the slave's ducking volume scalar. In order to do this, the Ducking extension uses the following two rules...
A ducking slave should not have its volume attenuated to a level that is any lower than is necessary in order to satisfy the desires of all active ducking tasks that are controlling it. So, for example, if there are two ducking tasks controlling a slave, and the one task would like attenuation down to 30% of original volume level while the other task would like attenuation down to 20% of original volume level, then attenuation should be 20% while both tasks are active. Attenuation should not be down to 20% of 30% (ie. 6%) simply because there are two ducking tasks controlling the slave, since neither of the ducking tasks require that the slave be attenuated so extremely.
A ducking slave should not have its volume attenuated to a level that is any higher than the lowest level desired by any of the slave's active ducking tasks. If there is any ducking task active and that ducking task would like the slave to be attenuated to a certain level, no other concurrent ducking task should be able to set the ducking volume scalar to a level that is higher. The lowest is the safest.
What these two rules amount to, essentially, is the melding together of all envelopes for concurrent ducking tasks into one envelope, by always taking the minimum value out of all active ducking tasks at any point in time.
The following diagram illustrates how the Ducking extension handles concurrent ducking tasks, and how the value of the ducking volume scalar is derived from these ducking tasks. In order to keep things fairly simple, this diagram only shows the combination of two ducking tasks, but these very same principles can be applied to any number of concurrent ducking tasks. The two ducking tasks shown are triggered at different times, released at different times, and have different settings for attack time, sustain level, and release time.
In the diagram, the green lines and annotations indicate ducking task A, while the blue lines and annotations indicate ducking task B. The purple lines that lie beneath both the green and blue lines indicate the level that would be set as a result of the combination of ducking task A and ducking task B. Notice how this line tracks the combined minimum values out of the two concurrent ducking tasks.
Don't be thrown off by the small vertical gap between the purple line and the green and blue lines. This gap is only provided to help distinguish between the different color lines and to make the diagram easier to view, but it should be interpreted that these lines that are shown so close together are directly on the same values for ducking scalar level.
Every effort has been made in the design of the Music Object API, to design the different extensions in such a manner that they can interoperate with each other in useful and practical ways. One case in point is the Clip extension, which provides not only a very handy way of getting access to an individual Music Object instance that services the needs of a specific Music.Clip object instance, but also a handy way of accessing the entire list of Music.Clip object instances created in a page - regardless of how those instances were created.
Consequently, if you were creating a preview page using the Clip extension and you also wanted to have background music playing on that page, then you could quite easily use the Ducking extension to wire the Music Object instances for all the clips to the Music Object instance that will be playing the background music. The code to do this might look as follows...
for (var clipNo = 0; clipNo < Music.Clip.instances.length; clipNo++) { backgroundMO.addDuckingMasters (Music.Clip.instances [clipNo].musicObject); } |
In the above sample code snippet, it is assumed that the Clip extension and the Ducking extension have been sourced in, that all the Music.Clip object instances have been created, that the background music's Music Object instance has been created, etc.
| What's New in the Latest Version |
There is a dedicated version history for this extension, where you will be able to find out about the new features and possible issues with the most recent version. The version history for this extension is independent of the version history for the core Music Object API.
| Getting This Extension |
To get the "music-object-x-ducking.js" JavaScript file that implements this extension, simply right-click on this link (click-and-hold for Mac users). Then, from the menu that pops up, select the 'Save Link As...' or 'Save Target As...' option and save the file as "music-object-x-ducking.js" into an appropriate folder of the local copy of your Web site.
In case you have problems saving the file using the above link, the "music-object-x-ducking.js" file can also be found inside the documentation's "javascript" folder, along with the "music-object.js" file.
| Dependencies |
In order to use this extension, the following JavaScript file(s) must first be sourced in...
For more information on using extensions, consult the section About Music Object Extensions.
| Reference |
|
| Instance Methods |
| addDuckingMasters |
|
The addDuckingMasters instance method lets you add ducking masters for a Music Object instances.
|
addDuckingMasters ( DuckingMastersARRAYorOBJ , AttackTimeMsINT , SustainLevel0to100 , ReleaseTimeMsINT ) |
When no ReleaseTimeMsINT parameter is specified, then the default value of 1500 will be used for this parameter.
When there is also no SustainLevel0to100 parameter specified, then the default value of 0 will be used for this parameter.
When there is also no AttackTimeMsINT parameter specified, then the default value of 200 will be used for this parameter.
When there is also no DuckingMastersARRAYorOBJ parameter specified, then all Music Object instances currently created in the document - excluding the instance on which this method is being called - will be added as ducking masters for the instance.
| addDuckingSlaves |
|
The addDuckingSlaves instance method lets you add ducking slaves for a Music Object instances.
|
addDuckingSlaves ( DuckingSlavesARRAYorOBJ , AttackTimeMsINT , SustainLevel0to100 , ReleaseTimeMsINT ) |
When no ReleaseTimeMsINT parameter is specified, then the default value of 1500 will be used for this parameter.
When there is also no SustainLevel0to100 parameter specified, then the default value of 0 will be used for this parameter.
When there is also no AttackTimeMsINT parameter specified, then the default value of 200 will be used for this parameter.
When there is also no DuckingSlavesARRAYorOBJ parameter specified, then all Music Object instances currently created in the document - excluding the instance on which this method is being called - will be added as ducking slaves for the instance.
| getUsage |
|
The getUsage instance method returns a string value, indicating the usage mode for the Music Object instance
| getUsage ( ) |
| UsageSTR |
| removeDuckingMasters |
|
The removeDuckingMasters instance method lets you remove ducking masters from a Music Object instance.
| removeDuckingMasters ( DuckingMastersARRAYorOBJ ) |
When no DuckingMastersARRAYorOBJ parameter is specified, then all Music Object instances currently created in the document - excluding the instance on which this method is being called - will be removed as ducking masters from the instance.
| removeDuckingSlaves |
|
The removeDuckingSlaves instance method lets you remove ducking slaves from a Music Object instance.
| removeDuckingSlaves ( DuckingSlavesARRAYorOBJ ) |
When no DuckingSlavesARRAYorOBJ parameter is specified, then all Music Object instances currently created in the document - excluding the instance on which this method is being called - will be removed as ducking slaves from the instance.
| setUsage |
|
The setUsage instance method lets you set the usage mode for the Music Object instance.
| setUsage ( UsageSTR ) |
| Static Methods |
| Music.addDuckingRelationships |
|
The Music.addDuckingRelationships static method lets you conveniently add many ducking slaves to many ducking masters in a single operation.
|
Music.addDuckingRelationships ( DuckingMastersARRAYorOBJ , DuckingSlavesARRAYorOBJ , AttackTimeMsINT , SustainLevel0to100 , ReleaseTimeMsINT ) |
When no ReleaseTimeMsINT parameter is specified, then the default value of 1500 will be used for this parameter.
When there is also no SustainLevel0to100 parameter specified, then the default value of 0 will be used for this parameter.
When there is also no AttackTimeMsINT parameter specified, then the default value of 200 will be used for this parameter.
When there is also no DuckingSlavesARRAYorOBJ parameter specified, then all Music Object instances currently created in the document - excluding those instances specified by the DuckingMastersARRAYorOBJ parameter - will be added as ducking slaves for those instances specified by the DuckingMastersARRAYorOBJ parameter.
| Music.removeDuckingRelationships |
|
The Music.removeDuckingRelationships static method lets you conveniently remove many ducking slaves from many ducking masters in a single operation.
|
Music.removeDuckingRelationships ( DuckingMastersARRAYorOBJ , DuckingSlavesARRAYorOBJ ) |
When no DuckingSlavesARRAYorOBJ parameter is specified, then all Music Object instances currently created in the document - excluding those instances specified by the DuckingMastersARRAYorOBJ parameter - will be removed as ducking slaves from those instances specified by the DuckingMastersARRAYorOBJ parameter.
| Static Properties |
| Music.duckingAttackTime |
|
The Music.duckingAttackTime static property is an integer variable, specifying the default value that should be used for the AttackTimeMsINT parameter, if this parameter is not specified when setting up ducking relationships.
For more information, consult the section Setting Defaults for the Ducking Properties.
| Music.duckingReleaseTime |
|
The Music.duckingReleaseTime static property is an integer variable, specifying the default value that should be used for the ReleaseTimeMsINT parameter, if this parameter is not specified when setting up ducking relationships.
For more information, consult the section Setting Defaults for the Ducking Properties.
| Music.duckingSustainLevel |
|
The Music.duckingSustainLevel static property is an integer variable, specifying the default value that should be used for the SustainLevel0to100 parameter, if this parameter is not specified when setting up ducking relationships.
For more information, consult the section Setting Defaults for the Ducking Properties.


I've just entered a new blog entry named Sprint 5 - Cultural in the Entries page. Check it out!
I've just entered a new blog entry named Sprint 4 - Cultural in the Entries page. Check it out!
I've just entered a new blog entry named Sprint 4 - Technical in the Entries page. Check it out!
I've just entered a new blog entry named Sprint 3 - Cultural in the Entries page. Check it out!
I've just entered a new blog entry named Sprint 3 - Technical in the Entries page. Check it out!
I've just entered a new blog entry named Sprint 2 - Cultural in the Entries page. Check it out!
I've just entered a new blog entry named Sprint 1 - Cultural in the Entries page. In this one, I discuss my personal values and my strengths and weaknesses. Check it out!
I've just entered a new blog entry named Sprint 2 - Technical in the Entries page. In this update I discuss the uses of using the Class and ID functions. Check it out!
The blog entries page has just been added. Access this by clicking on the "Entries" link on the left. Enjoy!
Te Houtaewa was the fastest runner of his day and played many pranks on his peoples enemies.


Use list below to specify which classes should be checked. When unchecked, common class name patterns won't be applied. For each class type use the fields to specify minimum length, maximum length and regular expression expected for class names. Specify 0 in length fields to skip corresponding checks. Regular expressions are in standard java.util.regex format.