Source code for alarmdecoder.util
"""
Provides utility classes for the `AlarmDecoder`_ (AD2) devices.
.. _AlarmDecoder: http://www.alarmdecoder.com
.. moduleauthor:: Scott Petersen<EMAIL_ADDRESS>"""
import time
import threading
from io import open
[docs]class NoDeviceError(Exception):
"""
No devices found.
"""
pass
[docs]class CommError(Exception):
"""
There was an error communicating with the device.
"""
pass
[docs]class TimeoutError(Exception):
"""
There was a timeout while trying to communicate with the device.
"""
pass
[docs]class InvalidMessageError(Exception):
"""
The format of the panel message was invalid.
"""
pass
[docs]class UploadError(Exception):
"""
Generic firmware upload error.
"""
pass
[docs]class UploadChecksumError(UploadError):
"""
The firmware upload failed due to a checksum error.
"""
pass
[docs]class Firmware(object):
"""
Represents firmware for the `AlarmDecoder`_ devices.
"""
# Constants
STAGE_START = 0
STAGE_WAITING = 1
STAGE_BOOT = 2
STAGE_LOAD = 3
STAGE_UPLOADING = 4
STAGE_DONE = 5
STAGE_ERROR = 98
STAGE_DEBUG = 99
# FIXME: Rewrite this monstrosity.
@staticmethod
[docs] def upload(dev, filename, progress_callback=None, debug=False):
"""
Uploads firmware to an `AlarmDecoder`_ device.
:param filename: firmware filename
:type filename: string
:param progress_callback: callback function used to report progress
:type progress_callback: function
:raises: :py:class:`~alarmdecoder.util.NoDeviceError`, :py:class:`~alarmdecoder.util.TimeoutError`
"""
def do_upload():
"""
Perform the actual firmware upload to the device.
"""
with open(filename) as upload_file:
line_cnt = 0
for line in upload_file:
line_cnt += 1
line = line.rstrip()
if line[0] == ':':
dev.write(line + "\r")
response = dev.read_line(timeout=5.0, purge_buffer=True)
if debug:
stage_callback(Firmware.STAGE_DEBUG, data="line={0} - line={1} response={2}".format(line_cnt, line, response));
if '!ce' in response:
raise UploadChecksumError("Checksum error on line " + str(line_cnt) + " of " + filename);
elif '!no' in response:
raise UploadError("Incorrect data sent to bootloader.")
elif '!ok' in response:
break
else:
if progress_callback is not None:
progress_callback(Firmware.STAGE_UPLOADING)
time.sleep(0.0)
def read_until(pattern, timeout=0.0):
"""
Read characters until a specific pattern is found or the timeout is
hit.
"""
def timeout_event():
"""Handles the read timeout event."""
timeout_event.reading = False
timeout_event.reading = True
timer = None
if timeout > 0:
timer = threading.Timer(timeout, timeout_event)
timer.start()
position = 0
dev.purge()
while timeout_event.reading:
try:
char = dev.read()
if char is not None and char != '':
if char == pattern[position]:
position = position + 1
if position == len(pattern):
break
else:
position = 0
except Exception as err:
pass
if timer:
if timer.is_alive():
timer.cancel()
else:
raise TimeoutError('Timeout while waiting for line terminator.')
def stage_callback(stage, **kwargs):
"""Callback to update progress for the specified stage."""
if progress_callback is not None:
progress_callback(stage, **kwargs)
if dev is None:
raise NoDeviceError('No device specified for firmware upload.')
stage_callback(Firmware.STAGE_START)
if dev.is_reader_alive():
# Close the reader thread and wait for it to die, otherwise
# it interferes with our reading.
dev.stop_reader()
while dev._read_thread.is_alive():
stage_callback(Firmware.STAGE_WAITING)
time.sleep(0.5)
# Reboot the device and wait for the boot loader.
retry = 3
found_loader = False
while retry > 0:
try:
stage_callback(Firmware.STAGE_BOOT)
dev.write("=")
read_until('!boot', timeout=15.0)
# Get ourselves into the boot loader and wait for indication
# that it's ready for the firmware upload.
stage_callback(Firmware.STAGE_LOAD)
dev.write("=")
read_until('!load', timeout=15.0)
except TimeoutError as err:
retry -= 1
else:
retry = 0
found_loader = True
# And finally do the upload.
if found_loader:
try:
do_upload()
except UploadError as err:
stage_callback(Firmware.STAGE_ERROR, error=str(err))
else:
stage_callback(Firmware.STAGE_DONE)
else:
stage_callback(Firmware.STAGE_ERROR, error="Error entering bootloader.")


2B a YorHa unit type battilion. She is more offensive than her partner, 9S. Her mission is bring an end to the alien lifeforms that have taken over the earth. She is more serious than other types.
"The machines don't have feelings, you said it yourself Nines"
9S is a YorHa unit type scanner. He is less offensive than other YorHa units. His main use is that he finds and analyzes data rather purely combat like his companion 2B. He is more analytical than other types.
"The Commander, Me.. 2B? Sacrificial lambs. All of us. Isn't that HILARIOUS?"
A2 is a special type of YorHa unit, shes a rouge older version of a YorHa unit. She shares ties with 2B, and knows about a secret that changes 9S' outlook of YorHa, The Council of Humanity, and the "humans" on the Moon.
"I never quite realized how beautiful this world is"
Adam is the brother of Eve, and is a strange YorHa unit. He was born practically out of the android lifeforms and represents a YorHa unit.
"Machines are weapons capable of evolution. We can grow, we can become aware"
Eve, the brother of Adam. He was born from a part of his brother Adam. Eventually Adam is killed off by 2B and 9S which causes Eve to go berserk and attack YorHa units 2B and 9S.
"My name? This book says it's a woman's name. Shouldn't we be called Cain and Abel or something?"
These two get a special section as they are not part of the main game entirely and are actually apart of another game called "Nier" which takes place in a different time. Both are sisters who worked as merchents in the past they showed up to defend 9S from an attack in order for him to find out the truth of this world.
Subsitute for main website with character bios, images, and quotes.
End Credit Quotes from 2B
"Less chatter and engage the enemy" "We are perpetually trapped.. in a never ending spiral of life and death. However life is all about the struggle within this cycle. That is what we believe." "Everything that lives is designed to end"
Copyright © All Rights Reserved Visit My Github!
Made with ♥ using Bootstrap


| HIMS - NCD Module | ||
|---|---|---|
|
|
||
|
Demo Version - Scroll Down to Find User Credentials. |
||
|
|
Username |
|
| Password |
|


A film can never replace the wealth of information a book contains, but it can express, narrate, and capture experiences, ideas, and emotions that no book can because of its audiovisual nature. You may use these modules to critique on the quality of direction, content of screenplay, acting, cinematography, and other film elements expand and probe into the complexities of film and history.
Martial law
Learn more about the events leading up to the overthrow of Ferdinand Marcos’ regime. The documentary includes interviews with the principals involved in the conflict, extensive news footage and some dramatization of historical events.


Favorite Quotes!
-
"Whatever doesn't kill you only makes you stranger" - The Joker
-
"Smite the shephard and the sheep will be scattered" -
Randy Blythe
-
"Success is not final, failure is not fatal, it is the courage to
continue that counts" - Winston Churchill
-
"You mustn't be afraid to dream a little bigger" - Tom Hardy
-
"If you have to shine like the sun first you have to burn like it" -
Adolf Hitler
Back to home page!


Welcome to Leo’s Campground! We are a family owned business that is proud to say we have been hosting campers for over 40 years. We are located at mile marker 4.5 and are simply 1000 feet from the entrance of Key West. We are known for our outstanding staff who treats our customers as family, and our native iguanas whom are glad to be a part of the Leo’s community. Look no further for an affordable, fun, and unique place to stay on your vacation. Call us today.


House explosion family 'still in shock' after aerosol accident
by Mairead HollandA MAN whose living room and kitchen windows were blown out after an air freshener exploded said he and his family were lucky to be alive.
The explosion happened in the living room of the house in Lagmore Meadows, west Belfast, around 11pm on Saturday night.
Yesterday, the living room and kitchen windows had been boarded up after the glass and PVC frames were blown out by the force of the blast.
The man, who did no wish to be identified, said two children were asleep upstairs and four adults were in the kitchen when the explosion occurred.
Subscribe to our most read headlines in the evening newsletter
He said they were "still in shock" but felt "lucky to be alive" and that things could have turned out very differently, particularly if they had been in the living room at the time.
A woman in the house was also treated for injuries after falling down stairs in the ensuing panic.
The man said the stove on which the air freshener sat had been lit that night for the first time in months.
The explosion forced open the door connecting the living room and the kitchen, with splintered wood on the panels evidence of what had taken place.
Ironically, items in the living room including a mirror, TV and lamp were not damaged in the blast.
The NI Fire and Rescue Service (NIFRS) said the explosion was caused by an air freshener that had heated up after being placed on a wood-burning stove.
NIFRS Assistant Group Commander Michael Roberts said the 39-year-old woman was treated for pelvic injuries after falling as she came down the stairs.
He told the BBC it was a significant explosion and that there could have been "different circumstances" had someone been in the living room when the blast happened.
Group Commander Roberts said the heated aerosol had ruptured causing an "overpressure" in the house, which blew out the windows.
He added that damage was "very minimal" and that an explosion of that nature was "very rare" in his 27 years as a firefighter.
"I would ask the public to be vigilant, always store any aerosol canisters away from any source of heat or naked flame," he said.


public interface PathfindController extends Controller
| Modifier and Type | Method and Description |
|---|---|
void |
blockNext()
Block next coordinate in path.
|
boolean[] |
calculate()
Calculate pathfinding and the states for visited and blocked of the
back, front, left, right respectively.
|
void |
goNext()
Go to next coordinate in path.
|
boolean |
isNextBlocked()
Checks if next coordinate in path is blocked.
|
boolean |
isNextVisited()
Checks if next coordinate in path is visited.
|
String |
rawGraphToString()
String representation of the raw graph.
|
void |
reset()
Reset pathfinding.
|
void |
rotateLeft()
Rotate to the left coordinate in path.
|
void |
rotateRight()
Rotate to the right coordinate in path.
|
void |
unblockNext()
Unblock next coordinate in path.
|
void |
visit()
Visit current coordinate in path.
|
void blockNext()
boolean[] calculate()
void goNext()
boolean isNextBlocked()
boolean isNextVisited()
String rawGraphToString()
void reset()
void rotateLeft()
void rotateRight()
void unblockNext()
void visit()
Copyright © 2018. All rights reserved.


Ocean [al47], ocean, in The Inner Sea
Last updated Turn #81
Ocean [al47], ocean, in The Inner Sea
------------------------------------------------------------------------
22: Groucho [hu9z], ship, 10 hulls, 1 rowing port, 30 sails, with ram,
22: arrived from Ocean [al48], owner:
22: Kijaro [u4q], Pen, with one worker, 32 sailors
22: Biguah [k7h], Imperial Empire, with 16 nazgul, accompanied by:
22: Piadora [v3y], Imperial Empire, with 16 nazgul
22: Chewbacca [w2h], Imperial Empire, the High Priest of the Church
22: of Timeid [154], with nine angels
22: Ynko [s5q], Imperial Empire, priest of the Church of Dol [153],
22: with six nazgul
23: Groucho [hu9z], ship, 10 hulls, 1 rowing port, 30 sails, with ram,
23: departed for Unnamed Plains [al46].
30: It is no longer windy.
Routes leaving Ocean:
North, to Ocean [ak47], 6 days
East, to Ocean [al48], 6 days
South, to Ocean [am47], 6 days
West, plain, to Unnamed Plains [al46], Catarack Island, 2 days
Garrison [ew2j], garrison, Pen, with ten soldiers, eight sailors


Create tournament
Tournament name
Number of teams
Description
Latitude of the location
Longitude of the location
Submit


|
ICEfaces ACE Components 3.3.0 Java API Documentation |
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object javax.faces.component.UIComponent javax.faces.component.UIComponentBase javax.faces.component.UIOutput javax.faces.component.UIInput javax.faces.component.html.HtmlInputText org.icefaces.ace.component.autocompleteentry.AutoCompleteEntryBase
public class AutoCompleteEntryBase
AutoCompleteEntry is a text input component that presents possible valid options as the user types. The options can be a list of SelectItem's specified in a child
For more information, see the AutoCompleteEntry Wiki Documentation.
| Nested Class Summary | |
|---|---|
protected static class |
AutoCompleteEntryBase.PropertyKeys
|
| Field Summary | |
|---|---|
static java.lang.String |
COMPONENT_TYPE
|
static java.lang.String |
RENDERER_TYPE
|
| Fields inherited from class javax.faces.component.UIInput |
|---|
COMPONENT_FAMILY, CONVERSION_MESSAGE_ID, REQUIRED_MESSAGE_ID, UPDATE_MESSAGE_ID, VALIDATE_EMPTY_FIELDS_PARAM_NAME |
| Fields inherited from class javax.faces.component.UIComponent |
|---|
ATTRS_WITH_DECLARED_DEFAULT_VALUES, BEANINFO_KEY, bindings, COMPOSITE_COMPONENT_TYPE_KEY, COMPOSITE_FACET_NAME, CURRENT_COMPONENT, CURRENT_COMPOSITE_COMPONENT, FACETS_KEY, HONOR_CURRENT_COMPONENT_ATTRIBUTES_PARAM_NAME, VIEW_LOCATION_KEY |
| Constructor Summary | |
|---|---|
AutoCompleteEntryBase()
|
| Method Summary | |
|---|---|
void |
addClientBehavior(java.lang.String eventName,
javax.faces.component.behavior.ClientBehavior behavior)
|
java.lang.String |
getDefaultEventName()
|
java.lang.String |
getDefaultExecute(java.lang.String event)
|
java.lang.String |
getDefaultRender(java.lang.String event)
|
int |
getDelay()
Return the value of the delay property. |
java.lang.String |
getDirection()
Return the value of the direction property. |
java.util.Collection<java.lang.String> |
getEventNames()
|
java.lang.String |
getFamily()
|
java.lang.Object |
getFilterBy()
Return the value of the filterBy property. |
java.lang.String |
getFilterMatchMode()
Return the value of the filterMatchMode property. |
int |
getHeight()
Return the value of the height property. |
java.lang.String |
getHideEffect()
Return the value of the hideEffect property. |
int |
getHideEffectLength()
Return the value of the hideEffectLength property. |
java.lang.String |
getIndicatorPosition()
Return the value of the indicatorPosition property. |
java.util.List |
getItemList()
Return the value of the itemList property. |
java.lang.String |
getLabelPosition()
Return the value of the labelPosition property. |
java.util.List |
getListValue()
Return the value of the listValue property. |
java.lang.String |
getListVar()
Return the value of the listVar property. |
int |
getMinChars()
Return the value of the minChars property. |
java.lang.String |
getOptionalIndicator()
Return the value of the optionalIndicator property. |
java.lang.String |
getRequiredIndicator()
Return the value of the requiredIndicator property. |
int |
getRows()
Return the value of the rows property. |
java.lang.String |
getShowEffect()
Return the value of the showEffect property. |
int |
getShowEffectLength()
Return the value of the showEffectLength property. |
java.lang.String |
getText()
Return the value of the text property. |
javax.el.MethodExpression |
getTextChangeListener()
Return the value of the textChangeListener property. |
int |
getWidth()
Return the value of the width property. |
boolean |
isCaseSensitive()
Return the value of the caseSensitive property. |
boolean |
isClientSide()
Return the value of the clientSide property. |
java.lang.Boolean |
isPopulateList()
Return the value of the populateList property. |
void |
setCaseSensitive(boolean caseSensitive)
Set the value of the caseSensitive property. |
void |
setClientSide(boolean clientSide)
Set the value of the clientSide property. |
void |
setDelay(int delay)
Set the value of the delay property. |
void |
setDirection(java.lang.String direction)
Set the value of the direction property. |
void |
setFilterBy(java.lang.Object filterBy)
Set the value of the filterBy property. |
void |
setFilterMatchMode(java.lang.String filterMatchMode)
Set the value of the filterMatchMode property. |
void |
setHeight(int height)
Set the value of the height property. |
void |
setHideEffect(java.lang.String hideEffect)
Set the value of the hideEffect property. |
void |
setHideEffectLength(int hideEffectLength)
Set the value of the hideEffectLength property. |
void |
setIndicatorPosition(java.lang.String indicatorPosition)
Set the value of the indicatorPosition property. |
void |
setItemList(java.util.List itemList)
Set the value of the itemList property. |
void |
setLabelPosition(java.lang.String labelPosition)
Set the value of the labelPosition property. |
void |
setListValue(java.util.List listValue)
Set the value of the listValue property. |
void |
setListVar(java.lang.String listVar)
Set the value of the listVar property. |
void |
setMinChars(int minChars)
Set the value of the minChars property. |
void |
setOptionalIndicator(java.lang.String optionalIndicator)
Set the value of the optionalIndicator property. |
void |
setPopulateList(java.lang.Boolean populateList)
Set the value of the populateList property. |
void |
setRequiredIndicator(java.lang.String requiredIndicator)
Set the value of the requiredIndicator property. |
void |
setRows(int rows)
Set the value of the rows property. |
void |
setShowEffect(java.lang.String showEffect)
Set the value of the showEffect property. |
void |
setShowEffectLength(int showEffectLength)
Set the value of the showEffectLength property. |
void |
setText(java.lang.String text)
Set the value of the text property. |
void |
setTextChangeListener(javax.el.MethodExpression textChangeListener)
Set the value of the textChangeListener property. |
void |
setWidth(int width)
Set the value of the width property. |
| Methods inherited from class javax.faces.component.html.HtmlInputText |
|---|
getAccesskey, getAlt, getAutocomplete, getDir, getLabel, getLang, getMaxlength, getOnblur, getOnchange, getOnclick, getOndblclick, getOnfocus, getOnkeydown, getOnkeypress, getOnkeyup, getOnmousedown, getOnmousemove, getOnmouseout, getOnmouseover, getOnmouseup, getOnselect, getSize, getStyle, getStyleClass, getTabindex, getTitle, isDisabled, isReadonly, setAccesskey, setAlt, setAutocomplete, setDir, setDisabled, setLabel, setLang, setMaxlength, setOnblur, setOnchange, setOnclick, setOndblclick, setOnfocus, setOnkeydown, setOnkeypress, setOnkeyup, setOnmousedown, setOnmousemove, setOnmouseout, setOnmouseover, setOnmouseup, setOnselect, setReadonly, setSize, setStyle, setStyleClass, setTabindex, setTitle |
| Methods inherited from class javax.faces.component.UIInput |
|---|
addValidator, addValueChangeListener, clearInitialState, compareValues, decode, getConvertedValue, getConverterMessage, getRequiredMessage, getSubmittedValue, getValidator, getValidatorMessage, getValidators, getValueChangeListener, getValueChangeListeners, isEmpty, isImmediate, isLocalValueSet, isRequired, isValid, markInitialState, processDecodes, processUpdates, processValidators, removeValidator, removeValueChangeListener, resetValue, restoreState, saveState, setConverterMessage, setImmediate, setLocalValueSet, setRequired, setRequiredMessage, setSubmittedValue, setValid, setValidator, setValidatorMessage, setValue, setValueChangeListener, updateModel, validate, validateValue |
| Methods inherited from class javax.faces.component.UIOutput |
|---|
getConverter, getLocalValue, getValue, setConverter |
| Methods inherited from class javax.faces.component.UIComponentBase |
|---|
addFacesListener, broadcast, encodeBegin, encodeChildren, encodeEnd, findComponent, getAttributes, getChildCount, getChildren, getClientBehaviors, getClientId, getFacesContext, getFacesListeners, getFacet, getFacetCount, getFacets, getFacetsAndChildren, getId, getListenersForEventClass, getParent, getRenderer, getRendererType, getRendersChildren, getValueBinding, invokeOnComponent, isRendered, isTransient, processRestoreState, processSaveState, queueEvent, removeFacesListener, restoreAttachedState, saveAttachedState, setId, setParent, setRendered, setRendererType, setTransient, setValueBinding, subscribeToEvent, unsubscribeFromEvent |
| Methods inherited from class javax.faces.component.UIComponent |
|---|
encodeAll, getClientId, getCompositeComponentParent, getContainerClientId, getCurrentComponent, getCurrentCompositeComponent, getNamingContainer, getResourceBundleMap, getStateHelper, getStateHelper, getTransientStateHelper, getTransientStateHelper, getValueExpression, initialStateMarked, isCompositeComponent, isInView, isVisitable, popComponentFromEL, processEvent, pushComponentToEL, restoreTransientState, saveTransientState, setInView, setValueExpression, visitTree |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface javax.faces.component.behavior.ClientBehaviorHolder |
|---|
getClientBehaviors |
| Methods inherited from interface javax.faces.component.ValueHolder |
|---|
getConverter, getLocalValue, getValue, setConverter |
| Field Detail |
|---|
public static final java.lang.String COMPONENT_TYPE
public static final java.lang.String RENDERER_TYPE
| Constructor Detail |
|---|
public AutoCompleteEntryBase()
| Method Detail |
|---|
public java.lang.String getFamily()
getFamily
in class javax.faces.component.UIInput
public void setCaseSensitive(boolean caseSensitive)
Set the value of the caseSensitive
property.
Contents: Boolean value that indicates whether the filtering should be case sensitive or not.
setCaseSensitive
in interface IAutoCompleteEntry
public boolean isCaseSensitive()
Return the value of the caseSensitive
property.
Contents: Boolean value that indicates whether the filtering should be case sensitive or not. Default = 'false'.
isCaseSensitive
in interface IAutoCompleteEntry
public void setClientSide(boolean clientSide)
Set the value of the clientSide
property.
Contents: Boolean value that indicates whether the autocomplete functionality should be done on the client or on the server. Client-side mode can be faster, as no round trips to the server need to be made. However, if the list of possible results is too large, the browser might become slower, since the entire list has to be stored in the client as HTML nodes. It is recommended not to use lists of more than 1000 items when using the client-side mode.
setClientSide
in interface IAutoCompleteEntry
public boolean isClientSide()
Return the value of the clientSide
property.
Contents: Boolean value that indicates whether the autocomplete functionality should be done on the client or on the server. Client-side mode can be faster, as no round trips to the server need to be made. However, if the list of possible results is too large, the browser might become slower, since the entire list has to be stored in the client as HTML nodes. It is recommended not to use lists of more than 1000 items when using the client-side mode. Default = 'false'.
isClientSide
in interface IAutoCompleteEntry
public void setDelay(int delay)
Set the value of the delay
property.
Contents: Delay in milliseconds for showing the list of possible matches after typing a character.
setDelay
in interface IAutoCompleteEntry
public int getDelay()
Return the value of the delay
property.
Contents: Delay in milliseconds for showing the list of possible matches after typing a character. Default = '400'.
getDelay
in interface IAutoCompleteEntry
public void setDirection(java.lang.String direction)
Set the value of the direction
property.
Contents: Direction in which to show the list of possible matches. Possible values are "up", "down", and "auto".
setDirection
in interface IAutoCompleteEntry
public java.lang.String getDirection()
Return the value of the direction
property.
Contents: Direction in which to show the list of possible matches. Possible values are "up", "down", and "auto".
getDirection
in interface IAutoCompleteEntry
public void setFilterBy(java.lang.Object filterBy)
Set the value of the filterBy
property.
Contents: ValueExpression that specifies the property of the data object to use for filtering values. This only applies when listvar is used and the rendering is done by means of a facet.
setFilterBy
in interface IAutoCompleteEntry
public java.lang.Object getFilterBy()
Return the value of the filterBy
property.
Contents: ValueExpression that specifies the property of the data object to use for filtering values. This only applies when listvar is used and the rendering is done by means of a facet.
getFilterBy
in interface IAutoCompleteEntry
public void setFilterMatchMode(java.lang.String filterMatchMode)
Set the value of the filterMatchMode
property.
Contents: Defines the method of filter comparison used, default is "startsWith". Types available include: "contains", "exact", "startsWith", "endsWith" and "none". Typically, "none" will be used in cases where more complex, custom filtering is needed or when option values need to be loaded lazily (e.g. from a data base).
setFilterMatchMode
in interface IAutoCompleteEntry
public java.lang.String getFilterMatchMode()
Return the value of the filterMatchMode
property.
Contents: Defines the method of filter comparison used, default is "startsWith". Types available include: "contains", "exact", "startsWith", "endsWith" and "none". Typically, "none" will be used in cases where more complex, custom filtering is needed or when option values need to be loaded lazily (e.g. from a data base). Default = 'startsWith'.
getFilterMatchMode
in interface IAutoCompleteEntry
public void setHeight(int height)
Set the value of the height
property.
Contents: Maximum height in pixels of the list of possible matches (if 0, then the size is automatically adjusted to show all possible matches).
setHeight
in interface IAutoCompleteEntry
public int getHeight()
Return the value of the height
property.
Contents: Maximum height in pixels of the list of possible matches (if 0, then the size is automatically adjusted to show all possible matches).
getHeight
in interface IAutoCompleteEntry
public void setHideEffect(java.lang.String hideEffect)
Set the value of the hideEffect
property.
Contents: Effect to use when hiding the list. Possible values are 'blind', 'bounce', 'clip', 'drop', 'explode', 'fade', 'fold', 'puff', 'pulsate', 'scale', and 'slide'.
setHideEffect
in interface IAutoCompleteEntry
public java.lang.String getHideEffect()
Return the value of the hideEffect
property.
Contents: Effect to use when hiding the list. Possible values are 'blind', 'bounce', 'clip', 'drop', 'explode', 'fade', 'fold', 'puff', 'pulsate', 'scale', and 'slide'. Default = 'fade'.
getHideEffect
in interface IAutoCompleteEntry
public void setHideEffectLength(int hideEffectLength)
Set the value of the hideEffectLength
property.
Contents: Length of time in milliseconds the hide effect will last for.
setHideEffectLength
in interface IAutoCompleteEntry
public int getHideEffectLength()
Return the value of the hideEffectLength
property.
Contents: Length of time in milliseconds the hide effect will last for. Default = '150'.
getHideEffectLength
in interface IAutoCompleteEntry
public void setIndicatorPosition(java.lang.String indicatorPosition)
Set the value of the indicatorPosition
property.
Contents: Position of input-required or input-optional indicator relative to input field or label. Supported values are "left/right/top/bottom/labelLeft/labelRight/none". Default is "labelRight" if labelPosition is "inField", "right" otherwise.
setIndicatorPosition
in interface IAutoCompleteEntry
public java.lang.String getIndicatorPosition()
Return the value of the indicatorPosition
property.
Contents: Position of input-required or input-optional indicator relative to input field or label. Supported values are "left/right/top/bottom/labelLeft/labelRight/none". Default is "labelRight" if labelPosition is "inField", "right" otherwise.
getIndicatorPosition
in interface IAutoCompleteEntry
public void setLabelPosition(java.lang.String labelPosition)
Set the value of the labelPosition
property.
Contents: Position of label relative to input field. Supported values are "left/right/top/bottom/inField/none". Default is "none".
setLabelPosition
in interface IAutoCompleteEntry
public java.lang.String getLabelPosition()
Return the value of the labelPosition
property.
Contents: Position of label relative to input field. Supported values are "left/right/top/bottom/inField/none". Default is "none".
getLabelPosition
in interface IAutoCompleteEntry
public void setListValue(java.util.List listValue)
Set the value of the listValue
property.
Contents: When rendering via a facet, this attribute specifies the list of data objects that contains all possible options.
setListValue
in interface IAutoCompleteEntry
public java.util.List getListValue()
Return the value of the listValue
property.
Contents: When rendering via a facet, this attribute specifies the list of data objects that contains all possible options.
getListValue
in interface IAutoCompleteEntry
public void setListVar(java.lang.String listVar)
Set the value of the listVar
property.
Contents: Variable name to use for referencing each data object in the list when rendering via a facet.
setListVar
in interface IAutoCompleteEntry
public java.lang.String getListVar()
Return the value of the listVar
property.
Contents: Variable name to use for referencing each data object in the list when rendering via a facet.
getListVar
in interface IAutoCompleteEntry
public void setMinChars(int minChars)
Set the value of the minChars
property.
Contents: Minimum number of characters that must be in the text field before submitting and before producing the list of possible matches.
setMinChars
in interface IAutoCompleteEntry
public int getMinChars()
Return the value of the minChars
property.
Contents: Minimum number of characters that must be in the text field before submitting and before producing the list of possible matches. Default = '0'.
getMinChars
in interface IAutoCompleteEntry
public void setOptionalIndicator(java.lang.String optionalIndicator)
Set the value of the optionalIndicator
property.
Contents: Indicator indicating that the user is NOT required to provide a submitted value for this input component.
setOptionalIndicator
in interface IAutoCompleteEntry
public java.lang.String getOptionalIndicator()
Return the value of the optionalIndicator
property.
Contents: Indicator indicating that the user is NOT required to provide a submitted value for this input component.
getOptionalIndicator
in interface IAutoCompleteEntry
public void setRequiredIndicator(java.lang.String requiredIndicator)
Set the value of the requiredIndicator
property.
Contents: Indicator indicating that the user is required to provide a submitted value for this input component.
setRequiredIndicator
in interface IAutoCompleteEntry
public java.lang.String getRequiredIndicator()
Return the value of the requiredIndicator
property.
Contents: Indicator indicating that the user is required to provide a submitted value for this input component.
getRequiredIndicator
in interface IAutoCompleteEntry
public void setRows(int rows)
Set the value of the rows
property.
Contents: The maximum number of possible options to show to the user.
setRows
in interface IAutoCompleteEntry
public int getRows()
Return the value of the rows
property.
Contents: The maximum number of possible options to show to the user. Default = '10'.
getRows
in interface IAutoCompleteEntry
public void setShowEffect(java.lang.String showEffect)
Set the value of the showEffect
property.
Contents: Effect to use when showing the list. Possible values are 'blind', 'bounce', 'clip', 'drop', 'explode', 'fade', 'fold', 'puff', 'pulsate', 'scale', 'slide', and 'shake'.
setShowEffect
in interface IAutoCompleteEntry
public java.lang.String getShowEffect()
Return the value of the showEffect
property.
Contents: Effect to use when showing the list. Possible values are 'blind', 'bounce', 'clip', 'drop', 'explode', 'fade', 'fold', 'puff', 'pulsate', 'scale', 'slide', and 'shake'. Default = 'fade'.
getShowEffect
in interface IAutoCompleteEntry
public void setShowEffectLength(int showEffectLength)
Set the value of the showEffectLength
property.
Contents: Length of time in milliseconds the show effect will last for.
setShowEffectLength
in interface IAutoCompleteEntry
public int getShowEffectLength()
Return the value of the showEffectLength
property.
Contents: Length of time in milliseconds the show effect will last for. Default = '150'.
getShowEffectLength
in interface IAutoCompleteEntry
public void setTextChangeListener(javax.el.MethodExpression textChangeListener)
Set the value of the textChangeListener
property.
Contents: MethodExpression representing a text change listener method that will be notified when the text of the input field changes after the user types new characters or removes them. This is different from a value change event in that in this case the user has not yet given a definite input and is just typing strings to to obtain lists of possible values. The value change event differs in that it only fires once the user has selected a value from the list or has pressed 'enter' on the input field. The expression must evaluate to a public method that takes a org.icefaces.ace.event.TextChageEvent parameter, with a return type of void.
setTextChangeListener
in interface IAutoCompleteEntry
public javax.el.MethodExpression getTextChangeListener()
Return the value of the textChangeListener
property.
Contents: MethodExpression representing a text change listener method that will be notified when the text of the input field changes after the user types new characters or removes them. This is different from a value change event in that in this case the user has not yet given a definite input and is just typing strings to to obtain lists of possible values. The value change event differs in that it only fires once the user has selected a value from the list or has pressed 'enter' on the input field. The expression must evaluate to a public method that takes a org.icefaces.ace.event.TextChageEvent parameter, with a return type of void.
getTextChangeListener
in interface IAutoCompleteEntry
public void setWidth(int width)
Set the value of the width
property.
Contents: The width of the text input field, in pixels.
setWidth
in interface IAutoCompleteEntry
public int getWidth()
Return the value of the width
property.
Contents: The width of the text input field, in pixels. Default = '150'.
getWidth
in interface IAutoCompleteEntry
public void setItemList(java.util.List itemList)
Set the value of the itemList
property.
setItemList
in interface IAutoCompleteEntry
public java.util.List getItemList()
Return the value of the itemList
property.
getItemList
in interface IAutoCompleteEntry
public void setPopulateList(java.lang.Boolean populateList)
Set the value of the populateList
property.
setPopulateList
in interface IAutoCompleteEntry
public java.lang.Boolean isPopulateList()
Return the value of the populateList
property.
isPopulateList
in interface IAutoCompleteEntry
public void setText(java.lang.String text)
Set the value of the text
property.
setText
in interface IAutoCompleteEntry
public java.lang.String getText()
Return the value of the text
property.
getText
in interface IAutoCompleteEntry
public java.util.Collection<java.lang.String> getEventNames()
getEventNames
in interface javax.faces.component.behavior.ClientBehaviorHolder
getEventNames
in class javax.faces.component.html.HtmlInputText
public java.lang.String getDefaultEventName()
getDefaultEventName
in interface javax.faces.component.behavior.ClientBehaviorHolder
getDefaultEventName
in class javax.faces.component.html.HtmlInputText
public java.lang.String getDefaultRender(java.lang.String event)
getDefaultRender
in interface IceClientBehaviorHolder
public java.lang.String getDefaultExecute(java.lang.String event)
getDefaultExecute
in interface IceClientBehaviorHolder
public void addClientBehavior(java.lang.String eventName, javax.faces.component.behavior.ClientBehavior behavior)
addClientBehavior
in interface javax.faces.component.behavior.ClientBehaviorHolder
addClientBehavior
in class javax.faces.component.UIComponentBase
|
ICEfaces ACE Components 3.3.0 Java API Documentation |
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


| Name | Type | Description |
|---|---|---|
| source | String | When a string is used, the TreeGrid plugin expects that string to point to a URL resource that will return JSON data. Data should be array of strings, that contains HTML of adding nodes. |
| Function(String id, Function response(Array items)) | Callback, provides the most flexibility and can be used to connect any data source to TreeGrid. The callback gets id argument. This is id of node that data is needed. A response callback, which expects a single argument: the items to add to the node. It's important when providing a custom source callback to handle errors during the request. If you don't call response then loading state of then node will be stay. | |
| enableMove | Boolean | To enable node moving, set this option to true . Defaults to false. |
| moveDistance | Integer | Tolerance, in pixels, for when moving should start. If specified, moving will not start until after mouse is dragged beyond distance. Defaults to 10. |
| moveHandle | Selector or Element | Restricts moving start click to the specified element. Defaults to false. |
| option() | Gets an object containing key/value pairs representing the current treegrid options. Example: var options = $('.tree').treegrid('option'); |
| option(String optionName) | Gets the value currently associated with the specified optionName .Example: var isEnableMove = $('.tree').treegrid('option', 'enableMove'); |
| option(String optionName, Object value) | Sets the value of the treegrid option associated with the specified optionName .Example: $('.tree').treegrid('option', 'enableMove', false); |
| option(Object options) | Sets one or more options for the treegrid. Example: $('.tree').treegrid('option', {enableMove: false}); |
| getId() | Get id of the node. Example: $('.treegrid-1').treegrid('getId'); |
| getDepth() | Get depth of the node. Example: var depth = $('.treegrid-1').treegrid('getDepth'); |
| toggle() | Toggles state of the node. Example: $('.treegrid-1').treegrid('toggle'); |
| expand() | Expand node. Example: $('.treegrid-1').treegrid('expand'); |
| collapse() | Collapse node. Example: $('.treegrid-1').treegrid('collapse'); |
| add(Array items) | Add nodes to parent or as root. If executes from table, nodes adds as roots. If executes from row, nodes adds as children. Every item of array should be HTML of adding nodes. Example: $('.tree').treegrid('add', ['
New root
']); |
| remove() | Removs node with all descendants. Example: $('.treegrid-1, .treegrid-2').treegrid('remove'); |
| move(Element target, Integer position) | Moves node to target . To specify where node should be move set position param (0-before, 1-inside, 2-after).Example: $('.treegrid-1').treegrid('move', $('.treegrid-2'), 1); |
| getRoots() | Get all roots of TreeGrid. Returns jQuery contains roots. Example: $roots = $('.tree').treegrid('getRoots'); |
| getChildNodes() | Get direct children of node. Returns jQuery contains children. Example: $items = $('.treegrid-1').treegrid('getChildNodes'); |
| getBranch() | Get all descendants of node. Result contains node that executes method. Returns jQuery contains node with descendants. Example: $('.treegrid-1').treegrid('getBranch').css('color', 'red'); |
| getParent() | Get parent of the node. Example: $parent = $('.treegrid-1').treegrid('getParent'); |
| isCollapsed() | Get whether node is collapsed. Example: if ($tr.treegrid('isCollapsed')) { ... } |
| isExpanded() | Get whether node is expended. Example: b = $tr.treegrid('isExpanded'); |
| onExpand() | Calling when node expands. Return false if you don't want the node been expanded. |
| onCollapse() | Calling when node collapses. Return false if you don't want the node been collapsed. |
| onAdd(Array items) | Calling when nodes was added. Returns jQuery container that contains all added nodes. |
| onMoveStart(Element item, Element helper) | This event is triggered when node moving starts. item is jQuery of original element. helper is jQuery of clone that uses to moving node. |
| onMoveStop(Element item) | This event is triggered when node moving ends. item is jQuery of original element. |
| onMoveOver(Element item, Element helper, Element target, Integer position) | This event is triggered when node moving over another node that support droping. item is jQuery of original element. helper is jQuery of clone that uses to moving node. target is jQuery of target element. position specify moving position (0-before, 1-inside, 2-after). If you don't want target supporting dropping, return false . |
| onMoveOut(Element item, Element helper, Element target) | This event is triggered when node outs another node that support droping. item is jQuery of original element. helper is jQuery of clone that uses to moving node. target is jQuery of target element. |
| onMove(Element item, Element target, Integer position) | This event is triggered when node drops to another node. item is jQuery of original element. target is jQuery of target element. position specify moving position (0-before, 1-inside, 2-after). If you want to prevent moving, return false . |


| 4 Feb 1948 |
Vincent Damon Furnier born, Detroit MI. |
| Apr 1961 |
Cooper's father, Ether Moroni (Michael) Furnier, ordained a minister. |
| May 1961 |
Family moves to Phoenix, AZ. |
| 12 Apr 1968 |
While answering questions of the police after a traffic incident, begins using the name Alice Cooper. |
| 8 Sep 1970 |
Alice Cooper allegedly arrested for using the word tits, Kansas City NE. (We cannot confirm this.) |
| 1974 |
Legally changes name to Alice Cooper. |
| 20 Mar 1976 |
Marries Sheryl Goddard, age 19. |
| 1988 |
Father, Ether Moroni (Michael) Furnier, dies. |


'Phase One' US-China trade deal may not be completed this year – Reuters
by Eren SengezerThe 'phase one' of the United States' trade deal with China might not be completed before the end of the year, Reuters reported citing people close to the White House and experts on trade on Wednesday.
"If talks are really going well, that hike will be suspended," Christian Whiton, a senior fellow for strategy and trade at the Center for the National Interest, and a former Trump and George W. Bush administration adviser, told Reuters. "If not, the U.S. will implement them and that will throw the game into next year."
The initial market reaction weighed on the market sentiment and the 10-year US Treasury bond yield was last down 2.3% on the day at 1.743%.


This web application allows you to re-route messages destined for your @mit.edu email address, for example by forwarding copies to another inbox.
Mail sent to<EMAIL_ADDRESS>will be delivered to:
Exchange
IMAP
External
Instead, forward mail to:
Last modified some time ago by unknown. Restore Default Settings.


| Cockpit Guide |
|---|
When a user is logged into Cockpit, they are logged into a normal session that has exactly the same privileges as if they logged in via SSH or on the console.
In some cases Cockpit will try to escalate the privileges of the user using Policy Kit or sudo. If the user is able to escalate privileges from the command line, then Cockpit will use that same capability to perform certain privileged tasks.
Cockpit can use the user's login password internally to escalate privileges in these situations. By selecting the Reuse my password for privileged tasks option on the login screen the login password will be cached internally and passed to Policy Kit when requested in order to escalate privileges.
To test out whether Cockpit can escalate privileges, you can run these commands from a the terminal built into Cockpit.
$ sudo cockpit-bridge ... $ pkexec cockpit-bridge ...
If either of these commands succeed without prompting for a password,
Cockpit will be able to start a privileged copy of the
cockpit-bridge
and use it to perform privileged tasks
when necessary.
Usually a user needs to be in the wheel
Unix user group for the
user to be able to escalate privileges in this way. However both Policy Kit and
sudo may be configured to use other criteria.
Services like systemd
and NetworkManager use
Polkit to
validate and escalate privileges. It is possible to customize these rules with files
in /etc/polkit-1/rules.d
.
Polkit rules files are
javascript with specific methods and objects. For example, placing the following polkit rule to
/etc/polkit-1.rules.d/10-operators.rule
allows all users in the
operators
group to start, stop, restart and otherwise manage systemd services:
polkit.addRule(function(action, subject) { if (action.id == "org.freedesktop.systemd1.manage-units") { if (subject.isInGroup("operators")) { return polkit.Result.YES; } } });
In order to allow a certain group to perform any administrative action you could add a rule like this:
polkit.addAdminRule(function(action, subject) { return ["unix-group:operators"]; });


{% extends "global/Page.html" %} {% load staticfiles otree_tags %} {% block title %} Welcome {% endblock %} {% block content %}
Welcome, and thank you for participating!
From now until the end of the experiment, please turn off your phone and do not communicate with other participants. If you have any questions, please message us in the chat (or use your microphone) and we will respond as soon possible. Please pay careful attention to the instructions as real money is at stake.
During the experiment you will earn points, and at the end of the experiment all your earnings will be converted to USD dollars at the rate specified by the experimenter. You are guaranteed a show up fee of $4.00 USD if you show up and complete the session, but you can earn more depending on your decisions throughout the game.
If you finished reading, please press next.
{% next_button %} {% endblock %}


ey
Businessmodel of EY
Customer Segments
Ernst & Young has a mass market business model, with no significant differentiation between customers. The company targets its offerings at firms of all industries and sizes desiring assurance, tax, transaction, and advisory services.
Value Proposition
Ernst & Young offers one primary value proposition: brand/status.
The company has established a powerful brand as a result of its success. It is the third largest professional services firm in the world in terms of revenues ($28.7 billion in 2015), and is one of the “Big Four” audit firms (along with KPMG, Deloitte, and PwC). It has over 230,000 employees in more than 700 offices in 150 countries. Lastly, it has won many honors, including the following:
- Recognition as one of Fortune’s 100 Best Companies to Work For (2016)
- Recognition as Best Auditor (Funds and Tax) at Asian Investor’s Asset Management Awards for two years in a row (2016)
- SAP Pinnacle Award* for Fastest Growing SAP Transformation Practice* (2015)
- Stevie Award for Innovation of the Year – Business Service Industries category (2015)
- Recognition as Best Thought Leader at the Wealth Briefing European Awards (2015)
- Recognition as Financial Advisor of the Year by P3 Bulletin magazine (2015)
- Recognition as Russia Transfer Pricing Firm of the Year at the European Tax Awards (2015)
- Global Most Admired Knowledge Enterprise (MAKE) award 17 years in a row (2015)
- Recognition as Best Financial Advisor by the National Award in Infrastructure in Russia (2014)
- Recognition as the Best Management Consulting Firm in Australia by the BRW (Beaton Research +Consulting) Client Choice Awards (2014)
- Recognition as Energy Advisory Firm of the Year by the Petroleum Economist (2014) ### Channels
Ernst & Young’s main channel for customer acquisition are the customer relationships of their partners. The company also promotes its offering through its social media pages and attendance at summits and conferences such as KM World, KMUK, KM Asia, the APQC KM conference, Enterprise Search Summit, and the Strategic and Competitive Intelligence Professionals Summit.
Customer Relationships
Ernst & Young’s customer relationship is primarily of a dedicated personal assistance nature. The company has its teams work closely with clients to solve their problems. That said, there is a self-service component. The company’s website has a “Library” section that includes self-help resources such as reports, newsletters, and white papers. The site also features a Client Portal where customers can manage the various aspects of their account.
Key Activities
Ernst & Young’s business model entails designing and providing problem-solving services for clients.
Key Partners
Ernst & Young forms strategic partnerships with other companies in order to provide customers with enhanced offerings. A high-profile example of such a relationship is its alliance with Microsoft Corporation in which it uses Microsoft’s cloud and data platforms to deliver new offerings. Examples of these solutions are as follows:
- Jointly delivering business services using EY’s business/technology capabilities and Microsoft technologies, including purpose-led transformation and advanced program management
- Combining EY expertise and Microsoft technologies to advance cybersecurity across industries
- Implementing a range of enterprise products on Microsoft Azure, with EY collaborating with Microsoft Consulting Services
- Using Azure-based applications to obtain near-term value from data and software that reside within clients‘ existing operations
- Establishing co-innovation capabilities on various advanced management science applications and driving customers’ advantage from the “Internet of Things” ### Key Resources
Ernst & Young’s main resources are its human resources. Within its staff of over 230,000, it has a network of 800 thought leadership professionals operating across 40 countries who write publications such as reports and white papers. The firm also relies heavily on customer service staff to provide support.
Cost Structure
Ernst & Young has a value-driven structure, aiming to provide a premium proposition through significant personal service. Its biggest cost driver is likely cost of services, a variable expense. Other major drivers are in the areas of customer support and operations and administration, both fixed costs.
Revenue Streams
Ernst & Young has one revenue stream, the fees charged to its clients for its range of services. These fees vary by type of client and individual project.


The Template Method Pattern abstracts away the details of several algorithms. The generic part of an algorithm is contained within a base class. Particular implementation details are captured within base classes. The generic pattern of classes involved looks like this:
1. Example
In this example, Accumulator
captures the essence of the accumulation algorithm. The base classes Sum
and Product
provide particular customised ways to use the generic accumulation algorithm.
abstract class Accumulator {
protected initial
abstract doAccumulate(total, v)
def accumulate(values) {
def total = initial
values.each { v -> total = doAccumulate(total, v) }
total
}
}
class Sum extends Accumulator {
def Sum() { initial = 0 }
def doAccumulate(total, v) { total + v }
}
class Product extends Accumulator {
def Product() { initial = 1 }
def doAccumulate(total, v) { total * v }
}
println new Sum().accumulate([1,2,3,4])
println new Product().accumulate([1,2,3,4])
The resulting output is:
10 24
In this particular case, you could use Groovy’s inject method to achieve a similar result using Closures:
Closure addAll = { total, item -> total += item }
def accumulated = [1, 2, 3, 4].inject(0, addAll)
println accumulated // => 10
Thanks to duck-typing, this would also work with other objects which support an add (plus() in Groovy) method, e.g.:
In this particular case, you could use Groovy’s inject method to achieve a similar result using Closures:
accumulated = [ "1", "2", "3", "4" ].inject("", addAll)
println accumulated // => "1234"
We could also do the multiplication case as follows:
Closure multAll = { total, item -> total *= item }
accumulated = [1, 2, 3, 4].inject(1, multAll)
println accumulated // => 24
Using closures this way looks more like the Strategy Pattern but if we realise that the built-in inject method is the generic part of the algorithm for our template method, then the Closures become the customised parts of the template method pattern.


replication study original humanities results studies new various research possible replicability different value data instance, {border-style empirical objects KNAW humanistic px;} similar #ffffff;} background humanities. study. Replication likely certain sciences, study, that, Science meaning relevant studies, (in carried method replication, unique Thus, carry case extent is, sense comes humanities, issue knowledge methods order replication. studies. things think New crisis good hermeneutical historical important independent need number quantitative say, sciences social terms Advisory However, National Van assumptions auxiliary clear data, definition epistemic particular possibility problem px; replicated sciences. successful though, way {font-family (e.g., Earp Research agree all, and, attention biomedical carrying course, does font-size given like make means method, nature positive question reasons recent researchers scholars specific theory thinking van First, Nature Now, Paul Replicability Reproducibility Studies academic analysis aspects conclude conclusions depend desirable discipline disciplines, double; exactly example, falsification fields idea key kinds large makes meaning, multiple object objection peer possible. protocol replicable replicate reports results. right sufficiently term uncover use used visited "replicability" "replication Academy Bouter Cambridge LeBel Press Psychol Sciences University approach border-color border-width conceptual define economics economics, effect equal, explain fact interpretation interpretation, it, lack literary on, on. paper people phenomena place point provide publication published repetition report so, solid; studied then, thought using variety {font-style {font-weight "reproduction" (i) (ii) (iii) (or Academies Finally, French Lex Munafò Peels Popper Princeton Report Revolution Routledge Second, Smith York above, actually argued attempt balance bold changes clearly close come comparison consistently count courier; debate deny desideratum disciplines doing earlier em; example general hand, hoax humanities: hypotheses instance just lead matter meaning. meet members natural necessarily one: one’s opposition passages pay perfectly philosophy, producing pt;} remains replicable, reproducibility required review science science, scientific successfully taken thank them. therefore, times to, true, true. want wide widely


- Performance Tools
- Performance Hints
In a stock Tcl binary, you can use the time
command
to measure the execution time of a command. The
format of the command is: time
tcl_command optional_repetition_count. For example:
% time {foreach i [list a b c d e ] { lappend result $i}}
808 microseconds per iteration
% time {foreach i [list a b c d e ] { lappend result $i}} 10
259 microseconds per iteration
% time {foreach i [list a b c d e ] { lappend result $i}} 100
244 microseconds per iteration
The TclX package includes a profile
command which can be
used to return a call stack. TclX can be found at ftp://ftp.neosoft.com/pub/tcl/tclx-distrib
.
The hints below were taken from Practical
Programming in Tcl and Tk, by
Brent B. Welch, page 87.
If you are using exec
, then you may want to reconsider.
- The Tcl
exec
is not portable to non-unix platforms.
- There is a lot of overhead in starting another process. For
example, calling the Unix
date
command is fairly slow:
% time {exec date}
287316 microseconds per iteration
% time {puts [clock format [clock seconds]]}
Sun Sep 22 16:10:33 PDT 1996
1606 microseconds per iteration
%
See the Tycho Exec Internals Guide.
If your application is taking a long time to start up, try the following:
- Autoloading Itcl files takes more time than just sourcing them.
If you source the files necessary before creating your first widget,
you might see a speedup. You might find it interesting to put
puts
statements at the top of the unknown
,
tcl_unknown
and auto_load
procs in
lib/itcl/tcl/init.tcl
(if you are using Tycho from within
Ptolemy, then this file would be at $PTOLEMY/tcltk/itcl/lib/itcl/tcl/init.tcl
).
However, this link may not work for you.
Tycho Home Page
Copyright © 1996-1998, The Regents of the University of California.
All rights reserved.
Last updated: 03/15/98,
comments to: eal@eecs.berkeley.edu


Event-driven Programming
In event-drivent programming, the flow of a program is determined by events triggered through a defined interaction (e.g., user interaction, exceeding threshold limit, etc. ). Usually, a main loop listens for events, and then triggers a callback function when an event is detected.
Overall, Legato components are written using an event-driven model. Callback functions are attached to specific events, and when events occur, the thread's event loop triggers the appropriate callbacks. Legato components can also start other threads that run their own Legato event loops.
Every component implements an initialization function called at process start-up by the main thread. That function does whatever initialization is required for that component (e.g., initializes data structures, registers callbacks, starts threads, etc.) and returns. After all initialization functions have run to completion and returned, the main thread enters the Legato event loop and begins reacting to events and calling registered callbacks.
This allows multiple components to be deployed to the same process and even share a single thread within that process, without having to know anything about each other. This reduces the risk of multi-threaded race conditions and saves stack memory space.
Beware one drawback is that if a component blocks a shared thread, it blocks every component sharing that thread.
Sometimes, the judicious use of threads can considerably simplify a program, so multi-threading is also supported by Legato along with the usual thread synchronization constructs (mutexes, semaphores, etc.).
Event Loop API
Legato's Event Loop API uses a central event loop that calls event handler functions in response to event reports. See Event Loop API
Software components register their event handler functions with the event system (either directly through the Event Loop API or indirectly through other APIs that use the Event Loop API) so the central event loop knows the functions to call in response to defined events.
Every event loop has an event queue, which is a queue of events waiting to be handled by that event loop.
The following different usage patterns are supported by the Event Loop API:
Deferred Function Calls
Publish-Subscribe Events
Layered Publish-Subscribe Handlers
Dispatching Function Execution to Other Threads
Copyright (C) Sierra Wireless Inc. Use of this work is subject to license.


This page you are looking for does not exsist Report this?
Create a pages account. If you have a facebook account, log into it for this process. Sign in with Facebook or Google


{% extends "layouts/base.html" %} {% block yield %}
Success! You're operation completed sucessfully
Debug Logs


Below is a list of some of the best Japanese food SF. The list is not exhaustive, so please submit suggestions for additions to the list in the form below!
Definitely want to get the Omakase. The Chefs prepare many dishes that are not on the menu, which make it really special
The sushi is amazing, but don't be afraid to order the other dishes as there are many of classic Izakaya dishes being served.
Tiny hidden gem that is a must! Just be prepared to wait — Chong and his wife are the only ones preparing food for the entire restaurant.


Content-type: text/html
Manpage of di
di
Section: User Commands (1)
Updated: 20 Nov 2005
Index
Return to Main Contents
Name
di - disk information
Synopsis
di
[-AaghHklLmnPtZ]
[-b block-size]
[-d display-size]
[-f format]
[-I include-fstyp-list]
[-s sort-type]
[-w block-width]
[-W inode-width]
[-x exclude-fstyp-list]
[-X debug-level]
[-z zone-name]
[file [...]]
mi
Description
di Displays usage information on mounted filesystems. Block values are
reported in megabytes (1024k bytes) by default, but may be changed.
If file is specified, the usage information for the partition on which
file is located is printed.
Unless the -a flag is specified, the following mounted
filesystems will not
normally be displayed: filesystems
with total blocks <= 0; filesystems marked by the operating
system as "ignore"; automounted filesystems that are duplicates
of other normally mounted filesystems; loopback filesystems
that are part of a zone (Solaris).
mi Displays the mounted filesystem information.
Several switches may be specified to
control the output of
di and mi:
- -A
-
Print all fields (used for debugging). Mount points and special
device names are printed at full width. The -a flag is set.
- -a
-
Prints all mounted devices (normally, those with 0 total blocks are not
printed - e.g. /dev/proc, /dev/fd).
- -b
-
block-size
(compatibility: -B)
Change the base block size from 1024 (default) to the size specified.
block-size may be one of: k - 1024 bytes, d - 1000 bytes,
or a specific size.
- -d
-
display-size
Display the blocks in units specified by display-size.
display-size
may be one of: 512 - POSIX, k - kilobytes,
m - megabytes, g - gigabytes, t - terabytes, P - petabytes,
E - exabytes, Z - zettabytes, Y - yottabytes,
h - Scaled alternative 1, H - Scaled alternative 2,
or a specific value to use as the block size.
-
Block display sizes greater than 1024 bytes are displayed with a precision
of one decimal place after the radix.
-
The Scaled alternatives scale the sizes displayed and
appends a suffix (e.g. 48.0k, 3.4M).
-
With scaled alternative 1, sizes within a
line may scale to different units.
-
Scaled alternative 2 scales all the sizes in each individual line
to the same unit size (the largest needed).
- -f
-
format
Use the specified format string format. Format strings are
described below.
- -g
-
(alias for: -dg)
Display sizes in gigabytes.
- -h
-
(alias for: -dh)
Display partition sizes in scaled alternative 1 format.
- -H
-
(alias for: -dH)
Display partition sizes in scaled alternative 2 format.
- -I
-
include-fstype-list
(compatibility: -F)
Include only the file system types listed in include-fstyp-list.
The list is a comma separated list of file system types.
Multiple -I options may be specified.
e.g. -I nfs,rfs or -I nfs -I rfs.
- -k
-
(alias for: -dk)
Display sizes in Kbytes.
- -l
-
Display only local file systems.
- -L
-
Don't do the check for duplicate filesystems.
- -m
-
(alias for: -dm)
Display sizes in megabytes.
- -n
-
Do not print a header line above the list of file systems. Useful when
parsing the output of di.
- -P
-
Output format is POSIX standard.
512 byte block size is the default. The -k option may be used.
- -s
-
sort-type
Use sort-type to sort the output.
The output of di is normally sorted by name. The output may
be left unsorted (-s n command line switch) i.e. as it appears
in the mount table or may be
sorted by the special device name
(-s s command line switch). If the -s r command line
switch is used, the sort order will be reversed.
If file is specified on the
command line, no sorting is done.
- -t
-
Print a totals line below the list of file systems.
Memory filesystems (tmpfs, mfs) and read-only
filesystems are not added to the totals.
- -w
-
block-width
Set the print width for block values. Default is eight.
- -W
-
inode-width
Set the print width for inode values. Default is seven.
- -x
-
exclude-fstype-list
(old: -i)
Exclude the file system types listed in exclude-fstyp-list.
The list is a comma separated list of file system types.
Multiple -x options may be specified.
e.g. -x nfs,rfs or -x nfs -x rfs.
- -X
-
level
Set the program's debugging level to debug-level.
- -z
-
zone-name
Display the filesystems for the specified zone.
The zone must be visible to the user.
- -Z
-
(alias for: -z all)
Display the filesystems for all visible zones.
Format strings
The output of di may be specified via a format string. This
string may be given either via the -f command line switch or by
the DIFMT environment variable. The format string may specify the
following columns:
-
- m
-
Print the name of the mount point.
- M
-
Print the name of the mount point, at full length. The mount point
is formatted to the maximum width necessary for the longest mount
point name.
- b
-
Print the total number of megabytes on the file system.
See also the -d option.
- B
-
Print the total number of megabytes on the file system
available for use by normal
users.
See also the -d option.
- u
-
Print the number of megabytes in use on the file system
(actual number of megabytes used = total - free).
See also the -d option.
- c
-
Print the number of megabytes not available for use by normal users
(total - available).
See also the -d option.
- f
-
Print the number of free (unused) megabytes on the file system.
See also the -d option.
- v
-
Print the number of megabytes available for use by normal users.
See also the -d option.
- p
-
Print the percentage of megabytes not available for use by normal users
(number of megabytes not available for use / total disk space).
See also the -d option.
- 1
-
Print the percentage of total megabytes in use
(actual number of megabytes used / total disk space).
See also the -d option.
- 2
-
Print the percentage of megabytes in use, BSD-style. Represents the
percentage of user-available space in use. Note that values over 100%
are possible
(actual number of megabytes used / disk
space available to non-root users).
See also the -d option.
- a
-
Print the percentage of megabytes available for use by normal users
(number of megabytes available for use / total disk space).
See also the -d option.
- 3
-
Print the percentage of total megabytes free
(actual number of megabytes free / total disk space).
See also the -d option.
- i
-
Print the total number of file slots (inodes) that can be created on the file
system.
- U
-
Print the number of file slots in use.
- F
-
Print the number of file slots available.
- P
-
Print the percentage of file slots in use.
- s
-
Print the file system name (special device or remote mount point).
- S
-
Print the file system name (special device or remote mount point),
at full length.
The file system name
is formatted to the maximum width necessary for the longest file system
name.
- t
-
Print the file system type.
- T
-
Print the file system type at full length. The file system type
is formatted to the maximum width necessary for the longest file system
type.
- I
-
Print the time the filesystem was mounted. This column is
not supported on all systems.
- O
-
Print the filesystem mount options.
The default format string for di is smbuvpT.
The default format string for mi is MSTIO.
The format string may also contain any other character not listed
above. The character will be printed as is. e.g. di -f 'mbuvp|iUFP'
will print the character '|' between the disk usage and the file slot
usage. The command sequence (Bourne Shell):
-
di -f 'mbuvp
miUFP'
will print two lines of data for each filesystem.
Examples
Various df
equivalent format strings for System V release 4 are:
-
/usr/bin/df -v di -P -f msbuf1
/usr/bin/df -k di -dk -f sbcvpm
/usr/ucb/df di -dk -f sbuv2m
If you like your numbers to add up/calculate the percentage
correctly, try one
of the following format strings:
-
di -f SMbuf1T
di -f SMbcvpT
di -f SMBuv2T
Environment Variables
The DIFMT environment variable may be used to specify the default
display format string.
The DI_ARGS environment variable may be used to specify command
line arguments. e.g. If you always want gigabytes displayed, set
DI_ARGS equal to "-dg". Any command line arguments specified
will override the DI_ARGS environment variable.
The GNU df POSIXLY_CORRECT, and DF_BLOCK_SIZE and the BSD BLOCKSIZE
environment variables are honored.
Note
For filesystems that do not report available blocks (e.g. System V
release 3), the number of available blocks is considered to be the
number of free blocks.
WARNING
Do not replace your system's df command with this program. You
will in all likelihood break your installation procedures.
See Also
df(1), fstab(5), getmnt(2), getmntinfo(2), mnttab(4), mount(1M)
statfs(2), statvfs(2)
Bugs
Send bug reports to<EMAIL_ADDRESS>Website
http://www.gentoo.com/di/
Author
This program is Copyright 1994-2006 by Brad Lanam.

Time: 18:54:30 GMT, August 22, 2012


Alleged serial rapist Joseph McCann, 34, is accused of tricking his way into the woman's Greater Manchester home after a night out, a court has heard.
The defendant allegedly tied her up with electrical cable and molested her 17-year-old daughter and 11-year-old son.
After they escaped, she tried to comfort her son, saying: "It's OK, son. We are alive," jurors heard.
READ MORE: Chorley man wanted by police after breaching restraining order
The mother-of-two described her ordeal on May 5 in a police interview played during McCann's trial.
She said: "I have come back in a taxi where this fella has said 'I will come with you to make sure you get home OK'."
McCann, 34, is accused of then producing a knife as he ordered the woman to lie down in her son's bedroom, forcing the children into another bedroom.

The woman went on: "He tied my legs together and then he turned me back over again but he kept coming in saying 'you watch, or say anything I will slit your throat.

"I could just hear him in my bedroom with (the children) because I was face down I could only hear him say '(boy's name) lie down on the floor, don't look at me'.
"I think I heard (the girl) say, 'no, no, I don't want to do that'. I thought, my God.
"It was like I was in and out of consciousness. I don't know if it was fright.
"I was trying to get out but I thought if he sees me he would kill me. He had my children in the bedroom."
She said McCann checked on her three or four times.
The woman added: "He said if I moved my eyes or anything he would slit my throat and I believed him. I did not even want to move my eyeballs."
The woman told officers she heard her daughter taking a shower and ask, "is that OK now".
She described how the girl then jumped out of a bedroom window to escape.

"He said 'mum, mum, we are safe. (My sister) saved us'.
The woman said her son then ran downstairs, grabbed their attacker's discarded knife and used it to cut her free, saying: "Mummy, let's go out the back door."
The witness continued: "I said 'hold onto me'. I said 'run like you never ran before and you get out'."

She said: "I said 'it's OK, son'. I just wanted him to be calm for a bit. I said, 'we are alive'."
The woman said she was "petrified" and felt like she would pass out as police were alerted.
She described her attacker as "calm and calculated", saying he appeared to be "enjoying it".
He allegedly told her he was from Northern Ireland and had a son.
McCann, from Harrow, west London, denies 37 charges relating to 11 women and children, including rape, kidnap and false imprisonment.


The fiscal agencies have been facing several challenges regarding the guarantee of the legal profession. In particular, the context of medicine exercise poses as a crucial one, since the professionals involved in this area are responsible for dealing with the health of third parties. However, we may notice a number of incidents and frauds related to the records of medical professionals, such as issuing forged diplomas or availability of information not validated by the Regional Council of Medicine. Thus, in order to avoid these frauds, we assume to be relevant to investigate innovative solutions aiming to maintain in a safe and transparent way the professional history of each doctor. In this context, our main objective is to present MIRIAM, a blockchain-based solution based on the Hyperledger platform that allows in a decentralized and reliable fashion the storage of relevant information necessary for managing registrations of medical professionals. The events covered by our solution were validated through a semi-structured interview with a high-level director of a Regional Council of Medicine. Therefore, we contribute and advance in the knowledge by designing and empirically evaluating a blockchain-based solution for managing records of Brazilian medical professionals. In addition, we clarifythe adoption of Hyperledger technology as enabler for increasing the transparency and reliability of referred data.
The system's stakeholders can be divided into two groups: the administrator, responsible for the development and maintenance of the system, and the employees, who will be able to execute the functionalities of the system according to what has been defined for each entity.
Responsible for the development and maintenance of the system. Your main responsibility is to add the stakeholder employee in the system, that is, you can only access the system, the employee whose registration was added by the administrator. First, after a registration request by an employee, the administrator will enter the system using a pre-defined login and password, as shown in the Figure below.
After login, the employee registration screen is displayed. This allows the addition of the following information: name, surname, e-mail and subgroup. The email field defines to which email the provisional password will be sent to the new employee and the subgroup field defines what type of employee is being registered.
Execute the functionalities of the system according to what has been defined for each entity:
Responsible for adding the diploma of the newly graduated doctor along with his data to the network.
Responsible for adding to the medical data on the network the specialization record for a doctor.
Responsible for validating the medical record in RCM.
From the analysis of the identified and discussed needs, it was decided to establish the following functional (RF) and quality (RNF) requirements for the project. The requirements are indicated and referenced in the format [FRxx] or [NFRxx], where xx refers to the requirement number. Such requirements are described below:
In order to show an overview of the features proposed for the system, the Use Case Diagram is presented below with a description of the two types of stakeholders presented in this approach: administrator and employee.
First, both stakeholders need to use the use case to authenticate in order to log into the system. The administrator is responsible for managing the use cases referring to the inclusion of employees in the [Register Employee] network, while the employee is related to record editing cases on the [Register, Search, Edit Records] and administrative block [Authentication, Data Recovery] Password]. The Employee is also allowed to send error feedbacks to the administrator, this function is described in the use case [Feedback].
Each use case is detailed with the following information: name, actors, priority, objective, inputs, preconditions, postconditions, normal flow of events, alternative flow of events and exceptional flow of events, as shown in the figure below:
The use case documentation can be downloaded at Link
The Figure below shows the sequence diagram. It describes the step-by-step actions taken so that an employee can access the system and add a record on the blockchain.
The process starts with the system administrator accessing the system to register an employee in the system. After the employee is registered in the system, they are allowed to log in to the system and make requests to add registration to the blockchain. The system receives this request and forwards a json object containing this information to one of the blockchain nodes. When the information arrives at one of the nodes it is received by a REST server that performs a validation and transmits the information to the other blockchain nodes. Finally, the REST server returns a json response object to the system, warning of the success or failure of the operation, this response is then treated and displayed to the employee through an alert.
This section presents a demonstration of the developed system:
First, with an application for registration by an employee, the administrator will enter the system using a pre-defined login and password, as shown in the figure below:
The figure below shows the employee registration screen. This allows the addition of the following information: name, surname, e-mail and subgroup. The email field defines to which email the provisional password will be sent to the new employee and the subgroup field defines what type of employee is being registered.
The employee whose registration was added by the administrator actor can log in to the system with his login and password, entered on the initial page presented below:
This is the main screen of the application and it is visible regardless of the subgroup to which the employee belongs.
In the Figure below the screen for registering the diploma for the blockchain is displayed, this screen is adjusted according to the subgroup that the employee belongs to. The screen in question is displayed in a personalized way so that the HEI employee can fill in the data of the diploma he wants to send to the for blockchain.
After filling in the fields and clicking add, a connection will be established between the web application server and the blockchain. If no error has occurred, an alert will be displayed notifying that the data has been added and a message with the id of the diploma added is forwarded to the registered student's email. However, if an error occurs, an alert is triggered informing the error occurred.
It is possible that the IES employee can search for one or more records added through the search screen shown in the Figure below. Through it, the employee types the CPF belonging to the student whose diploma he is looking for. The web system will perform a query request for the blockchain and return the student's information through a table.
Through the edit button displayed in the action column, change student data if necessary, through this button a screen similar to the registration screen will be displayed.
A CRM employee will perform the same login steps as above and access the main screen as on the main screen. However, the medical record castrated screen shown in Figure differs from the screen displayed to an HEI employee. On this screen, the CRM Employee will add the data related to the medical record you want to add.
In this case, as shown in the Figure below, the CRM Employee searches for the CPF of the registered doctor as well as the IES employee and visualizes the data through a table. It is also possible to edit the information in the doctor's record through the edit button, displayed in the action column.
Regardless of the subgroup to which the employee belongs, everyone can send a feedback message to the system administrator. The Figure below presents the feedback screen with an example of a possible message that employees can send to the Administrator.
The solution proposed in this work is based on the current processes necessary for the physician's registration and his relevant information in the CRM, which can carry out various events, such as his first registration, re-registration, transfers, cancellations and specialty registration, for example. Therefore, it is necessary to take into account the entities that make up the information recording scenario. In line with the processes described in the previous section, the following categories are proposed which represent the nodes participating in the network:
it is the entity responsible for inspecting, investigating and judging irregularities against doctors in the State. In addition, it is the body responsible for registering diplomas, titles of specialty and relevant information regarding the professional.
is an institution that promotes higher education that, according to its characteristics, is classified as university and colleges of higher education.
is an institution that issues medical residency certificates and specialty titles. These documents can only be issued by specialty societies affiliated to the Brazilian Medical Association (AMB) and / or medical residency institutions accredited by the National Medical Residency Commission (CNRM). These institutions have the purpose of allowing the qualification of the doctor graduated in the different specialties of medicine at the postgraduate level, in which the apprentices develop specific competences for the proper application of their functions.
A presente proposta utiliza uma blockchain permissionada da tecnologia Hyperledger, onde cada nó define papéis que são atribuídas aos participantes e o acesso é concedido ou restrito por meio desses papéis. Assim, um provedor de serviço MSP trata de gerar as credenciais para um dos diversos tipos de participantes como apresentado na Figura abaixo.
However, in the specific case of the proposed solution, it follows a mono-organizational model, where there is only a single network, and all nodes must be certified as one of the three types of participants. For registration in this model, only one of the CRM nodes receives the certificate directly from the Hyperledger blockchain and, therefore, being responsible for using it, to allow the MSP service to generate the certificates for the other two participants (IES and EE). In this way, a specific member (IES or EE) will only have access to important resources after validating the certificate issued by the MSP through CRM. It is important to note that CRM only issues certificates, it does not have access to the resources used by other participants, for example, the registration of the Diploma.
The Figure below illustrates the relationship between these participants. The central CRM is generated when the blockchain is created, as mentioned is the only one of the CRMs that has a container with a node with the MSP service, thus being responsible for generating the certificates that will add the other participants to the network.
All blockchain participants have a copy of the ledger, thus guaranteeing data integrity in case one of them is attacked. However, only the CRM instances have the Ordering Service that create blocks and add them to the network. Therefore, the system is set up so that when you want to add information to the blockchain, the instance closest to the request, belonging to one of the 27 CRMs, creates the block and distributes it to the others.
>


Welcome! My name is Jim, and I am a recent graduate of the University of Missouri-Saint Louis with a BS in Computer Science seeking employment as a Software Engineer. I have a strong foundation in software engineering and programming principles across multiple platforms. I am experienced in object-oriented programming; developing, testing and debugging code; and designing interfaces. I learn quickly when mastering new technologies, and am successful working in both team and self-directed settings. I pride myself on maintaining a positive attitude and always giving maximum effort. I am fluent in C, C++, Java and Swift, with experience in Javascript and Objective-C. I am also familiar with Cyber Security standards and practices.
This is a compiler written in C to translate a hypothetical language created by Professor Cezary Z Janikow, Ph.D. It takes the given language, and translates it into a tree made up of tokens. It checks to make sure the tree fits within the rules for basic C grammar. If the tree conforms to the grammar's rules, it translates the tree of tokens into the appropriate assembly language code to run on a Virtual Machine provided by Dr. Janikow. My compiler successfully found all errors in grammar, and translated working Assembly Language code for all source code provided.
View ProjectThis was my final project for my first iOS applications class. We were to make a poker game where the player competed against a computer player. We used Objective C for this project. The hardest part was writing the algorithm to test all the poker hands.
View ProjectThis was the the final application I made for CS4222 iOS Application programming. It was designed using a test driven software development process. It implements Apple’s Model-View-Controller communication pattern. The animation of the hangman was created using iOS Core Graphics framework.
View ProjectThis application was developed to allow corporate information security professionals to more efficiently manage their information security policy and associated controls. I worked with server team to develop a cross-walk of multiple information security frameworks. I personally developed JSON data structures for incorporating additional frameworks and revisions to current frameworks. I gained experience using AGILE methodologies while working on this open-source group project.
View Project


A list of bookmarklets you might find useful for accessibility testing. Drag the links to your bookmark bar to install them.


Classes
The following classes are available globally.
-
Workflow: A doubly linked list of AnyFlowRepresentable types. Can be used to create a user flow.
Examples:
let workflow = Workflow() .thenPresent(SomeFlowRepresentableClass.self) .thenPResent(SomeOtherFlowRepresentableClass.self, presentationType: .navigationStack)
Discussion:
In a sufficiently complex application it may make sense to create a structure to hold onto all the workflows in an application. Example
See morestruct Workflows { static let schedulingFlow = Workflow() .thenPresent(SomeFlowRepresentableClass.self) .thenPResent(SomeOtherFlowRepresentableClass.self, presentationType: .navigationStack) }
Declaration
Swift
public class Workflow : LinkedList<FlowRepresentableMetaData>
-
LinkedList: A sequence type used to create a doubly linked list
Discussion:
A workflow is ultimately a doubly linked list. This is the underlying sequence type used.
See moreDeclaration
Swift
public class LinkedList<Value> : Sequence, CustomStringConvertible
extension LinkedList : Equatable where Value : Equatable
-
UIWorkflowItem: A subclass of UIViewController designed for convenience. This does NOT have to be used, it simply removes some of the overhead that normally comes with a FlowRepresentable.
Examples:
class SomeFlowRepresentable: UIWorkflowItem<String> { //must take in a string, or will not load var name:String? } extension SomeFlowRepresentable: FlowRepresentable { func shouldLoad(with name:String) { self.name = name return true } static func instance() -> AnyFlowRepresentable { return SomeFlowRepresentable() } }
Discussion:
If you would like the same convenience for other UIKit types this class is very straightforward to create:
open class UITableViewWorkflowItem<I>: UITableViewController { public var callback: ((Any?) -> Void)? public typealias IntakeType = I public weak var workflow: Workflow? }
Declaration
Swift
open class UIWorkflowItem<I> : UIViewController


Please click on the map or search for an address...
Search Radius
Distance
1
5
10
20
25
Units
Miles
Kilometers
Meters
Feet
okay
cancel
Refine Search
Near Me


Renault Captur now gets over Rs 3 lakh in discounts
by Rivan RSThanks to the discount available on the Renault Captur this month, prices for the midsize SUV now undercut compact SUVs like the Mahindra XUV300 and Ford EcoSport.
Despite being a tough crossover-styled (and rather attractive) SUV, the Captur has not managed to rack up the numbers Renault India hoped it would. Newer, very competitively priced rivals in the fiercely contested midsize SUV segment have almost ensured that the Renault Captur has not been able to match their sales figures. The Captur’s design is another sore point for some as similarly priced rivals offer exactly what India buyers are looking for in an SUV – a typically muscular design. In a bid to counter its somewhat dismal sales (just 222 units sold in October 2019), Renault is officially offering a whopping Rs 3 lakh cash discount on the SUV, in addition to corporate discounts worth Rs 5,000.
However, Renault has also added a disclaimer, saying that the benefits on offer may vary across variants and cities, and depends on the availability of stock. Nonetheless, this means that the entry-level Captur petrol, which currently retails at Rs 9.49 lakh, can now be bought at Rs 6.49 lakh. The table below has the details on the maximum discounts available, based on the variants:
| Renault Captur prices and discounts | ||
| Variant | Pre-discount price* | Post-discount price* |
| Captur RXE Petrol | Rs 9.49 lakh | Rs 6.44 lakh |
| Captur Platine Dual Tone Petrol | Rs 11.99 lakh | Rs 8.94 lakh |
| Captur RXE Diesel | Rs 10.49 lakh | Rs 7.44 lakh |
| Captur Platine Dual Tone Diesel | Rs 12.99 lakh | Rs 9.94 lakh |
Due to the sizable discount, Captur prices now undercut some compact SUVs such as the Mahindra XUV300 (Rs 8.10-12.14 lakh for the manual variants^) and Ford EcoSport (Rs 7.81-11.35 lakh*), making the Renault excellent value for money.
As Renault may axe diesel cars by April 2020 – an upgrade to the brand’s ubiquitous 1.5-litre K9K diesel engine (which is known for its efficiency and more than adequate performance in the higher 110hp state of tune) to BS6 norms seems unlikely – this may be the last few months where buyers will be able to buy the Captur diesel.
*All prices are ex-showroom, Delhi
^Mahindra XUV300 prices are ex-showroom, pan-India
Accessoried Renault Captur used for representation only.
Also see:
BS6 Renault Kwid 1.0 takes shape
New models help Hyundai, Kia, MG and Renault gain market share
Maruti S-Presso vs Renault Kwid comparison
Renault Captur
Rs 10.92 lakh * on road price (New Delhi)


Like emf.fields
, the emf.subcalc
package was originally intended to streamline the use of an external modeling program. Initially, emf.subcalc
only contained functions to handle the output files of the external program, which is called SUBCALC. This notebook demonstrates how emf.subcalc
can be used as an extension of SUBCALC.
from emf import subcalc as sc
#commands to make plots appear inside this notebook
sc.ion()
%matplotlib inline
#the "pretty printing" module is used to print variables more readably
from pprint import pprint
Working with SUBCALC output files
The SUBCALC program calculates magnetic fields over a fixed-height grid of uniformly spaced points. The grid of results can be exported to a text file by going to "Output > Ascii > Reference Grid" in the toolbar at the top of the SUBCALC window. The exported file can be "formatted" or "delimited", and this option is toggled in the "Options > Ascii" menu. The text file will have a ".REF" extension, which is short for "Reference Grid." Unfortunately, the formatting of the REF file makes it hard to work with. So, to extract the grid of results, emf.subcalc
provides the read_REF
function. This function parses "formatted" or "delimited" REF files and returns two variables.
numpy
vectors, with arrays for the x
and y
coordinates of each sample and arrays for magnetic field components (Bmax
, Bres
, Bx
, By
, Bz
) of those samples. These arrays are one dimensional, but can easily converted to 2D grids, which will be demonstrated further down.data, info = sc.read_REF('TEST.REF')
pprint(data)
pprint(info)
Now you could do anything you want with those variables, like writing the data to a flat file. However, the data are more useful as 2D arrays and the emf.subcalc
's Results
class is designed to work with the results in two dimensional format. To read the REF file directly into a Results
object, we can use the load_results
function, which calls read_REF
in the background then load the data into a Results
object.
res = sc.load_results('TEST.REF')
print(res)
Now we can take advantage of all the Results
object's capabilities, like interpolation, plotting, exporting, etc... See the documentation and the other notebooks for more information and demos.
If, on the other hand, we simply want to convert the REF file to an excel file to make it more readable and to reduce the file size, emf.subcalc
has a function for that. It's called convert_REF
. It simply loads the REF file into a Results
object then calls the object's export
method.
sc.convert_REF('TEST.REF')
If you open the new file, TEST.xlsx, you'll see a tab for each component of the magnetic fields arranged as a grid, with the y coordinates along the rows and the x coordinates along the columns. You'll also see an "info" tab for the model metadata. You might also notice that the new excel file is about 12% the size of the original REF file.
If we want to, we can load the new excel file back into a Results
object. The load_results
function that we used on the REF file can also be used on the excel files created by exporting Results
objects. So, if we wanted to, we could delete the REF file and use the excel version exclusively.
print(sc.load_results('TEST.xlsx'))
If we want to plot the results, we will likely want to include footprints in the plot. This can be done with an emf.subcalc
footprint template (a new one can always be generated with the drop_footprint_template
function). To associate footprints with the results in a REF file, the path to the footprint template can be passed as the second argument to convert_REF
and load_results
.
res = sc.load_results('TEST.REF', 'TEST-footprints.csv')
print(res)
Now when we print the Results
object, it shows that Footprint
objects have been associated with it from the "TEST-footprints.csv" file. The footprints will show up in plots.
sc.plot_contour(res)
Those are the basics. Refer to the documentation for more info on Results
objects and the functions that work with REF files.
Working with SUBCALC input files
The SUBCALC program is capable of generating formatted text files listing all of the parameters that go into the fields calculations. These files have ".INP" extensions, which is short for "input." These files can be generated by going to "Output > Ascii > Input Data" in the toolbar at the top of the SUBCALC window and they are a good way to keep track of the parameters used in a model. However, they cause errors when loaded back into SUBCALC. Only the binary ".SDW" files that SUBCALC creates can be loaded back in. So if you change a model and save the changes in your SDW file, you must remember to create a new INP file as well if you want to keep track of the input parameters. It's a hassle.
The solution is to store input parameters in an emf.subcalc
tower template (which can be created with the drop_tower_template
function).
However, if you need to bring the information saved to an INP file into emf.subcalc
, you can use the read_INP
function or the load_towers
function. The read_INP
function returns a list of Tower
objects created from the INP file. The load_towers
function can accept the path to an INP file or an emf.subcalc
tower template file and automatically load the towers into a Model
object. Generally, the load_towers
function is the easier choice.
#Here we load the INP data into a list of Towers, which are then loaded into a
# Model object. The second argument indicates that the Tower objects should be
# put into a Model object instead of returned in a list.
mod = sc.load_towers('TEST.INP', True)
print(mod)
Now we can take advantage of the Model
object's capabilities.
res = mod.calculate()
sc.plot_pcolormesh(res)
Those are the basics. Refer to the documentation for more info on Model
and Tower
objects and the functions that work with INP files.


"First of all, I would like to say thank you so much for all the hard work you guys have put into getting the latest APIs together all in one place! You have done an excellent job communicating which APIs are the most beneficial for my business and in addition to that, I want to thank your team for providing such great customer service."
Sally Clickbait, NY
“I officially launched my site last night and already have had a few orders come through! The APIs you provided really made a difference in making our customer’s experience on the site a great one.”
Sammy Salesman, CA
Have API integration at your fingertips. Deliver dynamically posted and updated content instantly.
At APISuperstore.com you can choose from APIs in all the most popular categories. Embed Facebook and LinkedIn with ease. Extend the functionality of your site with Google Maps or Yahoo Weather.