Hints permit the developer to add suggested behavior to the user interface without requiring the specific UI to implement that functionality. Hints therefore provide the specific UI with less stringent guidelines than other attributes. The specific UI has the option of completely ignoring a hint if it cannot understand it or implement it in the requested fashion.
For example, some hints deal with the spacial arrangement of objects and can be ignored if the specific UI cannot accommodate their requests. Developers should use hints to add suggested user interface behavior throughout their UI. This suggested use, however, should not be crucial to their application.
For example, the hint
HINT_LIST_CHECKBOXES
has no effect under OSF/Motif because the OSF/Motif specification does not include checkboxes. However, in some other specific UI (OpenLook, for example) that feature may be implemented.
Code Display 2-25 Setting Hints
@object GenInteractionClass MyInteraction = { GI_comp = @OneTrigger, @TwoTrigger, @ThreeTrigger;
/* Hints are added directly in an object's declaration. Note that each * vardata entry will expand the size of the object in memory. */ HINT_ORIENT_CHILDREN_HORIZONTALLY; /* This hint instructs the specific UI to arrange the object's children * in one or more horizontal rows, if possible. */ }
/* Hints are entered separately in C if multiple hints are desired. */
@object MyObjectClass MyObject = { GI_comp = @MyObjectChild; HINT_LIST_CHECKBOXES; HINT_ORIENT_CHILDREN_HORIZONTALLY; }
SystemAttrs, HINT_IF_SYSTEM_ATTRS, HINT_ELSE, HINT_ENDIF
The system attributes are global flags that describe what sort of environment is running the generic object. HINT_IF_SYSTEM_ATTRS is used to conditionally add hints to an object based on these
SystemAttrs
. If the
SystemAttrs
set in the HINT_IF_SYSTEM_ATTRS field are true for the current system, then the hints that follow (until a HINT_ENDIF is encountered) are included. If no HINT_ENDIF is encountered, then only the next hint is included. If the
SystemAttrs
do not match the current system, the following group of hints is instead deleted.
The following
SystemAttrs
are defined:
The HINT_ELSE hint can be used between HINT_IF_SYSTEM_ATTRS and HINT_END_IF. This allows the inclusion of a separate set of hints to be included when the system conditions in HINT_IF_SYSTEM_ATTRS are not satisfied.
Code Display 2-26 System Attributes
/* The SA_NOT bit acts as a logical not operation. In this case, the hint * HINT_EXPAND_HEIGHT_TO_FIT_PARENT will only be included in the object * declaration if the system is not pen-based. In addition, if the system is tiny, * the other hints will be included. The HINT_ENDIF marks the end of these * conditional hints. */
HINT_IF_SYSTEM_ATTRS = SA_NOT | SA_PEN_BASED; HINT_EXPAND_HEIGHT_TO_FIT_PARENT; HINT_IF_SYSTEM_ATTRS = SA_TINY; HINT_MINIMIZE_SIZE; HINT_DISPLAY_CURRENT_SELECTION; HINT_ENDIF;
/* Example within an object declaration. */
@object GenInteractionClass GroupingObject = { GI_comp = @One, @Two, @Three, @Four, @Five, @Six; HINT_IF_SYSTEM_ATTRS = SA_HORIZONTALLY_TINY; HINT_ORIENT_CHILDREN_VERTICALLY; HINT_WRAP_AFTER_CHILD_COUNT = 3; HINT_ELSE; HINT_ORIENT_CHILDREN_HORIZONTALLY; HINT_ENDIF; }
HINT_DEFAULT_DEFAULT_ACTION, HINT_ENSURE_TEMPORARY_DEFAULT, HINT_PREVENT_DEFAULT_OVERRIDES
Normally, objects in the user interface are activated by direct action (e.g., clicking on them). Objects may also be indirectly activated, however. The object activated indirectly is known as the default action object. For example, within a window, pressing ENTER or sending the window
MSG_GEN_ACTIVATE_INTERACTION_DEFAULT
will activate the object marked as the default action.
HINT_DEFAULT_DEFAULT_ACTION marks an object as the default action for the window it appears in. This hint is only relevant for GenTriggers or dialog GenInteractions (that are brought up by an activation trigger). The default activation object is usually activated by pressing the ENTER key within the window.
Normally, whenever a trigger is activated within a window, it will become the default activation object the next time around. Even if a trigger has HINT_DEFAULT_DEFAULT_ACTION, if some other trigger is activated, that other trigger will become the default action in the future. To prevent these automatic default overrides, add HINT_PREVENT_DEFAULT_OVERRIDES to the object's instance data.
HINT_ENSURE_TEMPORARY_DEFAULT ensures that an object that can be navigated to (via the TAB key for example) will act as a default activation object even if the specific UI does not normally allow such behavior. (OSF/Motif does this automatically.)
HINT_NAVIGATION_ID, HINT_NAVIGATION_NEXT_ID
Most specific UIs allow keyboard navigation within windows, usually through use of the TAB key. Normally, the navigation path follows the order of the children within the windowed object, and this is sufficient for most needs.
HINT_NAVIGATION_ID sets a navigation identifier for an object. Objects may "jump" to this object by including HINT_NAVIGATION_NEXT_ID in their instance data with a value equal to the matching navigation ID of the object to travel to.
Code Display 2-27 Navigation IDs
/* Essentially, this code allows keyboard navigation to skip the Two * trigger. Hitting the TAB key on the `One' trigger navigates the focus to the * Three trigger. */
@object GenTriggerClass One = { GI_visMoniker = "TAB here to get to Three"; HINT_NAVIGATION_NEXT_ID = 3; }
@object GenTriggerClass Two = { GI_visMoniker = "2"; }
@object GenTriggerClass Three = { GI_visMoniker = "3"; HINT_NAVIGATION_ID = 3; }
Note that an object with a matching navigation ID must exist, so this method is not recommended. If possible, your UI should be constructed in such a way to allow the default behavior.
MSG_META_ADD_VAR_DATA, MSG_META_DELETE_VAR_DATA, MSG_GEN_ADD_GEOMETRY_HINT, MSG_GEN_REMOVE_GEOMETRY_HINT
You must use special kernel routines and
MetaClass
messages to access, add, or remove entries within an object's instance fields.
ObjVarScanData()
This routine scans an object's vardata and calls routines listed in the variable data handler table. This routine is useful for processing several HINTs and ATTRs at one time.
MSG_META_ADD_VAR_DATA
You can use this message to add a vardata entry to an object. The object must first be set not usable before adding the entry. Set the object usable again after you have added the vardata entry.
MSG_META_DELETE_VAR_DATA
Use this message to delete a vardata entry from an object. The object must first be set not usable before removing the entry. Set the object usable again after you have removed the vardata entry.
ObjVarFindData()
This routine checks the object for the passed type and returns a pointer to its data. The message returns
true
if the entry is present,
false
if it is not. This routine is useful for processing a single vardata entry.
In addition to these routines and messages, two messages specific to
GenClass
allow you to add or remove hints dynamically:
MSG_GEN_ADD_GEOMETRY_HINT
and
MSG_GEN_REMOVE_GEOMETRY_HINT
. These messages allow geometry and window positioning hints to be added or removed while the object is on-screen. Sending a GS_USABLE object one of these messages with a valid geometry hint forces that object to redraw itself according to the new geometry.
void MSG_GEN_ADD_GEOMETRY_HINT( word hint, word hintArgument, VisUpdateMode updateMode);
This message adds a geometry hint to a generic object. The object may be GS_USABLE at the time, in which case the object is redrawn according to the new geometry configuration.
Source: Unrestricted.
Destination: Any generic object.
Parameters: hint The hint to add to the object's instance data
VisUpdateMode
to determine when the object will be redrawn.Interception: Generally not intercepted.
void MSG_GEN_REMOVE_GEOMETRY_HINT( word hint, VisUpdateMode updateMode);
This message removes a geometry hint from an object's instance data. The object may be GS_USABLE at the time, in which case it will be redrawn according to the new geometry configuration.
Source: Unrestricted.
Destination: Any generic object.
Parameters: hint The hint to remove.
VisUpdateMode
to determine when the object will be redrawn.Interception: Generally not intercepted.
It is often useful to pass messages "generically" rather than having to specify the particular optr directly. For example, in many cases, retrieving and storing the optr of an object is cumbersome, and it would be much easier to say "deliver this message to my parent."
GenClass
provides many useful messages which handle cases such as these. These message passers are of three types:
In all cases, the message must be stored as a
classed event
. A classed event is a combination of a class and a message. The message itself may pass data. The classed event enables the object to specify which class it would like the message to be handled by. In Goc, a classed event is created by encapsulating the message and class using the
@record
keyword.
Parent and Child Message Passing
MSG_GEN_CALL_PARENT, MSG_GEN_SEND_TO_PARENT, MSG_GEN_SEND_TO_CHILDREN
Three messages enable you to pass other messages to a generic object's parents and children without having to know the proper optrs. Using these messages, you can perform operations on any generic object's parents and children. If you need return values from an operation being performed by the parent object, use
MSG_GEN_CALL_PARENT
. If no return values are needed, you may use
MSG_GEN_SEND_TO_PARENT
.
To pass a message to all of your generic children, use
MSG_GEN_SEND_TO_CHILDREN
. Note that no comparable
MSG_GEN_CALL_CHILDREN
exists because it is meaningless to expect return values from multiple objects for a single event.
You may also use the Goc macros
genParent
and
genChildren
to send a message to a parent or the generic children of an object.
void MSG_GEN_CALL_PARENT( EventHandle event);
This message delivers an event to the generic parent of the recipient. This message must pass a classed event that the parent object will handle. You should use this message if return values are expected. Always make sure to cast the return (following the call) into the proper type. The most effective way to do this is by enclosing the actual message sent within parentheses. The event will be freed after it is sent.
Source: Unrestricted.
Destination: Any generic object.
Parameters: event The classed event to deliver to parent of this object.
Return: The return value of the classed event (cast to the proper type).
Interception: Generally not intercepted. Custom gadgets may handle to supplement or supersede default functionality.
Code Display 2-28 MSG_GEN_CALL_PARENT
/* The following method retrieves the visual moniker * of an object's parent. */
@method MyProcessClass, MSG_GET_MY_PARENTS_MONIKER { ChunkHandle parentMoniker; EventHandle myEvent;
/* Encapsulate the message to be handled * by any generic (GenClass) object. */
myEvent = @record GenClass::MSG_GEN_GET_MONIKER();
/* Calls the parent of EntryNumberTwo with the classed event specified above. Note * that the return value is cast to type (MSG_GEN_GET_MONIKER) because * MSG_GEN_CALL_PARENT itself returns void. */
parentMoniker = @call (MSG_GEN_GET_MONIKER) @EntryNumberTwo::MSG_GEN_CALL_PARENT(myEvent); return(parentMoniker); /* return the parentMoniker. */ }
void MSG_GEN_SEND_TO_PARENT( EventHandle event);
This message sends an encapsulated event to the parent but expects no return values. The event will be freed after it is sent.
Source: Unrestricted.
Destination: Any generic object.
Parameters: event The classed event to deliver to parent of this object.
Interception: Generally not intercepted. Custom gadgets may handle to supplement or supersede default functionality.
void MSG_GEN_SEND_TO_CHILDREN( EventHandle event);
This message sends an encapsulated event to all children of the generic object receiving it. This message cannot return values. The event will be freed after it is sent.
Source: Unrestricted.
Destination: Any generic object.
Parameters: event The classed event to deliver to all children.
Interception: Generally not intercepted. Custom gadgets may handle to supplement or supersede default functionality.
MSG_GEN_GUP_CALL_OBJECT_OF_CLASS, MSG_GEN_GUP_SEND_TO_OBJECT_OF_CLASS, MSG_GEN_GUP_TEST_FOR_OBJECT_OF_CLASS, MSG_GEN_GUP_FIND_OBJECT_OF_CLASS, MSG_GEN_GUP_QUERY, MSG_GEN_GUP_INTERACTION_COMMAND, MSG_GEN_GUP_FINISH_QUIT
GenClass
provides the capability to search up the generic tree beyond the parent. Using the following messages, the UI can continue passing classed events up the generic tree until it reaches an object of the proper class. This behavior is known as a Generic UPward query (GUP).
For example, if you specify
GenInteractionClass
in your classed event and later send a GUP message to any object in the generic tree, the stored message will be handled at the first available GenInteraction object it encounters.
MSG_GEN_GUP_CALL_OBJECT_OF_CLASS
performs a GUP, returning values from the passed message. You must cast the return values into the proper type based on the return values of the passed message.
MSG_GEN_GUP_SEND_TO_OBJECT_OF_CLASS
performs a GUP but does not allow return values.
MSG_GEN_GUP_TEST_FOR_OBJECT_OF_CLASS
performs a GUP whose sole function is to search for the existence of an object of the specified class among the object's parents.
MSG_GEN_GUP_FIND_OBJECT_OF_CLASS
performs a GUP searching for any object of the passed class, but it also returns the optr of the object found. Note that it is unwise to later use this optr as the generic tree may have changed.
void MSG_GEN_GUP_CALL_OBJECT_OF_CLASS( EventHandle event);
This message performs a generic upward query, passing the classed event upward until it reaches an object of the passed class. This message allows return values and should be cast into whatever return values are expected of the passed message. This is most easily done by enclosing the message sent within parentheses.
An object of the expected class should be present or the event will not be delivered to any object. To check for the existence of such a class, use
MSG_GEN_GUP_TEST_FOR_OBJECT_OF_CLASS
.
Source: Unrestricted.
Destination: Any generic object.
Parameters: event The classed event to deliver to an object up the generic tree.
Return: The return values of the classed event (cast to the proper type).
Interception: Generally not intercepted. Custom gadgets may handle to supplement or supersede default functionality.
void MSG_GEN_GUP_SEND_TO_OBJECT_OF_CLASS( EventHandle event);
This message performs a generic upward query, passing the classed event upward until it reaches an object of the described class. Since this message performs a send, it does not allow return values. An object of the expected class should be present; otherwise, the event will not be delivered to any object. To check for the existence of such a class, use
MSG_GEN_GUP_TEST_FOR_OBJECT_OF_CLASS
.
Source: Unrestricted.
Destination: Any generic object.
Parameters: event The classed event to deliver to an object up the generic tree.
Interception: Generally not intercepted. Custom gadgets may handle to supplement or supersede default functionality.
Code Display 2-29 Nesting Classed Events
/* The following method can be used by any object in the generic tree below the * primary to set all menus and GenInteractions below the primary window enabled * all at once. */
@method MyProcessClass, MSG_ENABLE_ALL_MY_MENUS { EventHandle menuEvent, primaryEvent;
/* The first classed event (menuEvent) encapsulates MSG_GEN_SET_ENABLED for any * object of GenInteractionClass (typically menus). The @record keyword * encapsulates the message to be handled by GenInteractionClass. The * VisUpdateMode delays updates via the Application queue to avoid constant visual * updates and "flashing." */
menuEvent = @record GenInteractionClass::MSG_GEN_SET_ENABLED( VUM_DELAYED_VIA_APP_QUEUE);
/* The second classed event binds MSG_GEN_SEND_TO_CHILDREN to the GenPrimaryClass. * Sending this message to the GenPrimary will send the menuEvent to all * its children. In this case, sending this event to the Primary will send * MSG_GEN_SET_ENABLED to all its GenInteraction children. */
primaryEvent = @record GenPrimaryClass::MSG_GEN_SEND_TO_CHILDREN(menuEvent);
/* Finally, to send this message to the GenPrimary from any object below the * GenPrimary, simply send a MSG_GEN_GUP_SEND_TO_OBJECT_OF_CLASS with the * PrimaryEvent above. The GUP message will send the message * MSG_GEN_SEND_TO_CHILDREN up the generic tree until it encounters the GenPrimary, * at which point the Primary will send the MenuEvent MSG_GEN_SEND_TO_CHILDREN to * all its GenInteraction children. */
@send @MyObject::MSG_GEN_GUP_SEND_TO_OBJECT_OF_CLASS(primaryEvent); }
Boolean MSG_GEN_GUP_TEST_FOR_OBJECT_OF_CLASS( ClassStruct *class);
This message searches up the generic tree for any object of the specific class. This message is useful for testing the existence of required classes before sending
MSG_GEN_GUP_CALL_OBJECT_OF_CLASS
and
MSG_GEN_GUP_SEND_TO_OBJECT_OF_CLASS
.
Source: Unrestricted.
Destination: Any generic object.
Parameters:
class
ClassStruct
to search for among the object's parents.
Return: Will return
true
if the class is found,
false
if not.
Interception: Generally not intercepted. Custom gadgets may handle to supplement or supersede default functionality.
optr MSG_GEN_GUP_FIND_OBJECT_OF_CLASS( ClassStruct *class);
This message performs a function similar to that of
MSG_GEN_GUP_TEST_FOR_OBJECT_OF_CLASS
, but it returns the optr of the class found, if any. This optr can then be used as the recipient of other messages. You should not use an optr returned by this message at a later time, as the object may have been removed.
Source: Unrestricted.
Destination: Any generic object.
Parameters:
class
ClassStruct
to search for.
Return: The optr of the object of the requested class, or a null optr if no such object was found.
Interception: Generally not intercepted. Custom gadgets may handle to supplement or supersede default functionality.
void MSG_GEN_GUP_QUERY( GenReturnParams *retValue, word queryType);
This message is used to query up the generic composite tree.
Source: Anyone.
Destination: Any usable generic object, though only certain objects will answer certain queries.
Parameters: retValue Structure to hold return values.
GenUpwardQueryType
.
The
GenUpwardQueryType
should be one of the following:
cx
:GRP_
dx
and window (if realized) handle in GRP_
bp
. This is a reasonably safe thing to do, since the field window will remain open until all applications within the field are shut down. Only field objects or substitutes for them should intercept this message.
cx
:GRP_
dx
and window (if any) handle in GRP_
bp
. This is a reasonably safe thing to do, since the screen window will remain open until all applications within the field are shut down. Screen object being returned will be default screen for the field.Return: Nothing returned explicitly. retValue struct filled with values which depend on query type.
Structures:
typedef struct { word GRP_ax; word GRP_bp; word GRP_cx; word GRP_dx;
} GenReturnParams;
Boolean MSG_GEN_GUP_INTERACTION_COMMAND( InteractionCommand command);
This message travels up the generic tree until it reaches a non-GIT_ORGANIZATIONAL GenInteraction. Once there, it performs the indicated
InteractionCommand
. See
InteractionCommand
declaration for the different command types and how specific user interfaces interpret the commands. If the GenInteraction is a dialog brought up with
UserDoDialog()
,
InteractionCommand
will be returned to the caller, after performing the command, via
MSG_GEN_INTERACTION_RELEASE_BLOCKED_THREAD_WITH_RESPONSE
.
Source: Unrestricted. Normally sent by a
MSG_GEN_INTERACTION_ACTIVATE_COMMAND
handler or by a custom trigger's action message handler to perform some default command after perform some application-specific function.
Destination: Any generic object. Will travel up generic tree, stopping at first non organizational interaction.
Parameters: command Standard InteractionCommand.
Return: Returns true if handled.
Interception: Not normally intercepted.
void MSG_GEN_GUP_FINISH_QUIT( Boolean abortFlag, Boolean notifyParent);
Message to be used by nodes that implement a GCN active list. This should be used if
MSG_META_QUIT
is handled and sent to the active list items by that node. When a node has finished sending a
MSG_META_QUIT
to the active list or if the quit is aborted, this allows the notification of the above node in the generic tree.
Source: Sent by active list nodes that implement quit mechanism.
Destination: Any generic object involved in quit mechanism.
Parameters: abortFlag Pass true to abort. This will be passed on to
MSG_META_FINISH_QUIT
.
Interception: Generally not intercepted. Default handler sends
MSG_META_FINISH_QUIT
to self, then sends to generic parent if flag indicates such.
MSG_META_FINISH_QUIT
is normally the message to intercept to know when a quit is aborted or finished.
MSG_GEN_CALL_APPLICATION, MSG_GEN_SEND_TO_PROCESS, MSG_GEN_CALL_SYSTEM,MSG_GEN_OUTPUT_ACTION MSG_GEN_QUERY_NEED_TO_BE_ON_ACTIVE_LIST
Besides the Generic Upward Queries,
GenClass
also contains several object-specific queries. These messages behave in the same manner as the GUP messages except that there is no need to set up a classed event. The object-specific upward query automatically sets up the class to send the message to.
MSG_GEN_CALL_APPLICATION
sends a message up the generic tree to the GenApplication object. This message allows return values and should be cast to whatever return values are expected of the passed message.
MSG_GEN_SEND_TO_PROCESS
sends a message to the process object associated with this object. Because this message may cross threads, no return values are allowed.
MSG_GEN_CALL_SYSTEM
sends a message up the generic tree to the GenSystem object. This message allows return values and should be cast into whatever return values are expected of the passed message.
MSG_GEN_QUERY_NEED_TO_BE_ON_ACTIVE_LIST
void MSG_GEN_CALL_APPLICATION( EventHandle event);
This message calls the GenApplication object associated with the recipient. This message allows return values and should be cast to whatever return values are expected of the passed message.
Source: Unrestricted.
Destination: Any generic object.
Parameters: event The classed event to deliver to the object's GenApplication object.
Return: The return values of the classed event (cast to the proper type).
Interception: Generally not intercepted. Custom gadgets may handle to supplement or supersede default functionality.
void MSG_GEN_SEND_TO_PROCESS( EventHandle event);
This message sends the event to the Process object of your application. Because the message may cross threads, return values are not allowed.
Source: Unrestricted.
Destination: Any generic object.
Parameters: event The classed event to deliver to the object's GenProcess object.
Interception: Generally not intercepted. Custom gadgets may handle to supplement or supersede default functionality.
void MSG_GEN_CALL_SYSTEM( EventHandle event);
This message calls the GenSystem object (the root object) associated with your application and sends the event. If you expect return values, make sure to cast them into the proper variable type.
Source: Unrestricted.
Destination: Any generic object.
Parameters:
event
The classed event to deliver to the object's GenSystem object.
Return: The return values of the classed event (cast to the proper type).
Interception: Generally not intercepted. Custom gadgets may handle to supplement or supersede default functionality.
MSG_GEN_OUTPUT_ACTION
void
MSG_GEN_OUTPUT_ACTION(
EventHandle event, optr dest);
This message sends an event via the destination optr (if any) of the object sent the message. The default handler (which is rarely subclassed) also scans the vardata looking for an
ATTR_GEN_DESTINATION_CLASS
and records that class in a classed event.
This message is usually sent at a low level and dispatches a message via the destination optr of the object. You may intercept
MSG_GEN_OUTPUT_ACTION
if you wish knowledge of when an object is being activated (although you may wish to intercept
MSG_GEN_ACTIVATE
in those cases). If you do send this message yourself, you must either pass a destination optr or leave it null, depending on the object being activated.
Source: Normally sent by an object to itself.
Destination: Normally sent by an object to itself.
Parameters: event A classed event.
TravelOption
.Interception: Generally not intercepted.
Boolean MSG_GEN_QUERY_NEED_TO_BE_ON_ACTIVE_LIST();
This message queries whether an object still needs to be on an active list. The active list mechanism sends this message if a mechanism no longer needs an object to remain on the active list; it checks whether any other mechanism also needs the object to be on the active list also. Windowed specific UI objects, for example, will return true if ATTR_INITIATE_ON_STARTUP is present on the object, because this optional attribute requires the object to be on the active list.
Source: Unrestricted, though it is generally called on itself. Specifically, if an object no longer needs to remain on the active list for a particular reason, this message should be called on the object to see if it should remain on the active list for any other reason. If so, the caller should not remove the object from the active list. The only exception to this would be if the object were being destroyed, in which the object should be removed in any case.
Destination: Any generic object.
Return: true if the object needs to remain on the active list for some other reason.
Interception: Object classes which add the object to the active list must intercept this message and return true if the class desires the object to remain on the active list. If the message is intercepted and this is not the case, it should be sent to the superclass for handling.
MSG_GEN_UPDATE_VISUAL
MSG_GEN_UPDATE_VISUAL
performs a visual update of the object sent the message. Use this message to force a visual update on objects previously updated using the
VisUpdateMode
VUM_MANUAL.
void MSG_GEN_UPDATE_VISUAL( VisUpdateMode updateMode);
This message updates the visual tree at the node specified and is used for updating objects modified with VUM_MANUAL.
Source: Unrestricted.
Destination: Any generic object.
Parameters:
updateMode
VisUpdateMode
to determine when the object should be redrawn.
Interception: Generally not intercepted.
MSG_GEN_SET_INITIAL_SIZE, MSG_GEN_SET_MINIMUM_SIZE, MSG_GEN_SET_MAXIMUM_SIZE, MSG_GEN_SET_FIXED_SIZE, MSG_GEN_GET_INITIAL_SIZE, MSG_GEN_GET_MINIMUM_SIZE, MSG_GEN_GET_MAXIMUM_SIZE, MSG_GEN_GET_FIZED_SIZE, MSG_GEN_RESET_TO_INITIAL_SIZE, CompSizeHintArgs
These messages all perform resizing operations on generic objects. In some cases, the geometry is not redone by sending these messages; the object will need to be set not usable and then set usable to force the new sizing scheme. In most cases, however, sending these messages will affect the current geometry of an object. These messages manipulate their associated hints, either by creating new hints or by altering old ones. As such, these messages will only affect an object if the associated hint does also.
These messages alter four size restrictions associated with an object: initial, maximum, minimum, and fixed. These restrictions are set up using the
GenClass
hints
HINT_INITIAL_SIZE
,
HINT_MAXIMUM_SIZE
,
HINT_MINIMUM_SIZE
, and
HINT_FIXED_SIZE
, all of which are described in the Managing UI Geometry chapter.
The size parameter required by each of these hints is a structure of type
CompSizeHintArgs
. This structure is shown below:
typedef struct { SpecWidth CSHA_width; SpecHeight CSHA_height; sword CSHA_count; } CompSizeHintArgs;
Many of the messages pass a structure of
GetSizeArgs
to place size information retrieved from the message. This size information is used by the specific UI to visually construct the object, bypassing default sizes in the process.
The object must be passed a pointer to a structure of type
GetSizeArgs
to store the retrieved data. If the hint
HINT_INITIAL_SIZE
does not exist for this object
,
the structure passed to the object of size
GetSizeArgs
will remain empty.
Source: Unrestricted.
Destination: Any generic object.
Parameters:
initSize
A pointer to an empty
GetSizeArgs
structure.
Return: The
GetSizeArgs
structure will contain the object's initial size.
 This is only done by creating or modifying the hint
HINT_INITIAL_SIZE
; there is no guarantee that the specific UI will implement this message in the expected fashion.
The message must pass a
VisUpdateMode
. This message will only affect the size of an object when it first opens; it will not modify the geometry of a currently built object. For the defined geometry to take effect on an already built object, the object must be set not usable and then set usable again.
Source: Unrestricted.
Destination: Any generic object.
Parameters: count The number of children (or zero, if not applicable).
Interception: Generally not intercepted.
void MSG_GEN_RESET_TO_INITIAL_SIZE( VisUpdateMode updateMode);
This message forces the recipient and all of its children to be resized according to their initial size specifications. If the objects contain
HINT_INITIAL_SIZE
, they will be resized according to the hint; otherwise they will be resized according to their default geometry. This message is useful for activating sizes set with
MSG_GEN_SET_INITIAL_SIZE
.
Source: Unrestricted.
Destination: Any GS_USABLE generic object.
Parameters:
updateMode
VisUpdateMode
to determine when the object will be redrawn.
Interception: Generally not intercepted.
void MSG_GEN_GET_MINIMUM_SIZE( GetSizeArgs *minSize);
This message retrieves the recipient's minimum size specifications stored in the hint
HINT_MINIMUM_SIZE
. If
HINT_MINIMUM_SIZE
is not set
,
the structure passed to the object will remain empty.
Source: Unrestricted.
Destination: Any generic object.
Parameters:
minSize
A pointer to an empty
GetSizeArgs
structure.
Return: The
GetSizeArgs
structure will contain the object's minimum size.
Interception: Generally not intercepted.
void MSG_GEN_SET_MINIMUM_SIZE(@stack byte updateMode, word count, word height, /* SpecHeight */ word width); /* SpecWidth */
This message sets the minimum allowable size of an object. An object with a minimum size is not allowed to shrink smaller than the bounds set in
HINT_MINIMUM_SIZE
. This message alters the minimum size by creating or modifying the hint
HINT_MINIMUM_SIZE
. Due to the nature of hints, there is no guarantee that the specific UI will implement this message in the expected fashion.
This message will modify the geometry of a currently built object, forcing that object to be unbuilt and then built again. Note that the minimum size of an object has nothing to do with the minimized state of an object (for GenDisplays, the iconification of an object) but merely the minimum allowable size of an object in its normal usable state.
Source: Unrestricted.
Destination: Any generic object.
Parameters: count The number of children (or zero, if not applicable).
Interception: Generally not intercepted.
void MSG_GEN_GET_MAXIMUM_SIZE( GetSizeArgs *maxSize);
This message retrieves the recipient's maximum size stored in the hint
HINT_MAXIMUM_SIZE
. If
HINT_MAXIMUM_SIZE
is not set
,
the structure passed will remain empty.
Source: Unrestricted.
Destination: Any generic object.
Parameters:
maxSize
A pointer to an empty
GetSizeArgs
structure.
Return: The
GetSizeArgs
structure will contain the object's maximum size.
Interception: Generally not intercepted.
void MSG_GEN_SET_MAXIMUM_SIZE( word count, word height, /* SpecHeight */ word width); /* SpecWidth */
This message sets the maximum allowable size of an object. An object with a maximum size is not allowed to grow larger than the bounds set with
HINT_MAXIMUM_SIZE
. This message alters the maximum size by creating or modifying the hint
HINT_MAXIMUM_SIZE
. Due to the nature of hints, there is no guarantee that the specific UI will implement this message in the expected fashion.
This message will modify the geometry of a currently built object, forcing that object to be unbuilt and then built again. Note that the maximum size of an object has nothing to do with the maximized state of an object but merely the maximum allowable size of an object in its normal usable state.
Source: Unrestricted.
Destination: Any generic object.
Parameters: count The number of children (or zero, if not applicable).
Interception: Generally not intercepted.
void MSG_GEN_GET_FIXED_SIZE( GetSizeArgs *fixedSize);
This message retrieves the size stored in
HINT_FIXED_SIZE
. If
HINT_FIXED_SIZE
is not set, the structure passed will remain empty.
Source: Unrestricted.
Destination: Any generic object.
Parameters:
fixedSize
A pointer to an empty
GetSizeArgs
structure.
Return: The
GetSizeArgs
structure will contain the object's fixed size.
Interception: Generally not intercepted.
void MSG_GEN_SET_FIXED_SIZE( word count, word height, /* SpecHeight */ word width); /* SpecWidth */
This message sets the fixed size of an object. An object with a fixed size is forced to remain at the size set with
HINT_FIXED_SIZE
. This message alters this fixed size by creating or modifying
HINT_FIXED_SIZE
. Due to the nature of hints, there is no guarantee that the specific UI will implement this message in the expected fashion.
Source: Unrestricted.
Destination: Any generic object.
Parameters: count The number of children (or zero, if not applicable).
Interception: Generally not intercepted.
MSG_GEN_APPLY, MSG_GEN_PRE_APPLY, MSG_GEN_POST_APPLY, MSG_GEN_RESET, MSG_GEN_MAKE_APPLYABLE, MSG_GEN_MAKE_NOT_APPLYABLE, MSG_GEN_ACTIVATE, MSG_GEN_ACTIVATE_INTERACTION_DEFAULT
These messages only affect objects which contain properties. These property gadgets (such as GenItemGroups, GenValues, GenTexts, etc.) typically operate in one of two modes: immediate or delayed .
If an object is operating in immediate mode, any changes in the object's state will cause an immediate change to occur in the application (through the sending of an apply message in the object's instance data). For example, if a GenBooleanGroup is operating in immediate mode, every time the user makes a selection within the BooleanGroup, those changes will be applied to the application immediately, as they occur.
If instead an object is operating in delayed mode, any changes in the object's state will not be sent out immediately. They will only be sent out at a later time when the object receives instructions to apply its changes. The UI asks a generic object to apply its changes with
MSG_GEN_APPLY
.
Typically, each properties gadget operating in delayed mode has a modified state, indicating whether the object has changed since it last applied its changes. Upon receiving
MSG_GEN_APPLY
, the object checks whether it has been modified; if it has, it will send out its apply message in the object's instance data. Either you or the system may send out
MSG_GEN_APPLY
to force a properties gadget to apply its changes. Sending out
MSG_GEN_APPLY
clears any modified states associated with a properties gadget (after those properties are applied, of course).
If
MSG_GEN_APPLY
is sent to either a dialog GenInteraction or another GenInteraction within that dialog, it will be propagated to all property gadgets within that Interaction. In this manner, you can apply multiple properties within a dialog box all at once. A GIT_PROPERTIES GenInteraction automatically sends out
MSG_GEN_APPLY
upon receiving
MSG_GEN_GUP_INTERACTION_COMMAND
with the
InteractionCommand
IC_APPLY. (This is typically through an "Apply" trigger in the dialog box.) The dialog will also send
MSG_GEN_PRE_APPLY
and
MSG_GEN_POST_APPLY
messages before and after the apply, respectively.
MSG_GEN_RESET
also exhibits this automatic propagation behavior; if this message is sent to a dialog GenInteraction, it will be sent to all property gadgets within that Interaction. However, generic property gadgets provide no default handling for
MSG_GEN_RESET
. If you wish for an object to reset its properties upon receiving
MSG_GEN_RESET
, you must subclass the object and handle this message yourself. A GIT_PROPERTIES GenInteraction automatically sends out
MSG_GEN_RESET
upon receiving
MSG_GEN_GUP_INTERACTION_COMMAND
with the
InteractionCommand
IC_RESET. (This is typically through a "Reset" trigger in the dialog box.)
MSG_GEN_MAKE_APPLYABLE
instructs an object to enable any apply and reset mechanisms that may be disabled. The object must be in delayed mode.
MSG_GEN_MAKE_NOT_APPLYABLE
instructs an object to disable any apply and reset mechanisms. The object must be in delayed mode.
MSG_GEN_ACTIVATE
activates a generic object as if it had been activated by the user through the specific UI. For example, sending a GenTrigger
MSG_GEN_ACTIVATE
will cause the trigger to send out its action message in the same manner as if the user had clicked on the trigger.
MSG_GEN_ACTIVATE_INTERACTION_DEFAULT
sends a
MSG_GEN_ACTIVATE
to the object marked as the default within a GenInteraction. This message travels up the generic tree to the first independently-displayable object (usually a dialog box) and then activates the default object for that windowed object.
void MSG_GEN_APPLY();
This message is sent to property gadgets to cause them to dispatch their "apply" message and at the same time reset any modified states associated with that object. If this message is sent to a GenInteraction within a dialog box, the GenInteraction will propagate this message to all of its children.
This message may be sent by a GIT_PROPERTIES Interaction upon receipt of
MSG_GEN_GUP_INTERACTION_COMMAND
with IC_APPLY. You may send this message yourself if you wish for changes in state within the dialog box to be reflected in your application.
Source: Usually a GIT_PROPERTIES Interaction (with an IC_APPLY trigger). You may send this message yourself to force generic objects to apply their changes.
Destination: Any GenInteraction within a dialog box, or any gadget with properties (GenItemGroup, GenValue, etc.).
Parameters: None.
Return: Nothing.
Interception: Generally not intercepted.
Boolean MSG_GEN_PRE_APPLY();
A properties dialog will send this message before
MSG_GEN_APPLY
. Geodes may use this to do validation of settings or to prepare for applying of changes.
Source: Normally sent by properties dialog before sending
MSG_GEN_APPLY
.
Destination: Same as
MSG_GEN_APPLY
.
Parameters: None.
Return: Return true if error.
Interception: Must be intercepted to handle properties validation.
void MSG_GEN_POST_APPLY();
A properties dialog will send this message after
MSG_GEN_APPLY
. This can be used to clean up after application of changes.
Source: Normally sent by properties dialog after sending
MSG_GEN_APPLY
.
Destination: Same as
MSG_GEN_APPLY
.
Parameters: None.
Return: Nothing.
Interception: Can be intercepted to handle clean up work after
MSG_GEN_APPLY
.
void MSG_GEN_RESET();
This message, if sent to a GenInteraction within a GIT_PROPERTIES dialog box, will propagate to all children below the receiving Interaction. This message provides a convenient means to reset properties within gadgets. There is no default handling of
MSG_GEN_RESET
by generic objects. You must provide the reset behavior yourself by subclassing individual objects.
Source: Usually a GIT_PROPERTIES GenInteraction (with an IC_RESET trigger), or your application.
Destination: Any GenInteraction within a dialog box, or any gadget subclassed to handle
MSG_GEN_RESET
.
Parameters: None.
Return: Nothing.
Interception: Your subclassed generic object should intercept this message to provide its own custom reset behavior.
void MSG_GEN_MAKE_APPLYABLE();
This message is typically sent to a dialog GenInteraction
to enable its default "apply" and "reset" buttons. This message also sets up the proper user and actual states for the object. This message is useful in the implementation of custom gadgets.
Source: Unrestricted.
Destination: Any GS_USABLE
GenClass
object. (This message is only meaningful for objects within a GIT_PROPERTIES GenInteraction, however.)
Parameters: None.
Return: Nothing.
Interception: Generally not intercepted.
void MSG_GEN_MAKE_NOT_APPLYABLE();
This message is typically sent to a dialog GenInteraction
to disable its default "apply" and "reset" buttons. This message is useful in the implementation of custom gadgets.
Source: Unrestricted.
Destination: Any GS_USABLE
GenClass
object. (This message is only meaningful for objects within a GIT_PROPERTIES GenInteraction, however.)
Parameters: None.
Return: Nothing.
Interception: Generally not intercepted.
void MSG_GEN_ACTIVATE();
This message manually activates an object as if the user had activated it in the manner defined by the specific UI. For example, this message may activate GenTriggers without use of the mouse. This message causes all normal visual cues associated with the activation.
Source: Unrestricted.
Destination: Usually sent by an object to itself.
Parameters: None.
Return: Nothing.
Interception: Generally not intercepted.
Boolean MSG_GEN_ACTIVATE_INTERACTION_DEFAULT();
This message acts on a default exclusive object within a window, forcing that object to activate as in
MSG_GEN_ACTIVATE
. This message travels up the visible tree to the first WIN_GROUP (windowed) object and sends a
MSG_GEN_ACTIVATE
to the default object selected there. (This default object is typically marked with the hint
HINT_DEFAULT_DEFAULT_ACTION
.)
Source: Unrestricted.
Destination: Any GS_USABLE
GenClass
object (usually within a dialog box).
Parameters: None.
Return: Will return true if the object was activated, false if it was not.
Interception: Generally not intercepted.
MSG_GEN_BRING_TO_TOP, MSG_GEN_LOWER_TO_BOTTOM
MetaClass
provides the main means of changing the focus and target hierarchies within an application.
GenClass
also provides two messages to perform special cases with windowed objects.
MSG_GEN_BRING_TO_TOP
brings a windowed object to the front of all overlapping windowed objects within its window layer. Depending on the specific UI, this message may alter the focus and target by sending
MSG_META_GRAB_FOCUS_EXCL
or
MSG_META_GRAB_TARGET_EXCL
to the window brought to the front.
MSG_GEN_LOWER_TO_BOTTOM
lowers a windowed object to the bottom of all overlapping windowed objects within its window layer. Depending on the specific UI, this message may alter the focus and target hierarchies by sending a
MSG_META_RELEASE_FOCUS_EXCL
and
MSG_META_RELEASE_TARGET_EXCL
to the window lowered to the bottom.
void MSG_GEN_BRING_TO_TOP();
This message brings a windowed object to the front if it is in a maximized or overlapping arrangement with other window objects. This message may also grab the focus and target exclusives for the window involved, if the specific UI allows such behavior.
Source: Unrestricted.
Destination: Any GS_USABLE
GenClass
object. (Only GenDisplays, independently displayable GenInteractions, and GenPrimarys are affected.)
Parameters: None.
Return: Nothing.
Interception: Generally not intercepted.
void MSG_GEN_LOWER_TO_BOTTOM();
This message lowers a windowed object to the bottom if it is in an overlapping arrangement with other windowed objects. This message may also release the focus and target exclusives for the window involved, if the specific UI allows such behavior.
Source: Unrestricted.
Destination: Any GS_USABLE
GenClass
object. (Only GenDisplays, independently displayable GenInteractions, and GenPrimarys are affected.)
Parameters: None.
Return: Nothing.
Interception: Generally not intercepted.
MSG_GEN_NAVIGATE_TO_NEXT_FIELD, MSG_GEN_NAVIGATE_TO_PREVIOUS_FIELD, MSG_GEN_NAVIGATION_QUERY
These messages move the navigation cursor between fields at the same level. Typically, these messages alter the focus and target exclusives to implement this behavior. These messages are rarely used within applications.
void MSG_GEN_NAVIGATE_TO_NEXT_FIELD();
This message moves the navigation cursor from its current object to the next valid object. This message is useful if you are trapping keyboard characters using
MSG_META_KBD_CHAR
and wish to use special characters to navigate the cursor to various fields within a View.
Source: Normally sent by the specific UI, although your application could also send this.
Destination: Any GS_USABLE
GenClass
object.
Parameters: None.
Return: Nothing.
Interception: Generally not intercepted. To alter navigation functionality, intercept
MSG_GEN_NAVIGATION_QUERY
instead.
void MSG_GEN_NAVIGATE_TO_PREVIOUS_FIELD();
This message moves the navigation cursor from its current object to the previous valid object. This message is useful if you are trapping keyboard characters using
MSG_META_KBD_CHAR
and wish to use special characters to navigate the cursor to various fields within a View.
Source: Normally sent by the specific UI, although your application could also send this.
Destination: Any GS_USABLE
GenClass
object.
Parameters: None.
Return: Nothing.
Interception: Generally not intercepted. To alter navigation functionality, intercept
MSG_GEN_NAVIGATION_QUERY
instead.
Boolean MSG_GEN_NAVIGATION_QUERY( NavigationQueryParams *retValue, optr queryOrigin, NavigationFlags navFlags);
This message can be used by applications to initiate navigation-oriented queries, as the
MSG_GEN_NAVIGATE_TO_
[
NEXT
|
PREVIOUS
]
_FIELD
messages do.
This structure's return values determine how it fits into the navigation network. If this message returns
true
, then the object which should receive the focus was found, and the
NQP_nextObject
field will hold the pointer of this object.
If the message returns
false
, then the focusable object has not yet been found. The
NQP_nextObject
field contains the field of the next object to try and the
NQP_navFlags
contains the updated navigation flags which should be passed in the next query.
Source: Unrestricted.
Destination: Any generic object.
Parameters: navFlags Flags giving state of navigation.
queryOrigin
Return: true if the queried object should receive the focus; false otherwise.
Structures:
typedef struct { word NQP_navFlags; byte NQP_backtrackFlag; byte NQP_unused; optr NQP_nextObject; } NavigationQueryParams;
MSG_GEN_SET_WIN_POSITION, MSG_GEN_SET_WIN_SIZE, MSG_GEN_SET_WIN_CONSTRAIN
These messages allow window objects to override their default window behavior. Sending these messages may cause the objects involved to be specifically rebuilt.
You may also override the default constraints on a windowed object. To do so, send the windowed object MSG_GEN_SET_WIN_CONSTRAIN, passing it the
WinConstrainType
to set for the window.
void MSG_GEN_SET_WIN_POSITION( word modeAndType, SpecWinSizeSpec xPosSpec, SpecWinSizeSpec yPosSpec);
This message sets a window's position. The message must be passed a
WinPositionType
along with two x and y coordinates passed in
SpecWinSizeSpec
structures. The window's upper left corner will be drawn at the supplied coordinates.
Source: Unrestricted.
Destination: Any GS_USABLE GenDisplay, GenPrimary, or independently-displayable GenInteraction.
Parameters:
modeAndType
VisUpdateMode
and
WinPositionType
. This message expects a
VisUpdateMode
and
WinPositionType
passed in the parameter
modeAndType
. Use the macro GET_MM_AND_TYPE to combine these two values into one word.
Return: Nothing.
Interception: Generally not intercepted.
void MSG_GEN_SET_WIN_SIZE( word modeAndType, SpecWinSizeSpec xSizeSpec, SpecWinsizeSpec ySizeSpec);
This message sets a window's size. The message must be passed a
WinPositionType
along with two x and y coordinates passed in
SpecWinSizeSpec
structures.
Source: Unrestricted.
Destination: Any GS_USABLE GenDisplay, GenPrimary, or independently-displayable GenInteraction.
Parameters:
modeAndType
VisUpdateMode
and
WinSizeType
. Use the macro GET_MM_AND_TYPE to combine these two values into one word.
Return: Nothing.
Interception: Generally not intercepted.
void MSG_GEN_SET_WIN_CONSTRAIN( VisUpdateMode updateMode, byte constrainType);
This message changes a window's constrain type to the passed
WindowConstrainType
.
Source: Unrestricted.
Destination: Any GS_USABLE GenPrimary or GenInteraction object.
Parameters:
updateMode
VisUpdateMode
.
WinConstrainType
.Interception: Generally not intercepted.


Uses of Package
com.arjuna.ats.jta.recovery
-
Classes in com.arjuna.ats.jta.recovery used by com.arjuna.ats.internal.jbossatx.jta Class Description XAResourceRecoveryHelper Interface to be implemented by external entities that instantiate and supply their own XAResources to the recovery system. -
Classes in com.arjuna.ats.jta.recovery used by com.arjuna.ats.internal.jdbc.recovery Class Description XAResourceRecovery To perform recovery on arbitrary XAResources we may need to obtain new instances. -
Classes in com.arjuna.ats.jta.recovery used by com.arjuna.ats.internal.jta.recovery.arjunacore Class Description SerializableXAResourceDeserializer This is an additional recovery helper that allows clients of the transaction manager to provide a deserializer for their Serializable XAResources.XARecoveryResource XARecoveryResourceManager XAResourceOrphanFilter Interface used by the XARecoveryModule to allow plugins to vote in the handling of in-doubt Xids.XAResourceOrphanFilter.Vote XAResourceRecoveryHelper Interface to be implemented by external entities that instantiate and supply their own XAResources to the recovery system. -
Classes in com.arjuna.ats.jta.recovery used by com.arjuna.ats.internal.jta.recovery.jts Class Description XARecoveryResource XARecoveryResourceManager -
Classes in com.arjuna.ats.jta.recovery used by com.arjuna.ats.jbossatx.jta Class Description SerializableXAResourceDeserializer This is an additional recovery helper that allows clients of the transaction manager to provide a deserializer for their Serializable XAResources. -
Classes in com.arjuna.ats.jta.recovery used by com.arjuna.ats.jta.common Class Description XAResourceOrphanFilter Interface used by the XARecoveryModule to allow plugins to vote in the handling of in-doubt Xids.XAResourceRecovery To perform recovery on arbitrary XAResources we may need to obtain new instances. -
Classes in com.arjuna.ats.jta.recovery used by com.arjuna.ats.jta.recovery Class Description XARecoveryResource XAResourceOrphanFilter.Vote -
Classes in com.arjuna.ats.jta.recovery used by org.jboss.jbossts.txbridge.inbound Class Description XAResourceOrphanFilter Interface used by the XARecoveryModule to allow plugins to vote in the handling of in-doubt Xids.XAResourceOrphanFilter.Vote -
Classes in com.arjuna.ats.jta.recovery used by org.jboss.narayana.jta.jms Class Description XAResourceRecoveryHelper Interface to be implemented by external entities that instantiate and supply their own XAResources to the recovery system.


--- layout: post title: Yarn Along date: 2011-05-18 11:03:56.000000000 -04:00 categories: - Yarn Along tags: - Moda Vera - Moda Vera Marvel Girls Dress - Moda Vera yarn - Yarn along status: publish type: post published: true meta: aktt_notify_twitter: 'no' _edit_last: '1' dsq_thread_id: '1188588103' author: login: cint email<EMAIL_ADDRESS>display_name: Jacinta first_name: Jacinta last_name: '' ---
Joining in with Ginny at Small Things yarn along this week.
I cast on a new project this week. I decided to go ahead and make Scarlett a dress from a pattern I shared in a previous yarn along. At the time I'd purchased acrylic yarn suggested in the pattern and as much as I loved the colour, I didn't like the feel of the acrylic yarn. I purchased some yarn this week that was 100% wool and only $3 a ball. It's a very similar colour to what I was going to use. I was also able to return the acrylic yarn that I had originally purchased. The yarn appears quite blue in my photo, but I would describe it as more like teal (not great light here today for photos).
I won't go on about my book this week. Still on The Lacuna. I don't think I have ever taken so long to read a book before!
Can't wait to see what everyone has been knitting this week. Jacinta x


You discovered the top quark!
At 174.2 GeV/c2, the top quark is the heaviest particle we know of. It belongs to the third generation of quarks and has a charge of ⅔ times the electron charge. As a result of its large mass, it decays (mostly into bottom quarks) almost instantly after it is produced. This behemoth does not form bound states with other quarks or antiquarks.
It was discovered by the DØ and CDF collaborations at Fermilab in the US. Nowadays, top quarks and their properties are studied intensively by ATLAS and CMS at CERN.


Preparation time
less than 30 mins
Cooking time
30 mins to 1 hour
Serves
Serves 6-8
This traditional Greek dish makes a great alternative to lasagne - and any leftovers freeze well. The fresh lemony courgettes make a lovely accompaniment, but a simple salad is also good.
Preheat the oven to 190C/170C Fan/Gas 5.
Heat a frying pan over a medium heat. When hot, add 4 tablespoons olive oil and the aubergines. Fry for 2-3 minutes, then set aside on a plate lined with kitchen paper.
In a separate pan, heat the remaining oil. Once hot, add the onion and garlic and fry for a further 2-3 minutes, or until the onions have softened. Add the lamb mince and cook for 4-5 minutes, until browned. Add the tomatoes, cumin, cinnamon, oregano and red wine. Cook for 2-3 minutes, breaking up the tomatoes with a wooden spoon as they cook. Add the mint and stock. Bring to the boil, then reduce the heat and simmer for 15 minutes. Season, to taste, with salt and freshly ground black pepper.
Layer the meat sauce and aubergine in a large baking dish like you would if you were making lasagne.
Place the butter in a pan over a medium heat. When melted, add the flour and cook, stirring well, for a minute. Add the hot milk and cook, stirring constantly, for 2-3 minutes, until the mixture has thickened. Stir in the eggs and nutmeg, season with salt and freshly ground black pepper. Add half of the grated cheddar and mozzarella and continue to cook, stirring, until combined and smooth.
Spoon the cheese sauce over the top of the lamb and aubergine, then sprinkle with the remaining cheddar and mozzarella.
Bake for 20-25 minutes, until the cheese topping is golden-brown and bubbling.
For the courgettes, heat a griddle pan. Toss the strips of courgette in oil to coat and cook for 1-2 minutes or until charred. Place in a bowl and mix with the lemon juice and fresh mint.
Serve the moussaka in slices with the courgettes alongside.


OK I have this working. I ended up removing teh exports... Its going to be too slow to calculate those. It seems a simple gettxoutsetinfo will be the easierst way to detect burnt coins, and then usign the new data from james change earlier we can locate the export tx on the source chain.


Sensible Jukebox
$track.artist;
$cleanalbum;
$track.title;
Add
this is the local song list, yo
$track.artist;
$cleanalbum;
$track.title;
Add
Remote Songs
Local Songs
PLAYLIST
nothing in playlist, jukebox will shuffle
$track.meta.index;: $track.artist; / $track.album; / $track.title;


This installation is a bit trickier, as CentOS does not have Python 3 or any of the lua modules in its default package system.
Start by installing the following CentOS packages:
sudo yum install -y httpd git lua lua-devel gcc gcc-c++ kernel-devel unzip openssl openssl-devel readline-devel
Then, proceed to build LuaRocks (for lua deps):
wget http://luarocks.org/releases/luarocks-2.0.6.tar.gz tar zxvf luarocks-2.0.6.tar.gz cd luarocks-2.0.6 ./configure make sudo make install
Now build/install the required Lua modules:
sudo luarocks install lua-socket sudo luarocks install luasec OPENSSL_LIBDIR=/usr/lib64/ sudo luarocks install lua-cjson
Configure, compile and install Python 3:
sudo yum groupinstall -y development sudo yum install -y zlib-dev sqlite-devel bzip2-devel xz-libs wget http://www.python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz xz -d Python-3.4.3.tar.xz tar zvf Python-3.4.3.tar cd Python-3.4.3/ ./configure make sudo make altinstall
Install the required Python 3 modules:
sudo pip3.4 install elasticsearch formatflowed chardet netaddr
Install ElasticSearch:
sudo yum install -y java-1.7.0-openjdk-headless sudo rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch (The following is taken from the ElasticSearch online guide:) Add the following in your /etc/yum.repos.d/ directory in a file with a .repo suffix, for example elasticsearch.repo: [elasticsearch-1.7] name=Elasticsearch repository for 1.7.x packages baseurl=http://packages.elastic.co/elasticsearch/1.7/centos gpgcheck=1 gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch enabled=1 sudo yum update sudo yum install elasticsearch
Configure and start up ElasticSearch:
sudo sudo /bin/systemctl daemon-reload sudo sudo /bin/systemctl enable elasticsearch.service sudo /etc/init.d/elasticsearch start
Check out a copy of Pony Mail:
cd /var/www git clone https://github.com/apache/incubator-ponymail.git
Set up Pony Mail:
cd /var/www/ponymail/tools python3.4 setup.py [... answer questions asked by the setup script ...]
Set up Apache httpd by adding, for example, the following virtual host configuration: This differs from the normal installation (because of CentOS specifics), so beware
LuaPackageCPath /usr/local/lib/lua/5.1/?.so LuaPackagePath /usr/local/share/lua/5.1/?.lua ServerName mylists.foo.tld DocumentRoot /var/www/ponymail/site AddHandler lua-script .lua LuaScope thread LuaCodeCache stat AcceptPathInfo On
(re)start apache:
sudo apachectl restart
Once this is done, you should now have a working copy of Pony Mail!
You may wish to tweak the settings in site/js/config.js
and your
elasticsearch settings once Pony mail is up and running.
Refer to the General installation documentation for detailed information about archiving messages, OAuth, mail settings and much more.
Apache Pony Mail (Incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.


Mark promoted content
Make account links go to "with replies" version by default
Make hashtag links go to "latest" instead of "top" by default
Deal with autoplay video
Simply remove all autoplay video
Dismiss all "dismissible modules"
Color background on virgin tweets.
Only display tweets from users with at most this many followers:


Retrospective: Requiem for a Dream (2000)
Sitting alone in her chintzy Brighton Beach apartment, overweight and elderly Sara Goldfarb (Ellen Burstyn) consoles herself with her two main addictions: television and sweets. Her favorite television show is an infomercial that features a self-assured man in a suit striding up and down the stage telling his studio audience and forlorn people at home like Sarah that they can turn their lives around. All they have to do is give up red meat and sugar, and turn on to the inner resources each have within themselves--something he calls "juice". When he utters the word "juice," the audience maniacally begins chanting the word in unison as Sarah stares beatifically at the TV screen hoping that she too some day will discover her own "juice."
Her son Harry (Jared Leto) is a junkie and small-time drug-dealer. When we first meet him and his best friend and fellow junky-dealer Tyrone (Marlon Wayans), they have seized Sara's television and are wheeling it down the desolate streets of the industrial blocks near Brighton Beach in order to deliver it to a hock shop, where they are frequent visitors, always with the same TV set.
One day Sara receives an invitation to appear as a contestant on a television game show. This represents the possibility of deliverance from loneliness and inadequacy. She embarks on a self-improvement program to make her more attractive for the upcoming television appearance. One of her Brighton Beach cronies, played to the hilt by Louise Lasser, dyes her hair red. This will match the red dress that sits in her closet, the one she wore to Harry's high school graduation. There is only one problem: it is now way too small.
She puts herself on a crash diet that excludes all sugar and fatty foods. In doing so, she experiences withdrawal symptoms in a food-addict's version of "cold turkey." When fantasies about cheeseburgers and pastries prove too much for her to take, she looks up a diet doctor who prescribes 3 sets of pills in different colors that must be taken morning, noon and night.
Meanwhile Harry and Tyrone have stepped up their drug-dealing in an effort to break into the ranks of the big time and to achieve their own kind of "juice." Some of the proceeds are targeted for a dress-design shop to be run by Harry's girl-friend Marion (Jennifer Connelly), a junkie herself.
The ambitious plans of mother and son soon begin to unravel. Although her weight begins to evaporate, Sara finds the side-effects of the drugs both frightening and painful. She has waking nightmares in which her refrigerator appears to advance toward her like a Frankenstein monster with a life of its own.  When he tells her that she is addicted, she answers that this is impossible. A doctor prescribed the pills, so how can she be addicted.
But addicted she is. Unlike her son and his friends, she is a victim of "approved" drugs which are every bit as harmful as those peddled on the streets by her son. Director Darren Aronofsky's "Requiem for a Dream", based on his screenplay adaptation of a novel by Hubert Selby Jr., takes these characters and shows with unstinting and gruesome honesty how addiction can destroy lives. The powerful but deeply disturbing climax of the film depicts the unraveling of mother and son, as the search for satisfaction and acceptance proves elusive. Unlike the typical film about addicts, which tends to view them as weak people with character flaws, Aronofsky's film leads to a different kind of a conclusion--namely, that society itself is flawed.
Although Darren Aronofsky is an extremely talented director and screenplay writer, this film would have been impossible without Hubert Selby Jr., one of the great American writers of the past half-century. Now over seventy years old, Selby is best known for his collection of short stories "Last Exit in Brooklyn" which like "Requiem for a Dream" depicts the sufferings of working people and drifters living at the margins of society in the hinterlands of Brooklyn. Although Selby is linked stylistically with the Beat Generation, especially William S. Burroughs, I find him to be a throwback to the Depression Era, especially the bleakly surrealistic novels of CP'er Nathaniel West.
In an April 18, 1999 interview with the British newspaper, The Independent, Selby takes aim at American society:
"The fascism in this country today is incredible. But things go through cycles. Look at McCarthyism. That started in the 1950s and went through for quite a while. So the basic pathology is always there. In this country, our escape, regardless of what technology's around, has always been money. The so-called 'bottom line' is God, over absolutely everything. So regardless of what else is going on, there is that fix."
In dealing with the ups and downs of Selby's career, which during down phases had him pumping gas or on welfare, the British interviewer who is altogether sympathetic to the legendary writer, says, "I didn't mean to upset you. It's just that America seems to hold a terror that England doesn't. In England there's still a net. But in America you can be an upstanding citizen for years and then suddenly through a combination of unfortunate circumstances you fall and you are ... "
Selby completes the interviewer's sentence:
"Dead. And this is the richest country in the world, in every way possible, and we have millions of children starving. Can you f---ing believe that! THIS IDEA OF EFFICIENCY AND THE BOTTOM LINE IS MADNESS." (emphasis added)
Hubert Selby Jr. was the Brooklyn-born only child of an engineer and a housewife who joined the Merchant Marines at the end of WWII, just like Jack Kerouac. Around this time, he contracted tuberculosis. In an effort to save his life, doctors removed 10 ribs so they could collapse his left lung and snip out part of the diseased right one.
During his recuperation, according to a profile that appeared in the March 11, 1988 Los Angeles Times, he sneaked out for nights of drinking and would pass out in snowbanks, only to be rescued by neighborhood friends. Soon afterwards he also developed a $100 a day heroin habit. This led to a 90-day, drug-related prison stint and a four-month stay in solitary confinement at Bellevue Hospital after attempting suicide.
This personal hell was occurring in the late 1940s, when he was also hanging out with the characters who would form the inner core of "Last Exit to Brooklyn" and "Requiem for a Dream."
Although "Requiem for a Dream" is an art movie bordering on the experimental, it is currently playing at commercial houses all around the country. It is not to be missed.
Louis Proyect Marxism mailing list: http://www.marxmail.org
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Page 1 of 1
items
Posted:
Fri Dec 22, 2006 2:15 pm
by Delurium II
thought I saw somewhere that you are going with no lvl req on items. I think there are alot of ups and downs on this.
personally I think that it should be a lvl req on items. This has always made people play more just to reach the lvl to be
able to use the items they find. so if you are lvl 15 and find a sp leather, using it at once would be nice and all, but if it was lvl 20
req it will be a really nice thing to lvl after. people tend to play more and be way more dedicated when they got something to play for.
and I wonder also how will drops of good items be? will you have mystic be really rare, and items better then that almost impossbile to find?
will sun staff/moon staff/black cloth/moon robe/dirus armor/vis gladius etc be aquirrable items, or reserved for corsix/valentra etc?
will you add hidden props (hope not), will the items have the stats they have now, with amd etc and not like before where it was almost only prot on em?
will the propping shrine work like it used to (aka only work randomly) will you have a higher selections on props, like there are maybe 12 possible props and only 7 that can
be applied on an item, so we can have 100 of different variations of the same item. (maybe add spell resists, faster cast rate, faster hit rate, shield blocking etc). would make the game much more varied then it was/is.
Will there be new items? like actual sets with maybe bonuses (not suggesting that this will actually happen at first, but atleast something that you can have in the back off your mind)
just throwing out ideas here
Posted:
Fri Dec 22, 2006 2:29 pm
by thadiusofx3
I'm riding the fence on the level requirement thing.
The idea I propose is to be able to wear any item at any level, BUT if you don't meet the level requirement for that item, have it a % less effective for every level you lack.
Posted:
Fri Dec 22, 2006 2:39 pm
by Delurium II
so lets say im lvl 15, I use a sp leath and that is lvl 20 req. I'm wearing an item that is 5 lvls higher then me, will your idea be that if I get attacked, I have a 25% chance that it will not work at all, and that prot and props wont be reacted on? like I was not wearing anything at all, or that the item is 25% less effective. lets say it had 60 prot, it would meen that I have only 45 prot on me? and 2 mp regen will be 1.5 mp regen?
and what do you think about the extra props I suggested? making it a much more varied game atleast from my point of veiw (having caster and melee items cause of props)
Posted:
Fri Dec 22, 2006 2:46 pm
by thadiusofx3
I like the idea of item variation alot.
And i mean like in your example, I'm level 15 and I put on a spirit leather which has a requirement of level 20.
The formula might be something like
Effectiveness = levelofchar / levelreq;
so in this example level 15 with 20 req armor = 15/20 = 75% effective, which means it loses 25% of its effectiveness (doesn't affect props) so if it had 60 protection it would only give you 45 protection.
Posted:
Fri Dec 22, 2006 3:13 pm
by Ender
I'm liking that too.
And no lvl reqs will also help with item circulation. (cause everybody is gonna pk a lvl 3 in an ominex set)
Posted:
Fri Dec 22, 2006 3:52 pm
by Vitriol
thadiusofx3 wrote:I like the idea of item variation alot.
And i mean like in your example, I'm level 15 and I put on a spirit leather which has a requirement of level 20.
The formula might be something like
Effectiveness = levelofchar / levelreq;
so in this example level 15 with 20 req armor = 15/20 = 75% effective, which means it loses 25% of its effectiveness (doesn't affect props) so if it had 60 protection it would only give you 45 protection.
thats a good solution.
Posted:
Fri Dec 22, 2006 4:09 pm
by Delurium II
yes its a good solution. as long as it doesnt work the other way too, if your lvl 25 and item is lvl 20 you wont have 125% effectivity out of it. not that i think you have had an idea of that. but I think a good idea is to have it at 10% for each lvl. cause with 5%, you could use an item at 10 lvls lower then you and even get 50% of it, something thats prob much higher then items of its lvl. at 10% items will be obselelit at 10 lvls lower, not 20 lvls.
but that idea is a very good one. I really like it. I think this game would really become something, because people can come with imput evfen before its made. graphics I dont really care that much for, but the old xen feeling will be back, and pvp in old xen, was the BEST ever. Ive never played a game that can compare even within any range of that. Thats why I must absolutly beg that hidden props will not be implented. they totally destroyed the pvp experience in xen. if you have the highest lvl char, you should have a really advantage in pvp instead of the one with most noob gear that have hiddens on it.
Posted:
Sat Dec 23, 2006 9:08 am
by Karl G.
Actually, I think multiplying the effectiveness might be a really neat idea...think about it, leather armor is useless even at level 1. Elven plate is what...14 protection? and is ridiculously good for that level. As you level up, though, low-level items become completely worthless--however, if items are going to be lost frequently, people shouldn't be crippled by those losses, only set back and made to work harder to regain them. Consider this:
Leather Armor
Level: 1
Protection: 1
Chain Mail
Level: 3
Protection: 5
Defense Added = Player Level / Armor Level * Protection
For a level 15 character,
Defense of Leather Armor = 15 / 1 * 1 = 15
Defense of Chain Mail = 15 / 3 * 5 = 25
Now, higher level armors may have lower levels so their protections multiply more, or they might have higher requirements and more innate abilities. For example:
Lightning Leather
Resist Lightning Damage
Level: 12
Protection: 25
Fire Shield
Resist Fire Damage
Resist Breath Weapons
Level: 10
Protection: 8
For the level 15 character:
Lightning Leather Defense = 15 / 12 * 25 = 31
Fire Shield Defense = 10
Doing this would allow players to be creative about what gear they wear, because sometimes lower-level gear would actually give higher defense, while higher level gear that they aren't suited to yet, even though it gives some specials, gives lower defense.
Posted:
Sat Dec 23, 2006 12:20 pm
by 9sam1
i think there should be more robes. there the coolest looking items
Posted:
Sat Dec 23, 2006 1:02 pm
by Vitriol
on that note: if an item has a resistance built in, it should be significant. Like 15% damage shaved off or something.
Posted:
Sat Dec 23, 2006 6:42 pm
by Necromadon
I think there should be lower level mage items. (assuming this game goes with the level req system)
Wand [no effect]
Magic Wand (level 3) [Animus Adgredi]
Fire Wand (level 6) [Ignis Adgredi]
Dragon Wand (level
[Vis Flamma Ventus] *rare
Lightning Wand (level 12) [Magnus Fulgar]
Mystic Wand (level 18) [Lunae Lumen Nex, 1mp regen]
Hat
Magic Hat (level 3)
Fire Hat (level 6) [+3% fire spell damage]
Ice Dragon Hat (level
[+ 3% ice spell damage]
Lightning Hat (level 12) [+ 3% lightning damage]
Posted:
Wed May 23, 2007 12:07 pm
by a_link_to_the_past
Necromadon wrote:I think there should be lower level mage items. (assuming this game goes with the level req system)
Wand [no effect]
Magic Wand (level 3) [Animus Adgredi]
Fire Wand (level 6) [Ignis Adgredi]
Dragon Wand (level
[Vis Flamma Ventus] *rare
Lightning Wand (level 12) [Magnus Fulgar]
Mystic Wand (level 18) [Lunae Lumen Nex, 1mp regen]
Hat
Magic Hat (level 3)
Fire Hat (level 6) [+3% fire spell damage]
Ice Dragon Hat (level
[+ 3% ice spell damage]
Lightning Hat (level 12) [+ 3% lightning damage]
I like this idea
Posted:
Thu Jun 21, 2007 7:54 pm
by shadowni
9sam1 wrote:i think there should be more robes. there the coolest looking items
I agree, maybe a Fire Robe, Omni Robe, Dirus Robe, Diabolic Robe, Magic Elven Robe. ^_^ Robes are the coolest, in regular Xen I choose a arc robe over an sp plate. =D
But I recently got jacked for my poo because I made the mistake of trusting someone. so yeah...
It's okay though, it's only a game. =D
Posted:
Thu Jun 21, 2007 8:40 pm
by JSunJShineR
lol why not just have durability like every other game and make dorp rate much higher... this would circulate the items much better than waiting for someone lvl 3 to get pked, i eman if i had a lv 3 in omni i would wear 3 bags and if i died i wouldnt get up til the next day. lmao say the lvl of the item determines durability and the loss of it. so lvl 1 item 10 durability every time u die in it 1 loss
1=5
2=10
3=15
4=20
etc...
but the max is like 150 or 100 so the circulation accurs faster.
and the durability of the item determines effectiveness of it. so if you lvl 1 in omni its a stupid idea, also make item req lower and more items=)


- getAvailableMemory() - Method in interface it.polito.dp2.NFV.HostReader
-
Gives the total amount of memory available on this host
- getAvailableStorage() - Method in interface it.polito.dp2.NFV.HostReader
-
Gives the total amount of storage available on this host
- getConnectionPerformance(HostReader, HostReader) - Method in interface it.polito.dp2.NFV.NfvReader
-
- getDeployTime() - Method in interface it.polito.dp2.NFV.NffgReader
-
Gives the date and time of the time when the NF-FG was deployed in the system (with precision no worse than 1 second).
- getDestinationNode() - Method in interface it.polito.dp2.NFV.LinkReader
-
Gives access to the information associated to the destination node of this link.
- getException() - Method in error it.polito.dp2.NFV.FactoryConfigurationError
-
Returns the underlying cause of this exception, if any.
- getException() - Method in exception it.polito.dp2.NFV.NfvReaderException
-
Returns the underlying cause of this error, if any.
- getFunctionalType() - Method in interface it.polito.dp2.NFV.VNFTypeReader
-
Gives the functional type of this type of VNF
- getFuncType() - Method in interface it.polito.dp2.NFV.NodeReader
-
Gives the functional type of the node.
- getHost(String) - Method in interface it.polito.dp2.NFV.NfvReader
-
Gives access to a single host, available in the IN, given its name.
- getHost() - Method in interface it.polito.dp2.NFV.NodeReader
-
Gives access to the Host this node is allocated on.
- getHosts() - Method in interface it.polito.dp2.NFV.NfvReader
-
Gives access to the set of known hosts, available in the IN.
- getLatency() - Method in interface it.polito.dp2.NFV.ConnectionPerformanceReader
-
Gives the avarage latency (expressed in ms)
- getLatency() - Method in interface it.polito.dp2.NFV.LinkReader
-
Gives the a required maximum latency (expressed in ms)
- getLinks() - Method in interface it.polito.dp2.NFV.NodeReader
-
Gives the known links that connect this node (i.e.
- getMaxVNFs() - Method in interface it.polito.dp2.NFV.HostReader
-
Gives the maximum number of VNFs that can be allocated on this host
- getMessage() - Method in error it.polito.dp2.NFV.FactoryConfigurationError
-
Returns the message for this error, if any.
- getMessage() - Method in exception it.polito.dp2.NFV.NfvReaderException
-
Returns the message for this exception, if any.
- getName() - Method in interface it.polito.dp2.NFV.NamedEntityReader
-
Gives the name of this entity.
- getNffg(String) - Method in interface it.polito.dp2.NFV.NfvReader
-
Gives access to a single NF-FG given its name.
- getNffg() - Method in interface it.polito.dp2.NFV.NodeReader
-
Gives access to the NFFG this node is associated on.
- getNffgs(Calendar) - Method in interface it.polito.dp2.NFV.NfvReader
-
Gives access to the set of known NF-FGs deployed since a given date.
- getNode(String) - Method in interface it.polito.dp2.NFV.NffgReader
-
Gives access to a single network node given its name (a node is uniquely identified in the NF-FG by its name).
- getNodes() - Method in interface it.polito.dp2.NFV.HostReader
-
Gives access to the NF-FG nodes allocated on this host
- getNodes() - Method in interface it.polito.dp2.NFV.NffgReader
-
Gives access to the set of network nodes of this NF-FG.
- getRequiredMemory() - Method in interface it.polito.dp2.NFV.VNFTypeReader
-
Gives the amount of memory required by this type of VNF
- getRequiredStorage() - Method in interface it.polito.dp2.NFV.VNFTypeReader
-
Gives the amount of storage required by this type of VNF
- getSourceNode() - Method in interface it.polito.dp2.NFV.LinkReader
-
Gives access to the information associated to the source node of this link.
- getThroughput() - Method in interface it.polito.dp2.NFV.ConnectionPerformanceReader
-
Gives the average throughput (expressed in Mbps, with precision no worse than 0.1)
- getThroughput() - Method in interface it.polito.dp2.NFV.LinkReader
-
Gives the required minimum throughput (expressed in Mbps)
- getVNFCatalog() - Method in interface it.polito.dp2.NFV.NfvReader
-
Gives access to the catalog of supported network function types


I like to paraglide, climb and snowboard! I also enjoy working when it is interesting and hanging out with friends!
Paragliding: 5 months Snowboarding: 9 years Climbing: 6 years Hanging out with friends: 24 years
People often ask me why I do so many strange sports. Well the truth is that I find being scared to be a form of meditation. Fear I believe is a healthy part of life for so many reasons.


DJK
Song Order
Shalom Hanoch's Songs.
Day Job Keepers on SoundCloud
Click me!!!
Old Recordings
Shmaltz Songs


{% can_create_topics as topics %}
{{topics|json_script:"can-create-topics"}}
Pages
{% if search_url %}
{% for field in search_form %}
{% include "wagtailadmin/shared/field_as_li.html" with field=field field_classes="field-small iconfield" input_classes="icon-search" %}
{% endfor %}


Welcome to our Home Page
LOGO
MainNav
MainImageGroup
PromoProducts
PromoProduct1
PromoImage1
PromoText1
PromoProduct2
PromoImage2
PromoText2
PromoProduct3
PromoImage3
PromoText3


RSVP to the Facebook event at: https://www.facebook.com/events/449903668759134
Open Web is bringing back its Android workshop! Come learn the fundamentals of Android App development using Java and Android Studio.
No prior experience required! We will be learning how to build a Tip Calculator App from start to finish, covering RelativeLayout, Buttons, SeekBars, Intents, and more.
Before coming to the workshop, please download Android Studio
https://developer.android.com/studio/index.html
The workshop will be held at EPIC Design Studio 2, 750 Commonwealth Avenue, right next to Pavement Coffee.
RSVP to the Facebook event at: https://www.facebook.com/events/997361263750715/
Women in Computer Science club is hosting three awesome ladies for a panel discussing what it's like to work at a startup.
During this panel we will explore what it is like to work at a technology start-up. We will hear from women succeeding in Management and Software Engineering roles at the following Boston area startups: Tive, Wise Systems and Drift. We will get insight into include pros and cons of working at a startup; work culture; as well as challenges and benefits of being a women/non-binary working in the tech industry 👩💻💼
The panel will start with a short introduction of each speaker, followed by an hour of discussion, and concluded by a Q&A with the audience 🤓
Stay tuned for additional information about the speakers! This event is open to public.
Speakers:
🔥Val Healy, Software Engineer at Wise Systems
🔥Dagny Dukach, Marketing Manager at Tive
🔥Chelsea Van Baush, Software Engineer at Drift
Location:
BUild Lab
730 Commonwealth Avenue
Brookline, MA 02446
RSVP to the Facebook event at: https://www.facebook.com/events/2050618775216586
Come learn the fundamentals of frontend and backend web development using HTML, CSS, Javascript and Node.js.
Prior programming experience recommended, though not required.
We will be learning how to build a Yelp-like web application that utilizes sentiment analysis on reviews to rank places. We will be covering Express routes, CRUD operations, Google API calls for sentiment analysis, and more!
The workshop will also be held at EPIC Design Studio 2, 750 Commonwealth Avenue, right next to Pavement Coffee.
"The Cloud" has been everyone's favorite buzzword for a while, come learn about how it really works.
Andrew Hoang, ENG '18 and future production engineer at Facebook, will lead us through the many facets of cloud infrastructure. You'll learn how to create, configure, and launch a server. You'll also learn about how many different tools of the cloud, like nameservers, DNS, proxies, load balancing, and more, work together to make a server secure and performant.
If you're looking to launch a personal website, webapp, or other web service, this is the workshop for you. All skill levels welcome.
The workshop will be held at the new BUild Lab, located at 730 Commonwealth Ave. Enter through the doors under the red awning next to Pavement Coffee.


Visit the home page
Find a local group using our map feature!
Here are the groups you are a member of:
Send a message to another user!


Please feel free to reach out to me anytime! Me on Git Hub Me on Facebook Me on LinkedIn Name Email address Message Send


Selected Publications
-
Learning Hidden Markov Models Using Conditional Samples
with S.M. Kakade, A. Krishnamurthy and C. Zhang
COLT 2023
arxiv -
Exponential Hardness of Reinforcement Learning with Linear Function Approximation
with D. Kane, S. Liu, S. Lovett, C. Szepesvari and G. Weisz
COLT 2023
arxiv -
Computational-Statistical Gaps in Reinforcement Learning
with D. Kane, S. Lui and S. Lovett
COLT 2022
talk | arxiv | tweet -
Optimality and Approximation with Policy Gradient Methods in Markov Decision Processes
with A. Agarwal, S. M. Kakade, J. D. Lee
COLT 2020
colt | arxiv
All Publications
-
Do PAC-Learners Learn the Marginal Distribution?
with M. Hopkins, D. Kane, S. Lovett
Preprint
arxiv -
Learning Hidden Markov Models Using Conditional Samples
with S.M. Kakade, A. Krishnamurthy and C. Zhang
COLT 2023
arxiv -
Exponential Hardness of Reinforcement Learning with Linear Function Approximation
with D. Kane, S. Liu, S. Lovett, C. Szepesvari and G. Weisz
COLT 2023
arxiv -
Computational-Statistical Gaps in Reinforcement Learning
with D. Kane, S. Lui and S. Lovett
COLT 2022
arxiv | tweet -
Realizable Learning is All You Need
with M. Hopkins, D. Kane and S. Lovett
COLT 2022
arxiv | tweet -
Point Location and Active Learning: Learning Halfspaces Almost Optimally
with M. Hopkins, D. Kane, S. Lovett
FOCS 2020
focs | arxiv -
Optimality and Approximation with Policy Gradient Methods in Markov Decision Processes
with A. Agarwal, S. M. Kakade, J. D. Lee
COLT 2020
colt | arxiv -
Noise-tolerant, Reliable Active Classification with Comparison Queries
with M. Hopkins, D. Kane, S. Lovett
COLT 2020
arxiv -
Learning What To Remember
with R. Bhattacharjee
ALT 2022
arxiv -
Convergence of online k-means
with S. Dasgupta, G. So
AISTATS 2022
arxiv -
Bilinear Classes: A Structural Framework for Provable Generalization in RL
with S. S. Du, S. M. Kakade, J. D. Lee, S. Lovett, W. Sun, R. Wang
ICML 2021 (Long Talk)
icml | arxiv | tweet -
On the Theory of Policy Gradient Methods: Optimality, Approximation, and Distribution Shift
with A. Agarwal, S. M. Kakade, J. D. Lee
JMLR 2021
jmlr | arxiv -
Q-learning with Function Approximation in Deterministic Systems
with S. S. Du, J. D. Lee, R. Wang
NeurIPS 2020
arxiv
Talks
-
Computational-Statistical Gaps in Reinforcement Learning: (talk) (slides)
Microsoft Research New York Seminar
Yale Foundations of Data Science Seminar
EnCORE Fall Retreat
TTIC Machine Learning Seminar Series
UCLA Big Data and Machine Learning weekly seminar
Brown Robotics Group (George Konidaris's group)
Berkeley RL Reading Group (Jiantao Jiao's group) -
Equivalence between Realizable and Agnostic Learning: (slides)
Cornell Theory Seminar
MSR New York ML Reading Group -
Theory of Generalization in Reinforcement Learning: (slides)
RL Theory Seminar
UCSD AI Seminar
UCSD Theory Seminar
Professional Services
- Reviewer: ICLR (2022); WORLT (2021); Neurips (2021); ICML (2021, 2020), JMLR (2022, 2021, 2020)


A simple but powerful AngularJS directive that allows you to quickly add a sliding contact us / feedback box on your website. The user feedback can slide out with smooth animation effect when clicking the FEEDBACK link.
Copyright © Ankit Dhir


--- layout: post title: Fabindia Rose facial water tags: - Fabindia status: publish type: post published: true meta: _edit_last: '2' _graphene_slider_img: global _graphene_slider_imgurl: '' _graphene_show_addthis: global al2fb_facebook_image_id: '1137' _aioseop_title: Fabindia Rose facial water _aioseop_keywords: Fabindia Rose facial water al2fb_facebook_link_id: '218440691518395_250756748286789' al2fb_facebook_link_time: '2011-07-28T09:57:17+00:00' al2fb_facebook_link_picture: meta=http://missenchanted.com/wp-content/uploads/2011/07/IMG_1224-150x150.jpg _yoast_wpseo_linkdex: '0' _thumbnail_id: '1137' --- This is one product that sits on every dressing table and doesn't require any introduction. I have been using rose water since teenage and all courtesy to my lovely Mom. Her secret is a blend of Rosewater and glycerin, but I have oily skin and use it as toner and face mist. Price: Rs 175 for 100 ml Product claims and contains: How I use it:


IV contrast media:
None.
Skeletal maturity:
Femoral head perfusion:
Femoral head:
Location:
Acetabulum:
Joint effusion:
Bursal fluid collection:
Surrounding muscles and tendons:
Acetabular labrum
No pelvic mass or lymphadenopathy.
Normal.


Objective Function
X1 +
X2
What di you want to do?
Maximized
Minimized
How many restrictions do you want to use?
--- Please select the number of restrictions ---
{{ '{{option.value}}' }}
Restrictions:
X1 +
X2
<=
>=
=
X1 +
X2
<=
>=
=
Resolve!
Clean Fields!
Restrictions:
X1 +
X2
<=
>=
=
X1 +
X2
<=
>=
=
X1 +
X2
<=
>=
=
Resolve!
Clean Fields!
The result is {{'{{finalResult.result}}'}} and the {{ '{{text}}' }} is {{ '{{finalOP}}' }}


Bunch of beautiful images of my work
Some quick example text to build on the card title and make up the bulk of the card's content.


San not detected
Do not display the version number.
Readonly for component data.
Readonly for store.


Great news, Mark!
Your delivery is on the way.
Northern Trail Outfitters is committed to ensuring the secure delivery of your items. Please let us know of any details that may help.
To view this email as a web page, click here.
%%Member_Busname%%
%%Member_Addr%%
%%Member_City%%, %%Member_State%%, %%Member_PostalCode%%, %%Member_Country%%


Main Menu
Logout
About
Credits
Section A (A) -ASSESSMENT Cover Sheet
{{message}}
A1. Date
A2. Assessor's Initials
A3. Start Time
A8. Conditions
Outside temperature
Enter valid Input!
Abnormal temperature!
Abnormal temperature!
Outside RH
Required!
Precipitation
Required!
Previous
Next


[gecode-users] [search engine] Set a starting point !
Christian Schulte
cschulte at kth.se
Mon Dec 3 20:08:32 CET 2012
Hi,
What do you mean by a starting point?
Christian
--
Christian Schulte, www.ict.kth.se/~cschulte/
From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On Behalf
Of Aribi Noureddine
Sent: Monday, December 03, 2012 5:10 PM
To: users at gecode.org
Subject: [gecode-users] [search engine] Set a starting point !
Hi all,
Is there a way to let the search engine explore the search space from a
starting point?
Thank you.
Best regards,
_ _ _
Noureddine ARIBI
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gecode.org/pipermail/users/attachments/20121203/f7748f9c/attachment.html>
More information about the users
mailing list


Rating: * * *˝ out of * * * *
Rated R: strong violence, gore, language.
Starring: Devon Sawa, Ali Larter, Sean William Scott, Kerr Smith, Daniel Roebuck, Tony Todd. Running Time: 97 mins
Directed by: James Wong
Teen slasher has been noticeable these days. We've had films such as "Scream" and its 3 sequels, "I know what you did last summer" and its far inferior "sequel", "Urban Legend" and its sequel. What brought out these teen slashers is the fact that they are sadly all hits. Even though I liked some of the films, I did get tired of seeing teens running around getting slashes up, its been done before and nothing is original. Well nothing could have gotten me ready for a terrifying film, that I first saw a preview for on "Next Friday". The trailer truly scared me, and made the film look great, but I knew it would be just another teen slasher movie. Well I was wrong, you never see the killer and the film never drops into that teen slasher feel.
The film starts out with a terrifyingly real plane crash, where a group of students are getting ready to go to France. Aboard the plane Alex Browning (Devon Sawa) has a dream/vision of the plane crashing in a realistic way. Everything that happened prior in his dream, happens when he wakes up, and he goes crazy, getting him and five of his friends kicked off the flight, and one teacher. When he is back into the lobby he explains what happened in his dream, to which no one believes, until the plane explodes, and all the students die. A few months later, weird things are starting to happen, his friends are starting to die by someone....something, Alex along with his friends has try and figure out what is doing this, before it gets them, and he must remember, he cheated death so death is after him.
The film is directed by James Wong and is fantastic. The thing that I found best about the movie was the fact that you never saw who was killing these people, most of which occured on accident in very very inventive ways. Some brilliant ideas really flow throughout this movie, and I found myself stunned in my seat about how far it strayed from being a teen slasher film, this is a real mature adult movie only with a teen cast. The cast is a far cry from being like others where the performances are wooden, this is a cast that is definately talented.
Devon Sawa clocks in one great performance as the psychic Alex who can sense what is going to happen in the future, his character is so well-thought and Devon brings him out brilliantly, and gives us a character we can both relate to, and hope we never have to. Ali Larter (who was previously in "House on Haunted Hill" and "Varsity Blues") gives a great down to earth performance, as a girl who is an outcast, not very well-known, but very special in her own way. The rest of the cast includes Kerr Smith, Daniel Roebuck and the always great Tony Todd round out a great cast.
This is one breathtakingly scary film, that is one of the scariest I have seen. It's inventiveness never ceases to amaze me, the script is brilliantly written, and James Wong is a great new director. I definately recommend "Final Destination" to those who are tired of teen movies, and ready for a hardcore horror flick.
Reviewed by Brandon Herring 3/29/00 For more reviews please visit MOVIE REVIEW CENTRAL at http://www.geocities.com/moviefan983/moviereviewcentral.html
Email me at<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


{% load static %}
News Articles
Home
{% block title %}Article ID: {{ article.id }}{% endblock %}
{% block content %}
{{ article.headline }}
{{ article.content }}
By:
{{ article.reporter.full_name }}
Created:
{{ article.pub_date|date:"F j, Y" }}
Last Modified:
{{ article.last_edited |date:"F j, Y" }}
Edit
Delete
{% endblock %}


Quick start¶
Download the Tranfer Function Tool¶
The app can be downloaded from here.
Installation is generally not required. However, if a Microsoft Visual C++ Runtime Library error is encountered, the issue can be resolved by installing the latest version of Microsoft Visual C++. A installer, vc_redist.x64.exe, is included in the zip file.
User Interface¶
As shown in the figures below, the tool’s main window consists of three major groups: a) left control group, with commands for changing “Layer Properties” and “Motion Selection”, b) “Layer plot” with selectable layers, and c) tab bar that can be switched to “Define Layer” or show “Motion Plots”. In the “Layer Properties” group, the lineedits and sliders can be used to change properties (shear wave velocity, density, thickness and damping ratio) of the current active layer as indicated in the “Changing Layer” as well as highlighted in the “Layer Plot” and “Layer Table” view. The three groups are interconnected and changes in one are automatically reflected in the others. The thickness and damping ratio of the bedrock layer is not changeable since the soil layers are assumed to be on top of an infinite half space.
Add/remove soil layers¶
Under the Layer tab, click the “Add Layer”/”Remove Layer” button on the top of the table to add/remove a soil layer.
Modify properties of a layer¶
Density, thickness, shear wave velocity, and damping ratio can be modified for each layer. Click on the layer plot or any row in the layer table to select a soil layer. Subsequently, lineedits and sliders will be associated to the selected layer. SI units are used for all values.
Select a different input motion¶
Several input motions are pre-defined in this tool including earthquake recordings, harmonic vibrations, as well as a frequency sweep time series. The frequency lineedit and slider can be used to vary the frequency of the harmonic vibration, thus will only be enabled when this motion is selected.
Additional motions can also be imported and viewed in this tool by checking the “Load User Motion” option. The current version only supports the JSON format. Examples of input motion JSON files can be found in the repository.
Lock axes¶
By default, the axis limits of each figure are replotted after any changes in properties or motion. However, these limits can be locked by checking the “Lock Axes” checkbox. Then the effect of each property on the transfer function can be visualized and compared. To reset axes, simply click the “Reset Figures” button.


Skip to main content
ROS-BOT
RB
Sign in
Register
Download
Drop statistics
News
Guides
Forum
Suggestions
Scripts
Pickits
Welcome to ROS BOT website.
Log in
简体中文
繁體中文
English
Deutsch
한국어
Go
Log in
Get your trial key
Live community:
https://discord.gg/s39XdMV
New user ? Check
guides
or ask the
discord bot
Primary tabs
Create new account
Log in
(active tab)
Request new password
Username or e-mail address
*
You may login with either your assigned username or your e-mail address.
Password
*
The password field is case sensitive.
Log in
�
�
�