This library is a wrapper of the Mangopay API as described here. Each of the API calls provided are shown with an explaination of how to use them.
The client handles authentication with a token once you have set up your client as described in the installation instructions. Once confrigured it is easy to get an instance of the client.
import mangopay.client
client = get_mangopay_api_client()
None of the API calls listed by Mangopay as falling under the category are supported. However with the client provided, it is possible to use the mangopay-sdk to call them. An example is given below.
from mangopay.client import get_mangopay_api_client
client = get_mangopay_api_client()
# GET /Events
client.events.Get()
To create a natural user object just instantiate an instance of MangoPayNaturalUser, populate the requried fields, and call create() on it as shown below. You can also edit the user, just update the the values you want to change in the model and then call update().
from django.contrib.auth.models import User
from datetime import date
from mangopay.models import MangoPayNaturalUser
user = User.objects.get(id=1)
mangopay_user = MangoPayNaturalUser()
mangopay_user.user = user
mangopay_user.country_of_residence = "SE"
mangopay_user.nationality = "US"
mangopay_user.birthday = date(1989, 10, 20)
mangopay_user.save()
mangopay_user.create()
mangopay_user.address = "Högbergsgatan 66C"
mangopay_user.save()
mangopay_user.update()
Creating and editing a legal user is the same as creating a natural user except Mangopay requires different fields. Instantiate the MangoPayLegalUser, populate the required fields, and call create() or update() on it as shown below.
from django.contrib.auth.models import User
from datetime import date
from mangopay.models import MangoPayLegalUser
from mangopay.constants import BUSINESS
user = User.objects.get(id=1)
mangopay_user = MangoPayLegalUser()
mangopay_user.user = user
mangopay_user.country_of_residence = "SE"
mangopay_user.nationality = "US"
mangopay_user.birthday = date(1989, 10, 20)
mangopay_user.first_name = "Rebecca"
mangopay_user.last_name = "Meritz"
mangopay_user.generic_business_email =<EMAIL_ADDRESS>mangopay_user.business_name = "FundedByMe AB"
mangopay_user.type = BUSINESS
mangopay_user.save()
mangopay_user.create()
mangopay_user.headquaters_address = "Regeringsgatan 29, 111 53 Stockholm"
mangopay_user.save()
mangopay_user.update()
This call is not supported. Infomation about the mangopay user will already be saved on your MangoPayUserModel when you call create and/or update.
To create a mangopay document for a user just instantiate a MangoPayDocument, save the user and type to the document, and then call create(). If successfully created the document’s status should be updated to CREATED and it should be assigned a mangopay_id. Once you have added all the pages you wanted to the document you can ask for validation from mangopay via ask_for_validation(). This should change the status of the document to VALIDATION_ASKED.
from mangopay.models import MangoPayUser
from mangopay.constants import IDENTITY_PROOF
mangopay_user = MangoPayUser.objects.get(id=1)
mangopay_document = MangoPayDocument()
mangopay_document.mangopay_user = mangopay_user
mangopay_document.type = IDENTITY_PROOF
mangopay_document.save()
mangopay_document.create()
# Then add a 1+ MangoPayPages to your mangopay_document
mangopay_document.ask_for_validation()
A document can have many pages, but needs at least one. Instantiate one MangoPayPage per file and call create() on the object to create it.
from mangopay.models import MangoPayPage
document = MangoPayDocument.objects.get(id=1)
file = file("tmp/file")
page = MangoPayPage(file=file, document=document)
page.save()
page.create()
In order for this call to work you need to decide were you want to store your files. Files can either be saved to Django’s default storage by setting MANGOPAY_PAGE_DEFAULT_STORAGE to True, or you can configure your files to be stored on AWS by setting AWS storage via S3BotoStorage. AWS_MEDIA_BUCKET_NAME and AWS_MEDIA_CUSTOM_DOMAIN must be in your setting in this case.
One business day after asking for validation you should be able to see if mangopay approved the document or not via get() which will get the updated document from mangopay. At this point it should either have the status of VALIDATED or REFUSED.
from mangopay.models import MangoPayDocument
document = MangoPayDocument.objects.get(id=1)
document.get()
In order to complete a payout you must have registered a bank account. To do this instantiate a MangoPayBankAccount and add the required fields, then call create(). Only BIC & IBAN bank registrations are currently supported by this library.
from mangopay.models import MangoPayBankAccount, MangoPayUser
bank_account = MangoPayBankAccount()
bank_account.mangopay_user = MangoPayUser.objects.get(id=1)
bank_account.iban = "SE3550000000054910000003"
bank_account.bic = "53H555"
address = "Högbergsgatan 66C, 11854 Stockholm, Sweden"
This call is not supported the data should already be persisted on your MangoPayBankAccount model.
In order to create a wallet just instantiate a MangoPayWallet object, add user to it, save it and call create() on it with a supported currency.
from mangopay.models MangoPayWallet, MangoPayUser
user = MangoPayUser.objects.get(id=1)
wallet = MangoPayWallet()
wallet.mangopay_user = user
wallet.save()
wallet.create("SEK", "Sven's Wallet")
GET is not supported directly, however you can call balance() on a created MangoPayWallet to find the amount of Money on the wallet.
Not supported via this library or the API it is only supported by MangoPay’s web interface.
Once you have successfully registered a card you can create a payin from that card to a created wallet. Instantiate a MangoPayPayIn model, add the user, wallet, and card; then call create with funds to be debited and optionally the fees and the secure mode return url. The payin will be created and the execution date, status, result code, id, status, and secure mode redirect url will be saved to the object.
from mangopay.models import (MangoPayPayIn, MangoPayCard, MangoPayWallet,
MangoPayUser)
payin = MangoPayPayIn()
payin.mangopay_user = MangoPayUser.objects.get(id=1)
payin.mangopay_wallet= MangoPayWallet.objects.get(id=1)
payin.mangopay_card = MangoPayCard.objects.get(id=1)
payin.create(debited_funds=Money(1001, "EUR"))
Preauthorizations are not currently supported by this library. Pull requests are welcome. See Contributing.
Once a MangoPayPayIn is created it’s associated status can be updated via calling get() on the instance.
from mangopay.models import MangoPayPayIn
payin = MangoPayPayIn.objects.get(id=1)
payin.get()
Before a card can be used it must be registered with a user. Just instantiate a MangoPayCardRegistration object, add a user to it, and call create() with a supported currency. When you do this MangoPay’s ID will be saved to the object.
from mangopay.models import MangoPayCardRegistration, MangoPayUser
card_registration = MangoPayCardRegistration()
card_registration.mangopay_user = MangoPayUser.objects.get(id=1)
card_registration.create("EUR")
Once you have created a MangoPayCardRegistration object you can access the card’s preregistration data by calling get_preregistration_data(). This data comes in the form of a dictionary with the keys: “preregistrationData”, “accessKey”, and “cardRegistrationURL”.
from mangopay.models import MangoPayCardRegistration
card_registration = MangoPayCardRegistration.objects.get(id=1)
card_registration.get_preregistration_data()
After registering a card with MangoPay you should get back the card’s Id. If you save that card’s Id to the related MangoPayCard object by calling save_mangopay_card_id(), then later you can access the card’s info by calling request_card_info(). Requesting the card’s info will save the expiration date, alias, and active and valid state to the MangoPayCard object.
from mangopay.models import MangoPayCardRegistration
card_registration = MangoPayCardRegistration.objects.get(id=1)
card_registration.save_mangopay_card_id("123456")
card_registration.mangopay_card.request_card_info()
Preauthorizations are not currently supported by this library. Pull requests are welcome. See Contributing.
Preauthorizations are not currently supported by this library. Pull requests are welcome. See Contributing.
Transfers and refunds of those transfers are not supported by this library. Pull requests are welcome.
Currently only simple refunds are supported.  To create a simple refund just instantiate a MangoPayRefund object and add the payin you want to refund and the user; then save it and call create_simple(). The MangoPay’s Id, the execution date, and status will be updated in the object. If the refund was successful then create_simple will return True.
from mangopay.models import MangoPayRefund, MangoPayPayIn
refund = MangoPayRefund()
payin = MangoPayPayIn.objects.get(id=1)
refund.payin = payin
refund.mangopay_user = payin.mangopay_user
refund.save()
refund.create_simple()
Getting a refund via its ID is not supported by this library. Pull requests welcome.
Payouts transfer money from a wallet to a user’s bank account. In order for a payout to run successfully, the user’s KYC requirements must be fufilled. To use it simply instantiate the MangoPayPayOut object add the user, the wallet you want to transfer from, and the bank account you want to transfer to, the funds to be debited, and optionally the fees to be taken; then save it and run create(). MangoPay’s generated id, the status, and the execution date will be saved to the object.
from money import Money
from mangopay.models import MangoPayPayOut, MangoPayUser, MangoPayWallet, MangoPayBankAccount
payout = MangoPayPayOut()
payout.mangopay_user = MangoPayUser.objects.get(id=1)
payout.mangopay_wallet = MangoPayUser.objects.get(id=1)
payout.mangopay_bank_account = MangoPayBankAccount.objects.get(id=1)
payout.debited_funds = Money(1000, "EUR")
payout.fees = Money(10, "EUR")
payout.save()
payout.create()
Getting a payout will update the status and execution date from MangoPay.
from mangopay.models import MangoPayPayOut
payout = MangoPayPayOut.objects.get(id=1)
payout.get():


simple_flight
If you don't know what flight controller does than see What is Flight Controller?.
AirSim has built-in flight controller called simple_flight and it is used by default. You don't need to do anything to use or configure it. AirSim also supports PX4 as another flight controller for advanced users. In future, we also plan to support ROSFlight and Hackflight.
Advantages
The advantage of using simple_flight is zero additional setup you need to do and it "just works". Also, simple_flight uses steppable clock which means you can pause the simulation and things are not at mercy of high variance low precision clock that operating system provides. Further, simple_flight is simple, cross platform and 100% header-only dependency-free C++ code which means you can literally step through from simulator to inside flight controller code within same code base!
Design
Normally flight controllers are designed to run on actual hardware on vehicles and their support for running in simulator varies widely. They are often fairly difficult to configure for non-expert users and typically have complex build usually lacking cross platform support. All these problems have played significant part in design of simple_flight.
simple_flight is designed from ground up as library with clean interface that can work onboard the vehicle as well as simulator. The core principle is that flight controller has no way to specify special simulation mode and there for it has no way to know if it is running under simulation or real vehicle. We thus view flight controller simply as collection of algorithms packaged in a library. Another key emphasis is to develop this code as dependency free header-only pure standard C++11 code. This means there is no special build required to compile simple_flight. You just copy its source code to any project you wish and it just works.
Control
simple_flight can control vehicle by taking in desired input as angle rate, angle level, velocity or position. Each axis of control can be specified with one of these modes. Internally simple_flight uses cascade of PID controllers to finally generate actuator signals. This means position PID drives velocity PID which drives angle level PID which finally drives angle rate PID.
State Estimation
In current release we are using ground truth from simulator for our state estimation. We plan to add complimentary filter based state estimation for angular velocity and orientation using 2 sensors (gyroscope, accelerometer) in near future. In more longer term, we plan to integrate another library to do velocity and position estimation using 4 sensors (gyroscope, accelerometer, magnetometer and barometer) using EKF. If you have experience this area than we encourage you to engage with us and contribute!
Supported Boards
Currently we have implemented simple_flight interfaces for simulated board. We plan to implement it for Pixhawk V2 board and possibly Naze32 board. We expect all our code to remain unchanged and the implementation would mainly involve adding drivers for various sensors, handling ISRs and managing other board specific details. If you have experience this area than we encourage you to engage with us and contribute!
Configuration
To have AirSim use simple_flight, you can specify it in settings.json as shown below. Note that this is default so you don't have to do it explicitly.
"Vehicles": {
"SimpleFlight": {
"VehicleType": "SimpleFlight",
}
}
By default, vehicle using simple_flight is already armed which is why you would see propellers spinning. However if you don't want that than set DefaultVehicleState
to Inactive
like this:
"Vehicles": {
"SimpleFlight": {
"VehicleType": "SimpleFlight",
"DefaultVehicleState": "Inactive"
}
}
In this case, you will need to either manually arm using RC sticks in down inward position or using APIs.
For safety reasons, flight controllers would disallow API control unless human operator has consented using a switch on RC. Also, when RC control is lost, vehicle should disable API control and enter hover mode for safety reasons. To simplify things a bit, simple_flight enables API control without human consent using RC and even when RC is not detected by default however you can change this using following setting:
"Vehicles": {
"SimpleFlight": {
"VehicleType": "SimpleFlight",
"AllowAPIAlways": true,
"RC": {
"RemoteControlID": 0,
"AllowAPIWhenDisconnected": true
}
}
}
Finally, simple_flight uses steppable clock by default which means clock advances when simulator tells it to advance (unlike wall clock which advances strictly according to passage of time). This means clock can be paused, for example, if code hits the break point and there is zero variance in clock (clock APIs provides by operating system might have significant variance unless its "real time" OS). If you want simple_flight to use wall clock instead than use following settings:
"ClockType": "ScalableClock"


NPSystats
Info
Memory
Network
Mounts
Processes
NPM
Ping
Hostname:
Platform:
Arch:
Release:
Uptime:
Load:
Memory
Free Memory:
Total Memory:
Swap Free:
Network
Interface
Bytes Received
Packets Received
Errors Received
Bytes Sent
Packets Sent
Errors Sent
Mounts
File System
Blocks
Used
Available
Percent
Mount
Processes
PID
TTY
STAT
TIME
COMMAND
Node.js Packages
Package
Version
Ping/Traceroute
Address:
Ping
Transmitted :
,
Received :
,
Loss:
%,
Time :
Min :
,
Avg :
,
Max:
,
MDev:
Sequence
Bytes
RDNS
IP
TTL
Time
Traceroute
Hop
Name
Address
Time


Best Presidents’ Day Sales + HOT printable coupons at RetailMeNot!
Up to 50% off select categories at Macy’s + up to an additional 15% off at the Presidents’ Day Sale with code + free shipping!
More top weekend offers include:
Kohl’s: Up to 60% Off + an Extra 20% Off w/Kohl’s Card
Overstock: 12% Off Sitewide
Amazon: 20% Off $100+ in Clothing
& many more at www.retailmenot.com
Copyright 2013 WhaleShark Media. 301 Congress Avenue, Suite 700, Austin, Texas 78701
To opt-out please reply to this email with UNSUBSCRIBE in the subject line.


--- layout: page title: Research permalink: /research/ _options: layout: hidden: true image: width: 1200 height: 1200 resize_style: contain mime_type: image/jpeg _comments: ---
Click on the links below to obtain a summary of John's research.
Improving programme impact when 'talking finance'
Use of finance in the decision to fund partners
Current research
If you would like to help with current research about Communicating financial management between finance and non-finance teams and Training cross-culturally please contact John


This specification has been annotated using color codes in order to classify sentences in different concepts that can or cannot be expressed using LIDL.
In this section we describe the Data types expressed in the specification. We mainly use the data
keyword of LIDL.
We use the new Algebraic data types notation of LIDL here, because it is much more expressive and convenient than the previous record-only data types.
Note that we also define several interactions which are associated with the data types. These data types and their associated interactions represent the abstract data types we are interested in.
LIDL has several built-in types. Here are their "definition" using the algebraic data type syntax:
data Boolean is (true)|(false)
data Number is (1)|(2)|(3)| ... |(-1)|... |(-0.1)|...
data Text is ("a")|("b")| ... | ("aa") | ("ab") | ...
data Date is Number
Here we define the systems expressed in the specification, using data types.
There are several rovers, which are indexed using a number:
data Rover is
(Rover (index:Number))
There are several gps stations:
data GPSStation is
(GPS Station (index:Number))
There is only one supervision station:
data SupervisionStation is
(Supervision station)
What we call a System
is anything which falls in the 3 categories we just described:
data System is
SupervisionStation
| Rover
| GPSStation
We could also have written all of the above in one go, this way:
data System is
(Supervision station)
| (Rover (index:Number))
| (GPS station (index:Number))
Each data type described in LIDL is associated with several interactions. Examples of interactions associated with the System
data type:
(Supervision station)
(Rover (3))
(GPS station (2))
Here, we define the different categories of alerts, using data types
There are several categories of alerts concerning rovers
data AlertOnRover is
(GPS Loss)
| (Data Loss)
| (Low Battery)
| (Critical Battery)
| ((which:Wheel) is Blocked)
The last option (... is Blocked)
refers to a data type called Wheel
which describes the different types of wheel that a rover has. The rovers have two wheels:
data Wheel is
(Left wheel)
| (Right wheel)
Examples of interactions that are automatically defined by LIDL when the data types above are defined:
(GPS Loss) :AlertOnRover out
((Left wheel) is Blocked) :AlertOnRover out
(GPS Loss) :{value: AlertOnRover in, didMatch: Boolean out}
(any AlertOnRover) :{value: AlertOnRover in, didMatch: Boolean out}
((Left wheel) is Blocked):{value: AlertOnRover in, didMatch: Boolean out}
((any Wheel) is Blocked) :{value: AlertOnRover in, didMatch: Boolean out}
(do not change) :{before: AlertOnRover in, after: AlertOnRover out}
(change to GPS Loss) :{before: AlertOnRover in, after: AlertOnRover out}
((change to Right wheel) is Blocked) :{before: AlertOnRover in, after: AlertOnRover out}
The automatical definition of these interactions is formally defined, and will be explicited in the appendix of Vincent Lecrubier's Thesis.
There are 3 kinds of alerts on GPS stations:
data AlertOnGPSStation is
(GPS Loss)
| (Data Loss)
| (Power Loss)
Examples of interactions:
(GPS Loss)
(Power Loss)
There is only 1 kind of alert on the supervision station
data AlertOnSupervisionStation is
(Power Loss)
Examples of interactions:
(Power Loss)
To specify an alert in the general case, we need to specify the alert and the system on which the alert happened. There a three categories of alerts, one for each category of system:
data Alert is
((alert:AlertOnRover) on (rover:Rover))
| ((alert:AlertOnGPSStation) on (gpsStation:GPSStation))
| ((alert:AlertOnSupervisionStation) on supervision station)
Examples of interactions that LIDL automatically associates with this data type:
((Low Battery) on (Rover (1)))
((Data Loss) on (GPS Station (2)))
((Power Loss) on supervision station)
An alert occurence is the product of an alert and of a date. It is an alert associated with a specific date:
data AlertOccurence is
(Alert (category:Alert) at (date:Date))
Examples of interactions:
(((Low Battery) on (Rover (1))) at (2016-06-01T06:00:00Z))
There are three alert levels:
data AlertLevel is
(Caution)
| (Warning)
| (Advisory)
We can write an interaction that associates each alert with its specific alert level:
interaction (level of (alert:Alert in) is (level:AlertLevel out)) : Behaviour
( switch (alert) : (level)
case ((GPS Loss) on (Rover (1))) : (Caution)
case ((GPS Loss) on (Rover (any Number))) : (Warning)
case ((GPS Loss) on (GPS Station (any Number))) : (Caution)
case ((Power Loss) on supervision station) : (Caution)
case ((Low Battery) on (any Rover)) : (Advisory)
case (((any Wheel) is blocked) on (any Rover)) : (Advisory)
case (any AlertOnGPSStation) : (Warning)
case (any AlertOnSupervisionStation) : (Caution)
)
Pattern matching using Comparator interactions allows us to be very specific about alert levels. When several cases match, the case which is written higher in the list is selected. For example here, ((GPS Loss) on (Rover (1)))
will be associated with (Caution)
even though it also matches ((GPS Loss) on (Rover (any Number)))
.
Once this behaviour (that associates a level with each alert) is specified, we can use the ... with behaviour ...
interaction in order to syntactically project the behaviour along two prefered directions. This can be used later in order to facilitate the expression of certain behaviours. We can define the following interactions:
interaction (level of (alert:Alert in)):AlertLevel out is
(
(x) with behaviour
(level of (alert) is (x))
)
interaction (an alarm with level (level:AlertLevel out)):Alert in is
(
(x) with behaviour
(level of (x) is (level))
)
Examples of interactions that can be expressed using the definitions above:
(level of ((Low Battery) on (Rover (1))))
which gives the value (Advisory)
(level of ((Power Loss) on supervision station))
which gives the value (Caution)
((an alarm with level (x)) = (my alert))
which means that (x)
will receive the level of (my alert)
The same way we defined alert levels, we can express which alert have auto ack and auto clear
interaction ((alert:Alert in) has automatic ack (autoAck:Boolean out) and auto clear (autoClr:Boolean out)) : Behaviour
( switch (alert) : ((autoAck),(autoClr))
case ((GPS Loss) on (Rover (any Number))) : ((true),(true))
case ((GPS Loss) on (GPS Station (any Number))) : ((true),(true))
case ((Power Loss) on supervision station) : ((true),(false))
case (any AlertOnGPSStation) : ((false),(false))
case (any AlertOnSupervisionStation) : ((true),(false))
case (any AlertOnRover) : ((true),(false))
)
interaction ((alert:Alert in) has auto ack):Boolean out is
(
(x) with behaviour
((alert) has automatic ack (x) and auto clear (y))
)
interaction ((alert:Alert in) has auto clear):Boolean out is
(
(y) with behaviour
((alert) has automatic ack (x) and auto clear (y))
)
Examples of interactions that can be expressed using the definitions above:
(((Low Battery) on (Rover (1))) has auto clear)
which gives the value (false)
(Last case of the switch interaction)(((GPS Loss) on (Rover (12))) has auto ack)
which gives the value (true)
(First case of the switch interaction)An alert signal is a composite data that contains a message, an alert level, a date, a state, and a procedure. This is an abstraction of what is presented to the user.
data AlertSignal is
( AlertSignal (message:Text) (level:AlertLevel)
(date:Date) (state:AlertState) (procedure:Procedure) )
The alert signal can be in several states which are explicited in various places of the textual specification:
data AlertState is
(active) | (acknowledged) | (cleared)
A procedure is associated with each alert signal. A procedure can be in several states, not started, completed, or at a specific state:
data ProcedureState is
(not yet started) | (completed) | (at step (index:Number))
There are two kinds of steps in a procedure: imperative steps (example : "Do this"->"Done"), or conditional steps (example: "Is it ok ?"->"Yes/No")
data ProcedureStep is
(imperative (message:Text))
| (conditional (message:Text))
A procedure is a sequence of steps, in a certain state:
data Procedure is
(procedure (steps:[ProcedureStep]) (state:ProcedureState))
| (no procedure)
Example of interactions that can be written using the definitions above:
(procedure ([ (imperative (“Do this”)) (imperative (“Do that”)) (conditional (“Is that done ?”)) ]) (at step (2)) )
(no procedure)
(procedure (do not change) (at step (increment)))
increments the step at which the procedure is(procedure (change element (2) by (imperative ("Do these"))) (do not change))
changes the second step of a procedure by replacing it with an imperative step whose message is "Do these", but no not change its state.(procedure (any [ProcedureStep]) (at step (any Number)))
matches any procedure which is started and not completed(procedure (any [ProcedureStep]) (completed))
matches any procedure which is completedThe user can perform 3 actions on a step of a procedure
data Action is
(yes) | (no) | (done)
Here we read the specification and express the Interfaces using LIDL.
interface AlertSignalPresentation is
{
signal : AlertSignal out,
ack : Activation in
clr : Activation in
launchproc : Activation in
cancelproc : Activation in
}
interface AlertSignalPresentationList is
AlertSignalPresentation[5]
interface AlertSignalPresentationList is
{ 1: AlertSignalPresentation,
2: AlertSignalPresentation,
3: AlertSignalPresentation,
4: AlertSignalPresentation,
5: AlertSignalPresentation
}
interface SignalPresentationAutreMethode is
{ signal : [AlertSignal] out,
ack : [Activation] in
}
interface ProcedureStepPresentation is
{
message : Text out,
procAction : Action in
}
Interpretation 1 (Bonne):
interface ProcedurePresentation is
{
currentStep : ProcedureStepPresentation,
steps : ProcedureStepPresentation[MAX_STEP]
}
Interpretation 2, prends la specification vraiment au pied de la lettre:
interface ProcedurePresentation is
{
stepminus2 : ProcedureStepPresentation,
stepminus1 : ProcedureStepPresentation,
currentStep : ProcedureStepPresentation,
stepplus1 : ProcedureStepPresentation,
stepplus2 : ProcedureStepPresentation
}
interface User is
{
alertSignals : AlertSignalPresentationList
currentProcedure : ProcedurePresentation
indicationOfOtherPendingAlertSignals : Boolean out
numberOfOtherPendingAlertSignals : Number out
setTransmissible : Number in
}
The specification expresses several Interactions. Here we describe them using LIDL.
TO BE DONE
interaction
(present alert signals ):AlertSignalPresentationList
is
()


WITNESS LIST Infrastructure Development and Security Committee August 13, 2004 -10:00A Joint interim charge with Business and Commerce ON: Fainter, Jr., John W. President (AECT), Austin, TX Hudson, Paul Chairman (PUC), Austin, TX Jones, Sam Chief Operating Officer & EVP (ERCOT), Austin, TX Manning, Robert Vice Chairman (ERCOT Board), San Antonio, TX


Biggest pre-Black Friday specials in South Africa
by Staff WriterBlack Friday 2019 takes place on 29 November, but many online and brick-and-mortar retailers in South Africa have decided to launch early deals this year.
South African stores and consumers have embraced Black Friday, a US shopping event, and made it the biggest online shopping day in the country.
Instead of waiting for Black Friday to arrive, many South African retailers have decided to spread their sales over multiple days.
Takealot
One of these retailers is Takealot, which launched an Early Access Blue Dot Sale featuring price cuts on many products before Black Friday.
Takealot’s Early Access Sale runs from 24-28 November and the company promised that these deals will not be beaten over the Black Friday period to give buyers peace-of-mind.
Another retailer which decided to offer deals throughout the month of November is Superbalist.
“This year shoppers get early access to Black Friday deals on selected days throughout November with Superbalist’s Black Friday Spoilers,” the company said.
Pick n Pay, in turn, has launched Black November deals with new specials going live every Monday at 07:00 throughout the month.
The retailer is offering discounts of up to 50% across various categories, which are valid for seven days or until stocks last.
Here are the best pre-Black Friday specials from South African companies, ranging from tech products to online subscriptions.


This task writes a classloader report for debugging purposes into the log or a file.
NOTE: The report format is subject to change in future releases.
See also: Classloader Task
| Attribute | Description | Required |
| destfile | If specified, the value indicates the name of the file to send the output of the statement to. If not specified, then the output will go to the Ant log. | No. |
| format | Outputformat. One of "xml" (for XML format) or "txt" (for plain text format).
|
No, defaults to "txt" if destfile is empty and "xml" if destfile is set. |
| hierarchy | Representation of delegation hierarchy. One of "flat" (for flatten representation) or "tree" (for tree representation).
|
No, defaults to "flat" if format is "txt" and "tree" if destfile is "xml" . |
| reportpackages | If "true" , report the defined packages as get from ClassLoader.getPackages() . |
No, defaults to "true" . |
| handlerSet | Id of the LoaderhandlerSet to use when getting information about a classloader.
See "Supporting custom classloaders" for further information.
|
No, defaults to a generic LoaderhandlerSet
containing the predefined Loaderhandlers. |
| failonerror | Stop the build process if an error occurs. | No, defaults to "false" . |
<classloaderreport/>Writes a Classloaderreport for debugging purposes to the log.
<classloaderreport outfile="classloaderreport.xml" />Writes a Classloaderreport for debugging purposes to the file ${basedir}/classloaderreport.xml.
© Copyright 2005 The Apache Software Foundation. All rights Reserved.


Nao机器人跳舞实例讲解#
导入相应的库和naoqi
框架#
from naoqi import ALProxy
import motion
import almath
设置机器人IP#
#改为你自己的IP地址
robotIP="<IP_ADDRESS>"
初始化代理#
motionProxy = ALProxy("ALMotion", robotIP, 9559)
postureProxy = ALProxy("ALRobotPosture", robotIP, 9559)
ttsProxy = ALProxy("ALTextToSpeech", robotIP, 9559)
audioProxy = ALProxy("ALAudioPlayer", robotIP, 9559)
#isAbsolute variable is used wherever functions require a boolean argument
isAbsolute = True
CARTESIAN CONTROL#
space = motion.FRAME_ROBOT
axisMask = almath.AXIS_MASK_ALL
#isAbsolute variable is used wherever functions require a boolean argument
isAbsolute = False
舞蹈动作一#
主要用到的函数方法为ALMotion.angelInterpolation方法控制机器人运动：
def move1():
names = ["RHipRoll","LHipRoll", "LKneePitch"
, "LAnklePitch", "LHipPitch"]
angleLists = [[0.2] ,[0.2] ,[1] ,[-0.5],[-0.5]]
times = [[1.0] ,[ 1.0] ,[1.0] ,[1.0] , [1.0]]
isAbsolute = True
motionProxy.angleInterpolation(names, angleLists, times, isAbsolute)
names = ["RShoulderRoll" ,"RHand","HeadYaw","LWristYaw"]
angleLists = [[-1.5],[1,0,1,0] ,[1.5] ,[-1.0]]
times = [[2.0] ,[0.5,1.0,1.5,2.0],[2.0] ,[1.0] ]
isAbsolute = True
motionProxy.angleInterpolation(names, angleLists, times, isAbsolute)
舞蹈动作二#
def move2():
names = ["RHipRoll","LHipRoll" ,"LKneePitch"
,"LAnklePitch" ,"LHipPitch"]
angleLists = [[0],[0],[0],[0],[0]]
times = [[1.0],[ 1.0],[1.0],[1.0],[1.0]]
isAbsolute = True
motionProxy.angleInterpolation(names, angleLists, times, isAbsolute)
motors = ["RElbowRoll" ,"LElbowRoll","LShoulderRoll" ,"RShoulderPitch"
,"RHand", "LHand", "HeadYaw" ]
angles = [[0.5],[-0.5] ,[0.8],[-1] ,[1.0] ,[1.0] , [0.7,0.7] ]
times = [[0.5],[0.5] ,[0.5],[0.5],[0.5] ,[0.5] , [0.5,1.0] ]
motionProxy.angleInterpolation(motors, angles, times,isAbsolute)
motors = ["RElbowRoll","LElbowRoll","RShoulderRoll" ,"LShoulderPitch"
,"RHand", "LHand", "HeadYaw" ]
angles = [[-0.5],[0.5] ,[-0.8] ,[1] ,[1.0] ,[1.0] , [-0.7,-0.7] ]
times = [[0.5] ,[0.5] ,[0.5] ,[0.5] ,[0.5] ,[0.5] , [0.5,1] ]
motionProxy.angleInterpolation(motors, angles, times,isAbsolute)
motors = ["RElbowRoll","LElbowRoll","RShoulderPitch","LShoulderPitch"
,"RHand" ,"LHand" , "HeadYaw" ]
angles = [[0] ,[0] ,[-1] ,[-1] ,[-1.0] ,[-1.0] , [0] ]
times = [[0.3],[0.3] ,[0.3] ,[0.3] ,[0.3] ,[0.3] , [0.3]]
motionProxy.angleInterpolation(motors, angles, times,isAbsolute)
舞蹈动作三#
def move3():
Head_motors = ["HeadPitch","HeadYaw" ]
Head_angles = [[0.5,-0.5,0.5,-0.5,0.5,-0.5,0.5,-0.5,0.5,-0.5]
,[1.0, -1.0] ]
Head_times = [[0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0 ]
,[ 2.5, 5.0] ]
UpperBody_motors = ["RElbowRoll" ,"LElbowRoll"
,"LShoulderPitch" ,"RShoulderPitch" ]
UpperBody_angles = [[0.5],[-0.5],[0.8, -0.8, 0.0, -0.8, 0.8]
,[-0.8, 0.8, 0.0, 0.8, -0.8] ]
UpperBody_times = [[1.0],[1.0] ,[1.0, 2.0, 3.0, 4.0, 5.0]
,[ 1.0, 2.0, 3.0, 4.0, 5.0] ]
LowerBody_motors = ["LKneePitch","RKneePitch","RAnklePitch","LAnklePitch"
,"RHipPitch","LHipPitch"]
LowerBody_angles = [[1,0] ,[1,0] ,[-0.5,0] ,[-0.5,0]
,[-0.5,0] ,[-0.5,0]]
LowerBody_times = [[3,5] ,[3,5] ,[3,5] ,[3,5]
,[3,5] ,[3,5] ]
#The motornames_names list has the various MOTOR_NAMES which are used
#The angles list has the respective MOTOR_ANGLES which are used
#The times list has the recpejtwctive TIMEs at which
#the motor holds a particular angle value
motor_names = Head_motors + UpperBody_motors + LowerBody_motors
times = Head_times + UpperBody_times + LowerBody_times
angles = Head_angles + UpperBody_angles + LowerBody_angles
isAbsolute = True
motionProxy.angleInterpolation(motor_names, angles, times, isAbsolute)
names = ["RHand","RShoulderPitch"]
angleLists = [[1.0],[-1.0]]
times = [[0.5],[0.5]]
motionProxy.angleInterpolation(names, angleLists, times, isAbsolute)
#SET NAO TO INITIAL POSE
postureProxy.goToPosture("StandInit", 0.5)
舞蹈动作四#
def move4():
#LOWER THE TORSO AND MOVE FROM SIDE TO SIDE
effector = "Torso"
path = [0.0, -0.07, -0.03, 0.0, 0.0, 0.0]
time = 1.5
motionProxy.positionInterpolation(effector, space, path,axisMask
, time, isAbsolute)
effector = "Torso"
path = [0.0, 0.07, 0.03, 0.0, 0.0, 0.0]
time = 1.5
motionProxy.positionInterpolation(effector, space, path,axisMask
, time, isAbsolute)
effector = "Torso"
path = [0.0, 0.07, -0.03, 0.0, 0.0, 0.0]
time = 1.5
motionProxy.positionInterpolation(effector, space, path,axisMask
, time, isAbsolute)
舞蹈动作五#
def move5():
Head_motors = ["HeadPitch" ,"HeadYaw" ]
Head_angles = [[0.5 ] ,[1.0, -1.0] ]
Head_times = [[0.5 ] ,[ 2.5, 5.0] ]
UpperBody_motors = ["RElbowRoll" ,"LElbowRoll"
,"LShoulderPitch" ,"RShoulderPitch"]
UpperBody_angles = [[0.5] ,[-0.5] ,[0.8, 0.8, 0.8, 0.8, 0]
,[-0.8, -0.8, -0.8, -0.8, 0 ] ]
UpperBody_times = [[1.0] ,[1.0] ,[1.0, 2.0, 3.0, 4.0, 5.0]
,[ 1.0, 2.0, 3.0, 4.0, 5.0] ]
#The motornames_names list has the various MOTOR_NAMES which are used
#The angles list has the respective MOTOR_ANGLES which are used
#The times list has the recpective TIMEs at which
#the motor holds a particular angle value
motor_names = UpperBody_motors + Head_motors
times = UpperBody_times + Head_times
angles = UpperBody_angles + Head_angles
isAbsolute = True
motionProxy.angleInterpolation(motor_names, angles, times, isAbsolute)
主函数#
主函数中完成整个跳舞的逻辑, 需要将audioProxy.post.playFile("/home/nao/Ficher.wav")
中的音频文件地址替换为自己的文件地址。远程传输文件可使用scp传输。


Royalties not linked to a book
Ads not linked to a book
Link to...
Use Best Guess algorithm!
Raw AMS data not linked to any ads


How did the 'process over product' concept affect the way you tackled the site redesign and rebuild?
The main way that focusing on the process affected my rebuild was in that I was fine changing the design once I found certain things worked and others didn't. If I had been too focused on getting the exact product I thought of in the first place, it might have worked but ultimately, it wouldn't have felt like it evolved naturally the more I experimented.
It also meant I wasn't too attached to what I was working towards. After the first two hours, I ended up stripping out the majority of my site and tidying it up. I might not have done that if I felt I needed to stick with the exact product I intended for.
What did you think about meditation before reading chapter 2?
It's a way to calm the body and mind when you're overwhelmed with the stress of everyday life!
What new things have you learnt about meditation?
I was immpressed at the research between those who meditate and those who don't.  There isn't necessarily a causation but there's still a correlation it seems.
Did any of the suggested meditation techniques stand out to you?
The mountain posture felt quite good. Breathing in so that your rib cage rises then exhaling without changing the position of your spine so as to have the "flow of a river and the stability to a mountain."
Any other musings?
I really liked the analogy of a bowl of water with silt in the bottom. When you're relaxed, the silt is at the bottom and the water is calm and clear. When you're alert (and stressed), the bowl is stirred clouding the water.


| Caption | Image |
| a pitcher is about to throw the ball to the batter | |
| a group of people on skis stand in the snow | |
| a man in a wet suit riding a surfboard on a wave | |
| an autobus is going to UdeM | |
| a yellow autobus for IFT6266 | |
| a yellow bus | |
| a truck | |
| a person playing | |
| a person and a dog | |
| a red telephone booth with a man standing in | |
| a bus waiting at the bus station | |
| a plane landing | |
| a train leaving the train station |


new ArrayLink(objectLink, nameInObject)
Creates a new ArrayLink.
Parameters:
| Name | Type | Description |
|---|---|---|
objectLink |
object | An ObjectList that has a property of array |
nameInObject |
string | Property name that has the array |
- Source:
Methods
each(callback)
Registers an callback function that is called by propagation.
Parameters:
| Name | Type | Description |
|---|---|---|
callback |
eachCallback | Calls it back. |
- Source:


Remember, to work with our streaming system, your computer must be connected to a school network other than airwatch-enroll or Student-BYOD. Check to be sure you've typed in the correct address. Our streaming page is served at <IP_ADDRESS>
We are currently working diligently to expand our help files. If you run into a problem that is not listed here, we will be happy to help you.
emailSend us an Email


Creating a more efficient path for users to purchase, manipulate their order, and get to a closer final total on arrow.com
The challenge was to find and create a solution to users’ behavioral tendencies to abandon checkout in the last step. What is/are the reason(s) for this issue? Have we missed a curial piece to the users’ journey when we developed Single Page Checkout? Having the GA in hand only speaks to the “what is” and not the “why,” so I challenged myself to dive further into what our users were missing through interviews and surveys, but also understanding other potential business initiatives that may affect their journey through checkout.
Counter-intuitive to normal checkout behavior, a new subset of our personas was born. From small start-ups to large companies, the needs, expectations and approach of each individual contributor varies from company to company based on their role. What I found most interesting and potentially the biggest causation of abandonment in checkout was due to the engineers or buyers needing approval to purchase by their manager or even going as far to sending their account credentials so their managers could purchase on the company’s behalf. On arrow.com, the last step in checkout is where the user can see the final total to pass along to their managers, thus creating that abandonment. Upon further investigation and reaching out to other teams, I found certain abandonment fluctuations were caused by promotional code issues.
Bringing together qualitative feedback and quantitative data to validate a user tendency to abandon checkout after seeing a final total.
Provide final total and timelines to manager who purchases
After applying promo, opportunity to purchase more
Comparing pricing and delivery timelines with competitors
The research phase began with a market analysis of other eCommerce fly-in cart features. The eCommerce sites that were analyzed (Digi-Key, Mouser, Avnet, Amazon, Crate & Barrel, Fab, and Bonobos) consisted of a range of content, interactions, features and ui. I typically like to get a variety of direct and non-direct competitors to baseline what potential market expectations are.
With the preliminary research complete, I took the findings to help define requirements then proceeded to sketch out concepts. I enjoy this particular step in the design process because it allows me to work through complex journeys and experiences by putting down ideas rapidly, and document questions and experiences I need to get feedback on.
Below visualizes me working through how to organize the part info, what is the least amount of information needed in the journey to proceed to checkout, does the user need to see all the part details like on Search or PDP, how will the user input a promo code, does the user want the ability to see their checkout settings, would a user like a Wishlist feature?
The preliminary sketching & wireframing helped drive the baseline experience and expectations from the user’s vantage point. They provided insights into in the next design iterations, which would be tested on internal and external stakeholders.
Below is an example of a high-level journey a user would interact with the minicart fly-in feature. It highlights the potential touchpoints, use cases, and moments of truth from the user’s perspective.
Working together with various stake holders throughout the design process created an understanding of knowledge and paths forward to implement the minicart fly-in feature by bringing together business goals and proper UX strategy through a lean Agile approach.
For larger features like the minicart fly-in, I tend to do several design and testing iterations in order to fully flush out needs and desires being met, sound interactions that lead users to successful journeys, proper organization and hierarchy of content, and an optimized user experience.


Current Projects
Website Template Program (Ruby)
This program will allow users to create their own websites using a point-and-click interface with pre-determined templates. The
public will access the front-end interface of the site and developers/administrators will be able to access a backend for
changing features. It will be developed on an Ubuntu virtual machine using EngineX with Ruby and will utilize MariaDB. The
program is in early stages of development and is subject to change going forward.
Diabetes Tracking App (JavaScript, HTML & CSS)
This app utilizes Google Firebase to allow a user to sign up for or log into a registered account, queries the Firebase Realtime
Database to extract user-defined information and stores user data into the database. The app was written primarily in JavaScript
with Node.js on the Express framework with some HTML and CSS for web-based GUI's and data passing. This app was written as a
project for a winterim class and some of the code (controllers, html pages) was pre-written for the class.
Released Projects
Sorting Algorithms Timer (Written in Java, converted to C#)
This program utilizes a variety of different sorting algorithms (QuickSort, BubbleSort, etc) to sort a random assortment of integers
inside of an array object from least to greatest. The user of the program can choose the size of the array and which method to sort
it with, and when finished the program will give you the first 200 elements of the array as well as the time it took to sort.
The program is written in an object-oriented fashion with the five principles of SOLID (Single Responsbility Principle, Open/Closed
Principle, Liskov Substitution Principle, Interface Segregation Principle, Dependency Inversion Principle) in mind when relevant.
The program was originally written in Java but was converted to C# due to the ease of GUI and desktop application creation with
Visual Studio.
Romanizer (C#)
This program converts Arabic numbers and converts them to Roman numerals, or vice versa. This program was designed to be an
exercise in test-driven development; most lines of code were written from a test case that had to be passed.
RSA (Java)
This program takes a "Big Integer" from the Big Integer package and encrypts it utilizing the RSA algorithm. In its current
form, it is not usable to encrypt anything; it simply generates an integer, encrypts it and prints out the result of the
encryption. It was written entirely for educational purposes and design practice.
eScavenge (Python)
This program establishes a web server (via Django) and allows users to create a virtual scavenger hunt. It includes two classes
of users: the GameMaker and the teams of players. The GameMaker can create "landmarks" which contain a "clue" that each team must
guess correctly in order to progress to the next landmark. Guess wrong or take too long and you may be penalized.The team that
finishes first and/or has the fewest penalties wins the game. This program was written as part of a team project in a semester-
long class.
Hit spacebar
or tap here to go back


class: center, middle # Agenda 1. Review of Yesterday 2. Review Lab 3. Unit Testing --- ## Yesterday! * PHP * Composer * SLIM --- ## Yesterday's Lab Endpoints From Class: ```PHP $app->get('/hello/{name}', function (Request $request, Response $response, array $args) { $name = $args['name']; $this->logger->addInfo('get request to /hello/'.$name); $response->getBody()->write("Hello, $name"); return $response; }); $app->get('/people', function (Request $request, Response $response) { $this->logger->addInfo("GET /people"); $people = $this->db->query('SELECT * from people')->fetchAll(); $jsonResponse = $response->withJson($people); return $jsonResponse; }); ``` --- ## Endpoints from Lab Assignment: Get Person by Id ```PHP $app->get('/people/{id}', function (Request $request, Response $response, array $args) { $id = $args['id']; $this->logger->addInfo("GET /people/".$id); $person = $this->db->query('SELECT * from people where id='.$id)->fetch(); $jsonResponse = $response->withJson($person); return $jsonResponse; }); ``` * Test it: ```Bash curl http://<IP_ADDRESS>/firstSlim/people/7 ``` --- ## Update Person by Id ```PHP $app->put('/people/{id}', function (Request $request, Response $response, array $args) { $id = $args['id']; $this->logger->addInfo("PUT /people/".$id); // build query string $updateString = "UPDATE people SET "; $fields = $request->getParsedBody(); $keysArray = array_keys($fields); $last_key = end($keysArray); foreach($fields as $field => $value) { $updateString = $updateString . "$field = '$value'"; if ($field != $last_key) { // conditionally add a comma to avoid sql syntax problems $updateString = $updateString . ", "; } } $updateString = $updateString . " WHERE id = $id;"; // execute query $this->db->exec($updateString); // return updated record $person = $this->db->query('SELECT * from people where id='.$id)->fetch(); $jsonResponse = $response->withJson($person); return $jsonResponse; }); ``` --- ## Test it: ```Bash curl -X PUT \ http://<IP_ADDRESS>/firstSlim/people/7 \ -H 'Cache-Control: no-cache' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -H 'Postman-Token: a23837f2-2b01-4776-89a8-8b528bd94aec' \ -d 'name=Douglas%20Adams&age=49&occupation=author' ``` --- ## Delete Person by Id: ```PHP $app->delete('/people/{id}', function (Request $request, Response $response, array $args) { $id = $args['id']; $this->logger->addInfo("DELETE /people/".$id); $person = $this->db->exec('DELETE FROM people where id='.$id); $jsonResponse = $response->withJson($person); return; }); ``` * Test it: ```Bash curl -X DELETE http://<IP_ADDRESS>/firstSlim/people/6 ``` --- ## Speaking of testing things... -- Unit Testing! * What is unit testing? -- * programatic tests of individual pieces of code. -- * Why should I test? -- * automated confirmation that code is functioning * allows you to make a change, run the tests and see if something broke * code review / pull requests: allows coworksers to quickly verify that the code works * you can build out tests so that you always check the same conditions. --- ## Advantages of unit testing: * find problems faster * If there is a bug in your code, having tests will make that bug more obvious * Missing or missed pieces of functionality * quickly verify that new code or changes does not break existing functionality * A kind of documentation. By looking at the tests and the expected output you can figure out how a piece of code is supposed to behave * Set a definite end goal for the code. * If you write tests before the actual code, then you know that you are 'done' writing code when the tests pass. --- ## Disadvantage of unit testing * each possible outcome needs a test (potential for a lot of code) * need to spend time to think through your functions before they are built * time consuming * test pieces separately does not ensure that the whole system will work. * poor test data --- ## Example with 2 unit tests: * Unit test 1: assert that I can open a door with my hand * Unit test 2: Assert that I can engage a bolt lock with my hand -- .center[![Center-aligned image](http://i.imgur.com/0T9s95E.gif)] --- ## Missing Test: * Engaging the lock prevents me from opening the door. --- ## Test Driven Development * Write tests first * Write code to satisfy the tests * know when code is finished, * forces you to think through your code before you write it. * it is not uncommon to spend as much time writing tests as actual code, if not more. --- ## Testing in PHP * PHPUnit. * PHPUnit is a unit testing framework for PHP applications. Words to know: * Unit: smallest portion of code that makes sense to test. * Mock: stub/recreation of a piece of code for the purposes of testing --- ## Lets build some tests for our Slim People API * Changes to the vagrant box. * updated to php version 7.1 to fix dependency issues. ```Bash vagrant provision delete vendor directory vagrant ssh cd /var/www/public/firstSlim composer require --dev phpunit/phpunit ``` --- ## Problems with index.php -- * app creation and app run is in the same file. * This does not give us a place to hook in and access the code from our tests. * No easy way to mock the database. -- ### Solution: Lets split index.php into a few files. * app.php: bulk of the code. * index.php: database configuration and app->run() * will use composer.json and autoload to pull app.php into index.php for execution --- ## Solution * rename index.php => index-old.php * create new index.php ```PHP setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); return $pdo; }; $app = (new feather\firstSlim\App($db))->get(); $app->run(); ``` --- ## Solution cont. * create directory 'src' in firstSlim. * create app.php in new src directory --- ## Solution cont. ```PHP $config]); $container = $app->getContainer(); $container['db'] = $db; ... logger setup from index-old.php ... ... routing functions from index-old.php ... $this->app = $app; } public function get() { return $this->app; } } ``` --- ## Autoload: composer.json should be updated to look like this. ```Javascript { "require": { "slim/slim": "^3.10", "monolog/monolog": "^1.23" }, "require-dev": { "phpunit/phpunit": "^7.3" }, "autoload": { "psr-4": { "feather\\firstSlim\\" : "src" } } } ``` Execute: ```Bash composer dump-autoload ``` --- ## Confirm it works * visit http://<IP_ADDRESS>/firstSlim/people * If it looks like it did yesterday then everything works. :) --- ## Lets finally do some testing! * Create directory 'tests' in firstSlim. * Create file 'apiTest.php' ```PHP assertTrue(true); } } ``` --- ## You now have a test file! ```Bash phpunit tests/apitest.php ``` * this will execute your tests. * should pass, we are just asserting that true is true. --- ## Some more useful tests! ```PHP public function testHelloName() { $env = Environment::mock([ 'REQUEST_METHOD' => 'GET', 'REQUEST_URI' => '/hello/Joe', ]); $req = Request::createFromEnvironment($env); $this->app->getContainer()['request'] = $req; $response = $this->app->run(true); $this->assertSame($response->getStatusCode(), 200); $this->assertSame((string)$response->getBody(), "Hello, Joe"); } ``` --- ## Test Get People ```PHP // test the GET people endpoint public function testGetPeople() { // expected result string $resultString = '[{"id":"1","name":"Steve Martin","age":"73","occupation":"comedian"},{"id":"2","name":"Johnny Depp","age":"55","occupation":"actor"},{"id":"3","name":"Sammy Hagar","age":"70","occupation":"musician"},{"id":"4","name":"Elvis Presley","age":"42","occupation":"musician"},{"id":"5","name":"Joe Johnson","age":"25","occupation":"driver"},{"id":"7","name":"Samuel L Jackson","age":"69","occupation":"actor"},{"id":"8","name":"Steve Wozniak","age":"68","occupation":"programmer"},{"id":"9","name":"Ada Lovelace","age":"36","occupation":"programmer"},{"id":"10","name":"Grace Hopper","age":"85","occupation":"programmer"},{"id":"11","name":"Alan Turing","age":"41","occupation":"programmer"}]'; // mock the query class & fetchAll functions $query = $this->createMock('mockQuery'); $query->method('fetchAll') ->willReturn(json_decode($resultString, true) ); $this->db->method('query') ->willReturn($query); // mock the request environment. (part of slim) $env = Environment::mock([ 'REQUEST_METHOD' => 'GET', 'REQUEST_URI' => '/people', ]); $req = Request::createFromEnvironment($env); $this->app->getContainer()['request'] = $req; // actually run the request through the app. $response = $this->app->run(true); // assert expected status code and body $this->assertSame($response->getStatusCode(), 200); $this->assertSame((string)$response->getBody(), $resultString); } ``` --- ## Exercise: * Build tests around the other endpoints.


The Access Control Context options are present as a panel for each Context when opening the Session Properties dialog. This panel allows ZAP users to define the Access Rules for each User of each Context.
As mentioned on the concepts page, ZAP is making use of the tree-based structure of URLs. So, when configuring the access rules, only 1 rule needs to be set explicitly for an entire subtree, while for the other nodes rules are inferred. Three possible values can be set for any node in Context for each User:
By default, the rules for any node has an Inherited value and the root node has a value of Unknown. Thus, for any node without a parent with an explicitly configured rule, the inferred rule will default to Unknown.
| Access Control Testing concepts | for a short introduction to Access Control Testing |


Workspace Behaviour
Select the appropriate Perforce workspace behaviour from the
list. Not all modes will suit all Jenkins Job build types.
There are five types:
- Manual
- Manually define the Workspace view and sync options. Existing
workspace will by updated or a new workspace created.
- Spec File
- Use a pre-defined Workspace Spec file versioned in Perforce.
- Static
- Use a pre-defined Workspace; must already exist and have a
valid view.
- Streams
- Auto create/update a Streams workspace with a view determined
by the chosen stream.
- Template
- Auto create/update a normal workspace with a view determined
by the template workspace.


What is wrong with Lisa in EastEnders and what illness does Louise's mum have?
Lisa Fowler (Lucy Benjamin) is showing signs of going dramatically off the rails again in the wake of Mel Owen (Tamzin Outhwaite)’s death.
Recent episodes of the soap have seen the character accusing Sharon Mitchell (Letitia Dean) of murdering Mel, who was tragically killed when she was run down by an oncoming vehicle, having walked away from a devastating car crash just moments earlier.
And with Lisa determined to learn the truth of what happened to her friend, her daughter Louise is becoming concerned for her, especially after she becomes concerned over whether she is taking her medication.
But just what’s wrong with Lisa?
Here’s what you need to know…
What is wrong with Lisa in EastEnders and what illness does she have?
Lisa has previously suffered from psychosis and was sectioned back in 2017.
Advertisement Advertisement
She made a brief return to the soap then after Louise was badly burned by candles at her school prom and ended up in hospital.
Lisa subsequently kidnapped Louise from hospital, leading to a furious confrontation with Phil during which it was established that she had mental health issues.
She initially fought back by hitting Phil with a phone, before Louise was handed over to ambulance staff.
Viewers learned some time later that she was unable to attend Mel’s wedding to Ray Kelly (Sean Mahon) as she had been sectioned.
What happened to Mel?
Mel was killed earlier this month after she was hit by a lorry following a car crash during a high speed chase with Sharon.
While she survived the wreck after Sharon dragged her to safety, she subsequently walked back into the road after becoming convinced she had heard her son Hunter (Charlie Winter) who died a few months earlier, calling her.
She subsequently walked back into the road towards her car – and was fatally knocked down.
Despite the circumstances, Lisa has since accused Sharon of killing Mel – and also attempted to tell Phil (Steve McFadden) that he is not the father of Sharon’s unborn child.
EastEnders airs Mondays and Fridays on BBC One at 8pm and on Tuesdays and Thursdays at 7.30pm.
Got a showbiz story?
If you've got a celebrity story, video or pictures get in touch with the Metro.co.uk entertainment team by emailing us<EMAIL_ADDRESS>calling 020 3615 2145 or by visiting our Submit Stuff page - we'd love to hear from you.


PSKOV is a static site generator that runs in your web browser. What you see now has also been generated with PSKOV. If you're new to PSKOV, visit education page.
| Local file system access | |
| Path: | Updating... |
| Configuration | |
| Input directory: | |
| Item template: | |
| Preview template: | |
| Index template: | |
| Pagination 'Previous' template: | |
| Pagination 'Next' template: | |
| Pagination 'Previous/Next' template: | |
| Preview characters limit: | |
| Preview ending string: | |
| Previews per page: | |
| Preview page base name: | |
| News | |
| Log | |


Event Details
Team Size: Individual Event.
Venue : will be updated shortly.
Time : will be updated shortly.
Prize Money :Winners:₹6000
Runners-up:₹4000
Registration fee:₹50 per team.
Epsilon 2K17
Event Details
Team Size: Individual Event.
Venue : will be updated shortly.
Time : will be updated shortly.
Prize Money :Winners:₹6000
Runners-up:₹4000
Registration fee:₹50 per team.
1.Individual event
2.Consists of two rounds - the preliminary and final rounds
3.Preliminary round will be a debate, for or against a randomly allotted proposition. The propositions will be based on common scientific issues
4.Speaker time for preliminary round: 3 minutes per speaker, no rebuttals
5.Participants proceeding to the final round will be given a situation based on the theme "Warp Through Time"
6.This situation will provide the proposition to the speaker, and he/she will need to clarify their stance to the Judges
7.Speaker time for final round: 6 minutes, inclusive of rebuttals
8.Judges' decision is final.
For more info, contact:
Varsha:7353944422
Sheetal:7760228116


java.util.ConcurrentModificationException
The above exception is thrown by java runtime when a collection is modified by a thread, at the same time when another thread is iterating over it in a non-synchronous environment. Let's see an example for the same.
ConModTest.java
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Set;
public class ConModTest
{
public ConModTest()
{
}
public static void main(String[] args)
{
ConModTest cmT = new ConModTest();
cmT.listIteration();
}
public void listIteration()
{
ArrayList<String> lst = new ArrayList<String>();
lst.add("a");
lst.add("b");
lst.add("c");
lst.add("d");
Iterator<String> it = lst.iterator();
while (it.hasNext())
{
String st = it.next();
lst.remove(0);
}
System.out.println(lst);
}
}
In the above code in listIteration() method, we create an array list , add elements and get an Iterator from the arraylist. Inside the while loop, array list is iterated, the last line removes an element from arraylist. It means that the Arraylist is structurally modified while being iterated. So the above code throws concurrentModificationException.
To avoid this, once we have created the iterator, we should only remove the arraylist elements using the iterator method. We should only use the iterator methods to modify the arraylist once we have retrieved the iterator. Have a look at the modified version of the above listIteration method.
{
ArrayList<String> lst = new ArrayList<String>();
lst.add("a");
lst.add("b");
lst.add("c");
lst.add("d");
Iterator<String> it = lst.iterator();
while (it.hasNext())
{
String st = it.next();
// lst.remove(0);
it.remove();
}
System.out.println(lst);
}
The functionality of Iterator is such that every-time it is iterated or any element is removed, it checks for the count of the collection which is iterated. If there is a difference in the count, it means that the collection is externally modified then the exception is thrown.
Now consider the case of LinkedHashMap, it maintains the order in which the
{
LinkedHashMap<String, String> lru = new LinkedHashMap<String, String>(16, 0.75f, true);
lru.put("1", "one");
lru.put("2", "two");
lru.put("3", "three");
lru.put("4", "four");
lru.get("1");
System.out.println(lru);
Set<String> st = lru.keySet();
for (String s : st)
{
System.out.println(s);
lru.get("4");
}
}
When the above method is executed, it throws the java.util.ConcurrentModificationException. Oops! How come this is possible? we are not modifying the Map here after getting the iterator.
 The problem here is the purpose of the LinkeHashMap is to maintain the order of elements in terms of there access ratio. If an element is accessed less number of times then it is retrieved first using iterator. So after getting either a keySet or Iterator, the Map api methods like get() or put() should not be executed as it will change the iteration order. So structural modification differs for the different set of Maps and collections. For ArrayLists , structural modification means add/delete elements in the ArrayList. For LinkedHashMap (with access order) it means get/put operations in the Map.
So while working with collections, we should take care of above factors to avoid ConcurrentModificationException exception.


The <tc:treeSelect/>
tag can be used instead of
<treeLabel/>
to add radio buttons or checkboxes in front of the nodes.
Tag Library Documentation:
The <tc:tree/>
tag must use the selectable
attribute.
The value of the attribute in this example can be changed by the radio buttons in the contentbox on the right.


{#- Base Jinja2 template for Clear Theme. @copyright (c) 2016 by Igor Kalnitsky @license MIT, see LICENSE for details -#}


Lorem Ipsum is simply dummy text of the printing
Emmy Karangwa 23 mar 2019Want it to be the cream of the crop, the crème de la crème and elevate you above competitors? Then you're in the right place.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.


'Freehold charges cost us our dream home'
by Dan Whitworth"To be honest we were absolutely devastated by it. You would never buy a house without being able to sell it again".
Jen Tweedle is talking about the moment she and her fiancé Peter realised why their house sale fell through over the summer.
Their buyers couldn't get a mortgage after discovering Jen and Peter's new-build, freehold property was subject to an estate rentcharge.
Peter said: "We lost the sale and our dream house... and that was very disappointing."
What is an estate rentcharge?
An estate rentcharge can be imposed when private developers build housing estates that the local authority won't "adopt", meaning councils won't pay for the upkeep of public spaces or roads on that estate, or pay for things such as street lighting.
When that's the case developers - or once any building works are finished, residential management companies - establish the charge to pay those bills.
But some residents have criticised this process, saying they have very little control over the charges and that there's not enough transparency about exactly what they're paying for.
In addition to this, crucially, if homeowners fall 40 days behind on their payments, the law on estate rentcharges allows developers, or management companies, to take possession of a property to ensure they get the money they're owed.
Although this is extremely rare, the fact that the legal right exists can put potential buyers off and leave mortgage providers unwilling to lend on properties subject to rentcharges.
However, the Home Builders Federation says rentcharges are the fairest way to make sure communal areas are paid for and maintained.
'Unsellable'
In Peter and Jen's case, their potential buyers couldn't get a mortgage agreed because the home was subject to an estate rentcharge.
"We bought our house [in Oxfordshire] back in July 2016 and we were informed by the estate agent there'd be a service charge which, coming from London, we weren't worried about," Peter says.
"Basically we weren't told by our solicitor or by our estate agents what an estate rentcharge actually meant in terms of the law", Jen adds.
She's also unhappy at how they were treated by the developers, their solicitors and estate agent, and how they didn't even find out their rentcharge might be a problem until they tried to sell.
"The sudden surprise of it all, the fact that the term 'your house is unsellable' was thrown at us... you would never buy a house to not be able to sell it again."
For now, Peter and Jen have taken their home off the market and will look again in the new year.
"We have to be resigned to the fact that this problem may reappear.
"Probably about £2,500 has already been paid out and we still need to pay solicitors another £1,500 hoping they will be able to sell our house, we don't know.
"Maybe our house is unsellable."
Call for reform
Beth Rudolph, a director of the Conveyancing Association, says the failure of house sales due to estate rentcharges is becoming more common.
"Just yesterday a developer refused to vary the terms of a rentcharge that the lender had confirmed was not acceptable to them because of the risks to themselves and the borrower," she says.
"We need the government to intervene to change the law so that someone cannot effectively lose thousands of pounds because they forgot to pay a £6 rentcharge.
"We would absolutely expect that any rentcharge owner should be able to recover arrears of payments in the normal debt collection way, but not to be able to grant a long lease or possess the property."
'Fairest way'
Andrew Whitaker from the Home Builders Federation says because of cuts to local authority budgets many local councils just don't have the money to adopt estates like they would have in the past.
"As part of a development we [developers] build places - not just homes. So things like parks, shared spaces, roads," he says.
"In the past we used to hand all of this to the local authority and they'd maintain it in the future. Because of cuts and local authority budgets being strained they are less keen to do this.
"They still need maintaining and the fairest way to do this is to establish an estate rentcharge."
You can hear more on BBC Radio 4's Money Box programme on Saturday at 12pm or listen again here .


Fill up the form to understand who are you from FRIENDS
Pick your favorite movie
Jurassic Park
Ratatouille
Indiana Jones and the last Crusade
The Godfather
The Goonies
My best friend's wedding
Pick a Season
Winter
Spring
Summer
Autumn
Pick your superpower!
Invisibility
Time Travel
Super Strength
Flight
Teleportation
Mind Reading
Pick a song
"You've got a friend in me" by Randy Newman
"Just a friend" by Biz Markie
'We're going to be friends' by The white stripes
"My Best Friend" by Tim McGraw
"With a little help from my friends" by Joe Cocker
"You're my best friend" by Queen
Result!
Congrats! You got Rachel!
Congrats! You got Monica!
Congrats! You got Phoebe!
Congrats! You got Joey!
Congrats! You got Chandler!
Congrats! You got Ross!


{% load i18n %}
{% blocktrans trimmed %} Your delivery must be uploaded as one or more files or typed into the box below. {% endblocktrans %} {% blocktrans trimmed %} You can also ask questions to your examiner(s). All uploaded files and comments for one deadline is considered a part of your delivery, so if you add a comment that makes a previous comment obsolete, you should say so. {% endblocktrans %}


Replaces text in JSP,
e.g.
<html><body>
with an internationalized JSP custom tag, e.g. <html><body>
This built-in template is editable. Along with expressions allowed in a JSP context, you can also use the predefined variables that will be then expanded into the corresponding values. |
| Predefined variables take the following values: | ||
| Property key name which is specified in the corresponding properties file. | ||
| Property value which is specified in the corresponding properties file. This is an original JSP text selection value. |


--- layout: page title: About header-img: "img/about-bg.png" ---
Email<EMAIL_ADDRESS>Github:https://github.com/illusioninlost


Ben Johnson
Facebook LinkedIn PortfolioBackground Information:
I am a student at Eastern Washington University Studying Computer Science and Geographical Information Systems. I initially recieved a major in Political Science from Carroll College in Helena, MT. However, I soon realized that that was not the path I wanted to take and took some time to discover my true path which led me back to my love of computers. Two years later and I have found that my understanding of computers has improved exponentially and I see the value of programming everyday in systems we use all around us.
Professional Objectives:
I believe my current passion lies around working with an awesome team in programming. I love to code in Java and with the addition of C, HTML and CSS I know there isn't a limit to what languages I could learn. I hope that even after I graduate I will continue to learn more and more as I develop my skills in a professional setting.


Picture of schoolboy dwarfing Etzebeth has social media in a buzz
Cape Town - The future of Springbok rugby in the second-row appears to be bright if a picture doing the rounds on social media is anything to go by.
READ | ON THE BUS: Siya and his rockstar Springboks emptying the tank to unite SA
In the picture, taken during the Springboks' Champions Tour of Gauteng on Thursday, a schoolboy from Helpmekaar Kollege is photographed alongside 2019 Rugby World Cup-winning lock Eben Etzebeth.
The schoolboy, reported to be in Grade 11 at the Afrikaans private high school in Braamfontein, appears to dwarf Etzebeth, a veteran of 85 Tests in the green and gold.
Etzebeth stands 2.03m (6-foot-7), while the schoolboy measures 2.09m (6-foot-9) in height.
It's certainly not often Etzebeth has had to look UP to an opponent on the rugby field!
RG Snyman at 2.07m is currently the tallest player in the Springbok squad, while in recent times, Andries Bekker, at 2.08m, has looked down on all his team-mates, bar none.
READ | Updated Springbok Champions Tour dates and bus routes
- Compiled by Garrin Lambley


--- ---
Listed alphabetically by Last Name.
To Email<EMAIL_ADDRESS>| Ushadevi Narendra Bhosle, Ph. D.
(TIFR,Mumbai) Raja Ramanna Fellow |
|
Algebraic Geometry, vector bundles, principal bundles |
|
| bhosle[at]math[dot]iisc[dot]ernet[dot]in | |
| Aloknath Chakrabarti, Ph. D. (Calcutta) NASI HONORARY SCIENTIST |
|
Boundary Value Problems, Integral Equations, Diffraction Theory, Numerical Methods |
|
[P] +91-80-2293 2265 (ext:220) |
|
UserID : alok |
|
| http://math.iisc.ernet.in/~alok/ | |
| Phoolan Prasad, Ph. D. (IISc) NASI-Senior Scientist Platinum Jubilee Fellow | |
Hyperbolic Conservation Laws, Nonlinear Waves and Shock Waves, Sonic Boom, Numerical Analysis |
|
| http://math.iisc.ernet.in/~prasad/ | |
|
|
||
| Indian Institute of Science | Contact the Administrator | Disclaimer |


Beacon Class
Represents a beacon that was encountered during region monitoring. You do not create instances of this class directly. They will be delivered via the rangedBeacons event.
Properties
accuracy
Number
read-only
Indicates the one sigma horizontal accuracy in meters. Use this property to differentiate between beacons with the same proximity value. Do not use it to identify a precise location for the beacon. Accuracy values may fluctuate due to RF interference.
A negative value in this property signifies that the actual accuracy could not be determined.
major
Number
read-only
The value identifying a group of beacons.
minor
Number
read-only
The value identifying a specific beacon within a group.
proximity
Number
read-only
The relative distance to the beacon.
RSSI
Number
read-only
The received signal strength of the beacon, measured in decibels.
UUID
String
read-only
The unique ID of the beacons being targeted.


This module provides similar functionality as Ti.UI.iPad.popover, but allows the application designer to provide custom graphics for the popover background.
To access this module from JavaScript, you would do the following:
var custompopover = require("ti.custompopover");
The custompopover variable is a reference to the Module object.
This method takes any arguments that Ti.UI.iPad.createPopover would take.
Because of how Apple exposes the functionality of customizing popovers, certain things are hardwired until a more consistent way is discovered. As such, you may have to modify the constants mentioned in the _initWithProperties: method in TiCustompopoverPopoverProxy.m, lines 35 to 41.
10 images must be provided: 5 at standard resolution, 5 at retina display resolution, named popoverBackground.png<EMAIL_ADDRESS>popoverDownArrow.png<EMAIL_ADDRESS>popoverLeftArrow.png<EMAIL_ADDRESS>popoverRightArrow.png<EMAIL_ADDRESS>popoverUpArrow.png<EMAIL_ADDRESS>Both popoverBackground.png and<EMAIL_ADDRESS>are treated as stretchable images, stretching vertically and horizontally at the middle.
ArrowOverlap specifies how much of the arrow graphics are superimposed on top of the background graphic. The reason for the overlap is to allow for the arrow to change the border of the background where the two merge. This is set to 10 device-independent pixels on line 35 of TiCustompopoverPopoverProxy.m.
BorderMargins specifies how much of the background image appears outside the content area This is set to 20 device-independent pixels in each direction on line 36 of TiCustompopoverPopoverProxy.m


I'm a proud family patriarch and occasional developer of ill repute. At work I'm a Founder and the CEO at Speedscale where we help companies test applications better to run faster with less errors in production.
Speedscale automatically generates realistic API test suites for cloud native application architectures like Kubernetes. We launched in August 2020 and are backed by YCombinator, Sierra Ventures, Tech Square Ventures, Soma Capital and others.
As a side hobby my brother Mike and I design and manufacture bottle openers and bicycle frame components (Made in USA). We sell them online and through distribution.
I helped to establish a dedicated Architects team to work with some of our largest customers with the most complex monitoring needs. It's always great to see these customers share their case studies or talk about their success at our FutureStack events. I'm a firm believer in learning from real world engagements and have my team collect our best practices and share them across our organization.
Recognized as the Enterprise Technical Sales MVP back-to-back in 2016 and 2017. The APM market has changed, users need something easy to use that monitors more technologies than ever before, and can be used to communicate back to the business. We call that the Digital Intelligence Platform at New Relic.
Worked with Enterprise clients to help understand the right use cases for them and guide them through how Pentaho Data Integration and Business Analytics can solve their challenges.
After the acquisition of ITKO, I stepped in to manage the Application Delivery Presales team for North America. A key focus area for me was to keep the existing team intact. We doubled the team, trained 300 CA folks and tripled our revenue within about 18 months. Our BU also had the lowest Presales attrition during my tenure.
Work closely with my sales team to present cutting-edge technology and demonstrate live during proof-of-concept engagements. Share best practices for validating SOA-based applications, including Service Virtualization (SV) to improve test coverage and speed development. Focus on Middleware/ESB for TIBCO, webMethods, Oracle/BEA, IBM, etc.
Help close sales by gaining the technical win. Engage in pilot projects, sales meetings, technical presentations and demonstrations. Educate prospects about best practices for Application Performance Management (APM) of Java/J2EE (WebLogic, WebSphere, JBoss) and .NET web applications.
Built quotes and proposals to respond to customer requirements for Network Management Systems (NMS). Owned the tradeshow demonstration and performed technical demonstrations and proof-of-concepts at customer locations. Ran corporate co-op program including hiring and supervising 7-10 co-ops per semester. Developed simulator programs in Java used internally and sold for over $400K in revenue. Performed on-site software “clean-up” work to close out tough projects and obtain final payments.
Coop Program
I enjoy the outdoors, mountain biking with NICA (National Interscholastic Cycling Association) or camping with the Boy Scouts.
At home you'll often find me in the basement programming the Raspberry Pis to collect some kind of data. Or laundry.
I love reading mostly SF and Fantasy but also like to keep up with the (Hacker) News.


?Ludwigia
repens
Forst.
Determined
by
Ching-I
Peng
198l
Missouri
Botanical
Garden
1^0
PLANTS
OF
BAHAMA
ISLANDS
Ludwigia
repens
J.
R.
Forst.
Grand
Bahama:
in
mud
on
rock
shelf
above
water
of
sink
pond,
Pinder's
Settlement.
January
25,
1976
D.S.Conrell
¤
John
Popenoe
46680
Herbarium
FAIRCHILD
TROPICAL
GARDEN
01447686
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


The Marquee Wizard is designed for cases where a more complex wizard is needed, such as for infrequent configuration
of detailed
system settings which may take some time and focus by the user. It provides a modal wizard which allows for greater
screen
space for the form content in each step, and a larger number of steps. Steps in the marquee wizard can be displayed,
hidden, or disabled conditionally dependent on settings on previous steps. The left hand panel can include an
optional
text string for user help (such as an introduction or description of pre-requisites). Icons can also be displayed
next
to each step title if required, and a wizard title and icon can also be added.
Some good practices for the use of wizards include:
Steps should be ordered logically to aid understanding, especially for less experienced users, with higher level
or general
settings appearing earlier in the sequence.
Steps should be as self-sufficient as possible, containing related and connected items.
The step title (which can be more descriptive) and label (typically 1-3 words) can be used to help summarize the
purpose
of each step, to help the user understand their progress.
Where possible, allow the user to exit a wizard part way through and retain their settings, to resume or edit
existing
progress at a later date.
The example on this page shows how to launch the Marquee Wizard inside a modal. The following code shows a component
which
launches a Marquee Wizard modal; note that the marquee-modal-window class is applied to the modal to
ensure appropriate styling.
The following attributes can be used to customize the ux-marquee-wizard component:
The current active step. When the step changes an event will be emitted containing the index of the newly active
step. If
this is not specified the wizard will start on the first step.
Allows descriptive text or custom html content to be added to the side panel of the wizard.
Allows customization of the wizard step items in the side panel of the wizard.
See "Custom Step Template" below for an example.
Defines the text displayed in the 'Next' button.
Defines the text displayed in the 'Previous' button.
Defines the text displayed in the 'Cancel' button.
Defines the text displayed in the 'Finish' button.
Defines the text displayed in the tooltip when the 'Next' button is hovered.
Defines the text displayed in the tooltip when the 'Previous' button is hovered.
Defines the text displayed in the tooltip when the 'Cancel' button is hovered.
Defines the text displayed in the tooltip when the 'Finish' button is hovered.
Defines the text for the aria label on the 'Next' button.
Defines the text for the aria label on the 'Previous' button.
Defines the text for the aria label on the 'Cancel' button.
Defines the text for the aria label on the 'Finish' button.
If set to true the 'Next' button will appear disabled and will not respond to clicks.
If set to
true the 'Previous' button will appear disabled and will not respond to clicks.
If set to
true the 'Cancel' button will appear disabled and will not respond to clicks.
If set to
true the 'Finish' button will appear disabled and will not respond to clicks.
If set to
false the 'Next' button will be hidden.
If set to
false the 'Previous' button will be hidden.
If set to
false the 'Cancel' button will be hidden.
If set to
false the 'Finish' button will be hidden.
If set to
true the 'Cancel' button will be visible even on the last step. By default it will be hidden on the
final
step.
If set to
true the 'Finish' button will be visible on all steps of the wizard. By default this button will
only be visible
on the final step of the wizard.
If set to true the 'Next' or 'Finish' button will become disabled when the current step is invalid.
Whether to set visited to false on subsequent steps after a validation fault.
If set to
true there will be a resizable splitter between the side panel and main content of
the wizard.
Width of the side panel as a percent. This is only accessible when resizable is enabled.
Width of the splitter in pixels. This is only accessible when resizable is enabled.
If set to false the user will be allowed to navigate to any step in any order.
Emits before the current step changes. The event contains the current step index in the
from property, and the requested step index in the to property.
Emits when the current step has changed.
Emits when the user tries to continue but the current step is invalid.
Emits when the wizard has moved to the next step. It will receive the current step index as a parameter.
Emits when the wizard has moved to the previous step. It will receive the current step index as a parameter.
Emits when the 'Cancel' button has been pressed.
Emits when the 'Finish' button is clicked, but before the finish event fires. This fires regardless of the
validity of the final step.
Emits when the 'Finish' button has been pressed and the final step is valid.
Emits when finished dragging the splitter. The event contains the current width of the side panel
in a percentage value. This is only accessible when resizable is enabled.
The following properties can be used to configure the ux-marquee-wizard-step:
The text to be displayed in the wizard step tab.
Allows you to define whether or not a step is valid. The user will not be able to proceed to the next step if
this property
has a value of false.
A custom function which returns the validation status for the step.
This function will be called when 'Next' or 'Finish' is clicked.
A promise may be returned if asynchronous validation is required.
If using this property, ensure that disableNextWhenInvalid is false.
Defines whether or not this step has previously been visited. A visited step can be clicked on and jumped to at
any time.
By default, steps will become 'visited' when the user navigates to a step for the first time.
Defines whether or not this step has previously been completed. A completed step can be clicked on and jumped to
at any time.
By default, steps will become 'completed' when the user navigates to the next step.
If set to true the 'Next' or 'Finish' button will become disabled when the current step is invalid.
This will override the value
set on the ux-marquee-wizard.
Defines additional data that will be available to a custom stepTemplate.
Emits when visited changes.
Emits when completed changes.
Custom Step Icon
The *uxMarqueeWizardStepIcon structural directive can be used to define an icon for each step.
Custom Step Template
The element representing each step in the side panel can be customized by providing a custom
stepTemplate.
The template will have access to data associated with that step via the template context which will conform to
the MarqueeWizardStepContext interface.
Below is an example of how to provide a custom step template, how to pass data to the template, and how to access
the template context.
The wizard step component instance.
The index of the current step.
The additional context data provided using the context Input on the
ux-marquee-wizard-step element.
Custom Footer Template
Custom content can be added to left of the standard wizard buttons in the footer. Add an ng-template
named #footerTemplate as a child of the ux-marquee-wizard element. The step
context variable can be used to access the current step number (zero-based).
The following code can be used create the example above:


Featured
Stories
Saved
Refresh
Bootstrap
Bootply
Toggle
Go
Repositories
Issues+
Choose issues to change
Edit
Description
Type
Status
Milestone
No issues to show
Twitter
|
Facebook
|
Google+
©Copyright 2015
Download this Template @Bootply
×
Edit issue
Components
No value
Component 1
Component 2
Component 3
Kind
No value
Bug
Enhancement
Task


[gecode-users] customize IntVar
Changbin Liu
changbin.liu at gmail.com
Fri Apr 15 01:18:25 CEST 2011
Hi folks,
I am trying to customize existing class IntVar by adding some more data
member into it. My current way is to subclass from IntVar (say the new class
name is MyIntVar) and write constructors and new member functions to
manipulate the new data. This works well.
However, if I want to use IntVarArray and IntVarArgs to hold MyIntVar, all
MyIntVar elements seems are converted to IntVar.
For example, in the code
MyIntVar myIntVar(*this, 0, 10);
IntVarArgs intVarArgs;
intVarArgs << myIntVar;
I observe that intVarArgs[0] is IntVar type. I can not even use dynamic_cast
to cast it to MyIntVar.
If I do it another way by implementing MyIntVarArray and MyIntVarArgs for
MyIntVar following the document "Modeling and Programming with Gecode" (this
corresponds to IntVarArray and IntVarArgs for IntVar), this works well. But
the problem is that constraints posting (e.g. sum, "+") do not work on new
MyIntVarArray and MyIntVarArgs.
Basically, my question is what is the easiest to way to slightly modify
IntVar to adapt to user needs.
Many thanks
--
--------------------------------------------
Changbin Liu
Computer & Information Science Department
University of Pennsylvania
Philadelphia, PA
U.S.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gecode.org/pipermail/users/attachments/20110414/e1f014a4/attachment.htm>
More information about the users
mailing list


The merfolk Planeswalker Kiora, a native of Zendikar, has been traveling the planes to strengthen her connection to the oceans' magic. Her home has been ravaged by the Eldrazi swarm, and she believes that only by summoning the fierce krakens, serpents, and other terrors of the deep can she defeat the titans who now rule Zendikar.
Kiora has come to Theros in search of the immense sea creatures that dwell here. Shortly after she arrived, she raised up an enormous wave to call to the ocean beasts. The wave smashed against the shore near Meletis and caused considerable damage. It also alerted the tritons, Theros's native merfolk, to a new power in their realm.
Some tritons believe that Kiora is an avatar or herald of Thassa, god of the sea. Kiora does not disabuse them of this notion—in fact, she rather enjoys the attention. Thassa, however, might take offense if Kiora continues to appropriate her proper worship.


Various utilities to manipulate multivariate polynomials.
| Version: | 1.0-7 |
| Depends: | abind |
| Suggests: | polynom |
| Published: | 2018-03-20 |
| Author: | Robin K. S. Hankin |
| Maintainer: | Robin K. S. Hankin <hankin.robin at gmail.com> |
| License: | GPL-2 | GPL-3 [expanded from: GPL] |
| NeedsCompilation: | no |
| In views: | NumericalMathematics |
| CRAN checks: | multipol results |
| Reference manual: | multipol.pdf |
| Vignettes: |
A vignette for the multipol package |
| Package source: | multipol_1.0-7.tar.gz |
| Windows binaries: | r-devel: multipol_1.0-7.zip, r-release: multipol_1.0-7.zip, r-oldrel: multipol_1.0-7.zip |
| OS X binaries: | r-release: multipol_1.0-7.tgz, r-oldrel: multipol_1.0-7.tgz |
| Old sources: | multipol archive |
| Reverse depends: | symmoments |
Please use the canonical form https://CRAN.R-project.org/package=multipol to link to this page.


get pizza, why not
add topping
size of pizza
how much?
Put in pizza cart for later
your pizza will be:


YM's Bookstore
Books
Browse the bookshelf
Store hours & Directions
FAQ
Search
Shopping Cart
Log in
Profile
Logout
Home
Edit
Orders
Billing
Shipping
Link
Link
Link
Link
Link
Link
Link


Text Processor
This is a single-page application, built with:
Status:
- Display statistics about the text, such as how many hyphens, words and spaces inside the given text- done
- Create an option to sort the text in different ways, such as alphabetical, number first, capitals first etc - In Progress
- Enable inputs with different validations, such as only digits, capitals etc - Pending


| Test Case Number |
Test Case Name |
FF3 |
| 3. Document Structure |
| 3.1.a |
XForms namespace |
Passed |
| 3.2.1.a |
id attribute |
Passed |
| 3.2.1.b |
foreign attributes |
Passed |
| 3.2.2.a |
src attribute |
Failed |
| 3.2.3.a |
single-node binding - ref attribute |
Passed |
| 3.2.3.b |
single-node binding - model attribute |
Passed |
| 3.2.3.c |
single-node binding - bind attribute |
Passed |
| 3.2.3.d |
single-node binding - bind attribute overrides ref and model |
Passed |
| 3.2.3.e |
single-node binding - invalid bind IDREF |
Passed |
| 3.2.3.f |
single-node binding - invalid model IDREF |
Passed |
| 3.2.3.g |
first node rule |
Passed |
| 3.2.4.a |
node-set binding - nodeset attribute and bind attribute override |
Failed |
| 3.2.4.b |
node-set binding - model attribute of itemset element |
Failed |
| 3.2.4.c |
node-set binding - bind attribute of itemset element |
Failed |
| 3.2.4.d |
node-set binding - bind attribute overrides model attribute |
Passed |
| 3.2.4.e |
node-set binding - invalid model IDREF |
Failed |
| 3.2.4.f |
node-set binding - invalid bind IDREF |
Failed |
| 3.3.a |
processor must ignore unrecognized foreign-namespaced attributes |
Passed |
| 3.3.1.a1 |
50 models created |
Passed |
| 3.3.1.a2 |
no models created |
Passed |
| 3.3.1.b |
invalid function |
Passed |
| 3.3.1.c1 |
valid schema |
Passed |
| 3.3.1.c2 |
invalid schema |
Failed |
| 3.3.1.d1 |
version attribute |
Passed |
| 3.3.1.d2 |
version attribute negative test 1 |
Failed |
| 3.3.1.d3 |
version attribute negative test 2 |
Failed |
| 3.3.2.a |
model with no instance |
Passed |
| 3.3.2.b |
instance with inline data |
Passed |
| 3.3.2.c |
instance with resource attribute |
Failed |
| 3.3.2.d |
instance with invalid resource link |
Passed |
| 3.3.2.e |
instance with inline data and resource attribute |
Passed |
| 3.3.2.f |
instance with inline data, resource attribute, and src attribute |
Failed |
| 3.3.2.g |
inline content has two top-level nodes in instance element |
Failed |
| 3.3.2.h |
invalid instance causes exception with resource-uri |
Failed |
| 3.3.4.a |
nodeset attribute of bind element |
Passed |
| 3.3.4.b |
more bind element examples |
Failed |
| 3.4.1.a |
extension element |
Passed |


CrossWikiFact early prototype
(Please vote for our proposal to make it possible)
Wikidata Q$i
Back to overview
CrossWikifact proposal
Labels from 128 DBpedia versions
$labels
Description
This is a prototype created for the following grant proposal:
CrossWikifact . We used DBpedia to compare the values of the
different Infoboxes of 128 Wikipedia versions to Wikidata in order to
help editors make Wikipedia/Wikidata better. The proposal is about
elaborating this website in the following way:
- add references which are cited in Wikipedia
- add links to the Wikipedias/Wikidata, so users can easily edit
- at the moment data a lot of available data from DBpedia and Wikidata is still missing on this website (e.g. geocoordinates)
- if possible, simplify the import into wikidata, e.g. by pre-filled forms
- extensive details are given in the proposal
We (DBpedia) plan to deliver the following things as in-kind contribution (i.e. no covered by the requested amount):
- provide weekly updates for all infoboxes and updates for wikidata in realtime
- we would like to better check correctness of the values in the table
- add more potential values from more official datasources (governments, libraries) to be able to compare more values
- improve the alignment between the infoboxes and wikidata
please, do not be so strict, we coded this prototype in a couple
of hours only
| property | Value Count | Uniformity measure | in Wikidata? | Values | Values | Values | Values |
$table


Return To Services
{{Service_Name}} for {{Car_Name}}
Cost: ${{Cost}}.00
Travel fee:
Taxes:
Estimated Time of Arrival: {{ETA}}
Help is on the Way!
{{Service_Name}} For:
{{Car_Name}}
Cost: ${{Cost}}.00
Service Cost:
${{Cost}}.00
Travel Fee ($5/mile):
$20.00
Taxes:
$7.19
Total:
$67.19
Estimated Arrival Time:
{{ETA}}


CREATIVE & DESIGN
We are really love to define and plan wow experiences!
Our Mission: plan, dream, create and lead your goals, product and business to success.
We are really love to define and plan wow experiences!
We are using our best thoughts and a varity of updated technologies.
We are an united team which care for the clients and users!
Experiences are the main goal.
What are experiences? They are emotions, thoghts and connections which wake up from communication with services and messages. It is really important to light up expernices. So let's creat and innovate today!
Many ideas and ways to create for you wow effect.
Specification, planing and design your mind for success
Specification, consulting and manageing for digital products and projects
Graphic Design, Branding, Multimedia and Motion Design.
UIUX, Website building and development which fit for diffrent screens.
Cilent side and back end side code for websites, dashboards and applictions.
Marketing and promotion are main art to tell and to fullfill your goals
Consulting, brand managment, creative, graphic design and photography.
Consulting, producing, post-production, writing, video and photography.
We love to tell the story with blogging and our vblog.
Specification, planing and teaching for all the R & D and digital lifestyle
Adaptation and representation of technological professionals and artists


First Name:
Last Name:
Gender:
Male
Female
Date Of Birth:
Nationality:
Languages Known:
Email:
Phone:
Do you have UAE driving license :
Yes
No
Do you have your own transportation :
Yes
No
Please select your availability :
Tip : To select multiple times, you may click and drag from top to bottom.
Experience as Personal Assistant :
0 years
1 - 3 years
4+ years
Personal Assistant field (select more than one if necessary applicable) :
VIP, CEO, Top executive Personal/Executive assistant
Admin Assistant/Secretary
PRO/Government relations/Visas/Immigration
Errand runner
Care assistant/Nurse/Healthcare Related
Upload your CV
0%
Remove
Cancel
Upload
Browse …
Submit Application


Main Features
-
* Support for YouTube, Facebook, Vimeo, Dailymotion.
* Playlist Downloading
* Smart Clipboard Grabbing
* Auto-Downloading with multi-threading supported
* Automatic ID3 Tagging
* Unlimited Concurrent Downloads
* Queue Management
* Cross Platform


[... who doesn't have time to become a bird expert ...]
Begin by clicking the button below.
Birds of North America
The Birds of North America (P. Rodewald, Ed.). Ithaca: Cornell Laboratory of Ornithology; Retrieved from The Birds of North America: https://birdsna.org; AUG 2015.
All About Birds
Information about bird species and conservation status sourced from www.allaboutbirds.org


id:
title:
creator:
subject:
publisher:
contributor:
date:
type:
format:
identifier:
source:
language:
relation:
coverage:
rights:
tags:
filename:
description: