My Bio
I am a full stack developer with more than 10 years of experience in various programming languages. I have done several projects for the web in Javascript, jQuery, React JS and PHP. I also wrote code for microcontrollers and PC software in Visual Basic .NET
I studied Electronics, Networks & Communications, Marketing, Business Administration and Software Development. I like to learn and share my experience with work teams.
Feel free to contact me at
About Me
My name is Renato Beltrán, I am a fullstack software developer, entrepreneur and technology lover.
I live in Peru and have worked in various technology companies, developing cloud-based systems, applications and platforms.
I am constantly learning and I like to teach what I have learned to others. I consider myself good at what I do and I like to achieve new goals
My Work
My Recent Works
These are some of the most recent projects I have been working on
Xtreme AVL Platform
Based on HTML5, jQuery, Java and MySQL. This Web platform allows you to track any vehicle with a GPS locator installed
Vehicle Status App
Android App to track vehicle position and get info about insurance, technical revision an other important info
Online Insurance Quote
Based on React JS and MongoDB. It's a SPA app that allows you register to get a insurance policy
MIT Projects
Please, visit my projects page that I worked on as student of program Full Stack Developer with MERN at Massachusetts Institute of Technology - MIT
Visit Projects PageWhat are you working on?
Let's have a talk about your next project in order to find a way to work together.
Chat


Throws an error with specified error code if input set does not contain any elements. Otherwise, passes the input set along unmodified.
Asserts that input set contains exactly one element, otherwise throws a specified error.
Evaluates two operands by passing each element of input set through two different pipelines,
then returns true
if both operands are true
, and false
otherwise.
Inner pipelines should return a single element for each element in input set. An error is thrown if the result is not a boolean.
Returns a logical inverse of input boolean value. An error is thrown if input value is not a boolean.
Evaluates two operands by passing each element of input set through two different pipelines,
then returns false
if both operands are false
, and true
otherwise.
Inner pipelines should return a single element for each element in input set. An error is thrown if the result is not a boolean.
Obtains browser cookies and returns them as element values.
Returns information about current frame and its loading state.
Returns information about network requests and responses that match specified filters.
Returns information about all currently open browser targets (tabs, popups, windows, iframes), matching specified criteria.
This pipe is a simple group with a customized label. The input set is passed to the inner pipeline and the output set of the inner pipeline becomes the output set of this pipe.
Extracts multiple DOM properties from element or its descendants designated by selector at once.
This pipe replaces a series of Set Path > Query One > Extract pipelines, and is significantly more efficient.
Returns the closest ancestor of an element matching specified selector. Throws an error if no such element is found.
Replace the DOM node of each input element with top #document node.
each
loop)Returns the value of specified DOM attribute. An error is thrown if attribute does not exist on one of the input elements.
Returns text content of direct text node children of an element, ignoring nested elements.
Returns the value of specified style, computed by browser. Throws an error if the style is not recognized by browser and therefore cannot be computed.
Retrieves specified property from the element's owner document.
Returns a fully resolved URL as specified by href attribute of <a>
DOM elements (links).
An error is thrown if input element is not a link.
Returns innerHTML
property of an element.
Returns innerText
DOM property of elements.
innerText
specifically
(i.e. when fallback logic of Extract Text produces incorrect or unwanted results)Returns text extracted from DOM element by reading its innerText, textContent or value (whichever first is defined) and normalizing the whitespace.
Returns textContent
DOM property of elements.
textContent
specifically
(i.e. when fallback logic of Extract Text produces incorrect or unwanted results)Returns value
DOM property of elements.
value
specifically
(i.e. when fallback logic of Text produces incorrect or unwanted results)Returns true
if element contains specified class name, false otherwise.
Returns DOM contentDocument node of the IFRAME element. An error is thrown if applied to non-frame elements.
Discards elements that enclose other elements from the same set. This leaves only the "innermost" elements in the output set.
For each element returns the value of its disabled
DOM property.
For each element returns the value of its selected
or checked
DOM property.
option
elementsReturns true if Element is visible, that is:
Returns true
if element matches specifed selector.
Returns n-th next DOM sibling of an element. An error is thrown if no next sibling exists.
Discards elements that are enclosed by other elements from the same set. This leaves only the "outermost" elements in the output set.
For each input element returns its DOM parent. An error is thrown if parent not found (i.e. applied to #document).
Returns n-th previous DOM sibling of an element. An error is thrown if no previous sibling exists.
Returns all Element nodes found by specified selector.
Returns Element node found by specified selector. An error is thrown if multiple elements are found within each element.
Returns all Element nodes found by specified Xpath expression.
Returns Element node found by specified Xpath expression. An error is thrown if multiple elements are found within each element.
Obtains shadow DOM root of the current element. An error is thrown if element has no shadow root.
Takes input object with URL components and returns a URL string.
URL components may include following keys:
http:
, https:
)example.com
, example.com:3123
)example.com
)/path/to/resource
){ hello: 'world' }
)#link
)Query parameters are automatically URI-encoded.
An error is thrown if input value is not an object, or if there's not enough information to construct a URL.
Returns blob content in a specified encoding.
Input value must be a Blob object, returned by Send Network Request action with "blob" response type.
Caution: decoding large blobs may result in decreased application and engine performance.
Restores a set saved with Local Save pipe. Input set is discared.
Saves input set, so that it could be later restored with Local Restore.
Parses the date from input string using specified input format, then returns this date formatted using specified output format.
An error is thrown if input data is not a string.
See moment.js docs for more information about pattern strings and formatting.
Passes each element in input set to the specified definition, returning its output.
This pipe is a primary means of working with definitions. It allows extracting common functionality of different pipelines as a named definition, so that the same pipes could be reused across multiple actions.
Evaluates expression according to following rules:
/
, then it is interpreted as a JSON pointer into an input object,
thus behaving in a similar manner to Get Path=
, then the rest is interpreted as a JavaScript expression,
which has access to top-level keys of input objectThe =
mode is also useful for making constants, for example:
= true
for booleans,= 42
for numbers,= "/some/path"
for string constants which start with /
For each element evaluates the condition pipeline. If condition is rue`, evaluates the positive branch pipeline, otherwise evaluates the negative branch.
Condition pipeline should return a single element for each element in input set. An error is thrown if condition value is not a boolean.
Executes an arbitrary JavaScript code and returns its results.
Concatenates the input set with the output set of inner pipeline. The input set comes before the inner pipeline's results.
The inner pipeline is executed only once (as opposed to other pipelines which are executed per each element in input set), with #document element as its input set. A typical usage is to have a Use Definition pipe inside of it, so that multiple definitions can be concatenated together.
Returns a single element whose value is an object computed as follows:
This is similar to COUNT / GROUP BY from SQL and is primarily used in advanced scripting scenarios (e.g. calculate the number of passengers in each group).
The DOM node of the result is set to top #document.
Returns a single #document element with boolean value.
The value is true
if all of the results of inner pipeline is true
.
Throws an error if the inner pipeline returns non-boolean value.
Returns a single element whose value is true
if the input set contains one or more elements,
and false
otherwise. The DOM node of the result is set to top #document.
For each input element evaluates the boolean value of inner pipeline.
The element is then discarded if the value is false
, or kept if the value is true
.
Inner pipeline must return a single element for each element in the input set. An error is thrown if the resulting value is not a boolean.
Same as List.filter
, but expects exactly one element.
Given an array as input value, creates an element for each value of this array.
For example, if input set contains 2 elements with arrays [1, 2, 3]
and [4, 5]
respectively,
then the output set will contain 5 elements with values 1
, 2
, 3
, 4
, 5
respectively.
An error is thrown if input value is not an array.
Returns a single element whose value is a number of elements in the input set.
Returns specified number of first elements in input set and discards everything else.
A typical usage scenario is to have limit 1
which ensures that the output set only contains a single element.
click
actions, especially when filtering yields more than one element and
they are functionally equivalent)Concatenates the output set of inner pipeline with the input set. The input set comes after the inner pipeline's results.
Note: the inner pipeline is executed only once (as opposed to other pipelines which are executed per each element in input set), with #document element as its input set. A typical usage is to have a Use Definition pipe inside of it, so that multiple definitions can be concatenated together.
Creates specified number of copies of each input element.
Returns the elements from the input set in a reversed order.
Discards specified number of elements and returns everything else.
<option>
elements whose first element is typically a placeholder and does not represent an actual optionStarting in specified direction, discards input elements whilst inner pipeline produces true
.
Unlike Filter, which discards all non-matching elements, this pipe only discards a continuous sequence of elements either at the start or at the end.
Returns a single #document element with boolean value.
The value is true
if at least one result of inner pipeline is true
.
Throws an error if the inner pipeline returns non-boolean value.
For each element evaluates the key using inner pipeline, then sorts the elements according to this key, in ascending order.
Starting in specified direction, takes input elements whilst inner pipeline produces true
, and discards the rest.
Unlike Filter, which discards all non-matching elements, this pipe only discards a continuous sequence of elements either at the start or at the end.
Returns a single element whose value is an array containing all values of the input set. The DOM node of the result is set to top #document.
Evaluates two operands by passing each element of input set through two different pipelines, then returns the boolean result of numeric comparison of these two operands using specified operator.
Inner pipelines should return a single element for each element in input set. An error is thrown if the result is not a number.
Returns a string value corresponding to one of the configured numeric ranges where the input value belongs to.
The configured ranges must cover the expected numeric domain and must not overlap to prevent ambiguity.
The lower bounds of are always inclusive, whereas the upper bounds are always exclusive.
Therefore, ranges [0, 3)
and [3, 5)
form a continuous range [0, 5)
with no "holes" in it;
and the input value 3
will belong to the second range.
An error is thrown if input value is not a number, or if the number does not belong to any range.
Returns a single element whose value is a numeric sum of all input set values.
Evaluates an object with inner pipeline, then merges the resulting object with input object by assigning each key of the result to it.
The inner pipeline must resolve to a single element with object value. An error is thrown if input value is not object/array.
Object.assign
in JavaScript)Creates an object according to specified mappings.
Each mapping specifies a JSON pointer and an expression. Expressions are evaluated according to rules specified in Expression pipe and are assigned to corresponding JSON pointers.
Removes the value at specified path. An error is thrown if input value is not object/array.
Converts each object into [key, value]
pairs for each property.
Throws an error if element value is not an object.
Returns a single object with properties correspinding to each value of the input set. JSON paths are used to control which properties of input set correspond to key/value of the object. The DOM node of the result is set to top #document.
Returns the value at specified path. An error is thrown if datum resolves to undefined. An error is thrown if input value is not object/array.
Returns true
if input object contains anything at specified path.
An error is thrown if input value is not an object or an array.
Creates an object composed of picked input object keys. An error is thrown if input value is not object/array.
This is effectively a keys whitelisting operation in a sense that it removes all keys not explicitly listed.
Evaluates the inner pipeline for each element and assigns the resulting value to the input object at specified path. The inner pipeline must resolve to a single element. An error is thrown if input value is not an object or an array.
Returns a new object with input value placed at specified path.
Matches input string against specified regular expressions and returns an array of strings, where first element is a whole match and subsequent elements are captured regex groups.
An error is thrown if input value is not a string. On No Match parameter controls the behaviour when input string does not match the regular expression, by default an error is thrown.
See RegExp#exec for more information about regular expressions matching and capturing groups.
SFO-18 / 01 / 29
)Returns a string formatted according to specified template.
The template allows inserting values from input using syntax
{/path/to/value}
where /path/to/value
is a JSON pointer into input object.
An error is thrown if input value is not object/array.
Returns a single element with string value, produced by concatenating all values of input elements with specified separator.
An error is thrown if input set contains object or array values, which are not supported.
Matches the input string value against specified patterns, then returns a string that corresponds to the matched pattern. The behaviour when no patterns match is controlled by On No Match parameter.
An error is thrown if input value is not a string.
mr
, ms
, mrs
titles to website format and vice versa)Returns true
if input string matches specified regular expression, and false
otherwise.
An error is thrown iff input value is not a string.
See String#match for more information about regular expressions matching.
Parses a boolean value from input string.
An error is thrown if input value is not a string.
Parses color value from input string, returning detailed information about color, including its rgb, hsv, hsl values.
Parses JSON from input value string.
An error is thrown if input value is not a valid JSON string.
Parses a number value from input string.
An error is thrown if input value is not a string.
Parses input string using embedded URL parser, and returns the result.
The result is an object containing following properties:
http:
, https:
)example.com
, example.com:3123
)example.com
)/path/to/resource
){ hello: 'world' }
)#link
)Replaces accented characters with their ASCII equivalent,
e.g. å
becomes a
, œ
becomes oe
and so on.
Returns a new string with some (or all) matches of specified regular expression replaced with specified replacement. An error is thrown if input value is not a string.
See String#replace for more information about regular expressions and replacement strings.
Takes input string containing HTML markup and removes unsafe tags
(e.g. <script>
) and attributes (e.g. onclick
).
An error is thrown if input value is not a string.
Evaluates two operands by passing each element of input set through two different pipelines, then returns a boolean indicating whether operand A conceptually contains operand B.
The result depends on the data type of operand A and is evaluated according to following rules:
true
only if operand B is also an object,
and each value of object B is equal to the corresponding value of object Atrue
only is operand B is also an array,
and each item of array B exists in array Atrue
is returned if B is a substring of AInner pipelines should return a single element for each element in input set.
Returns true
if input value contains specified string constant.
Non-string values are coerced to strings and are tested according to rules specified in Contains.
Evaluates two operands by passing each element of input set through two different pipelines, then returns a boolean indicating whether the resulting values are conceptually equal.
The equality is tested according to following rules:
Inner pipelines should return a single element for each element in input set.
Returns true
if input value equals to specified string constant.
Non-string values are coerced to strings and are tested according to rules specified in Equals.
This is simpler equivalent to Equals pipe, where one of the operands is constant.
Returns specified constant value.
Returns an array of specified constant values.
Returns the value of specified Job Input. The input key is evaluated using nested pipeline.
Returns the value of specific Global variable (set by Set Global action). An error is thrown if Global variable is not set.
Returns the value of specified Job Input.
Returns the specified JSON object.
Returns an outcome of another action.
Returns true
if an Input with specified name exists, without requesting it.
Returns true
if input value is either an empty string, an empty array or null
.
The string is considered empty if it contains nothing but whitespace.
null
values instead of throwing errors, which is a common pipe convention)Gets the input without requesting it, i.e. doesn't set job.state = 'awaitingInput' if the input not exists yet.


Persona 1 - Frank Actively seeking sobriety
Functionality:
Seeking out resources for treatment
Demographics
- Gender: Male
- Age: 52
- Job: Store Manager
- Family: Wife of 20 years and 2 kids
Technology:
- Computer: Dell Latitude 850 with Google Chrome running Windows 10 Pro
- Mobile Device: iPhone X
- Knows how to use basic social media
- Casual User
- Has Samsung SmartTV
Attitudes and Needs:
- Frank had an intervention from his family -- wife, 2 kids, college friends
- Frank acknowledges his problem and is motivated
- Frank is seeking a place within his budget with the right duration of program and techniques that align with what he needs
- Frank needs positive reinforcement from family & friends/support system
Habits:
- Frank drinks every night between 8pm to midnight, consuming ~18 drinks/day 6 days/week.
- Frank deals with being hungover daily and is high-functioning.
Goals:
- To achieve sobriety
- To find the best treatment center for his current situation
- Turn his life around for the better
User Story:
As a user, Frank wants to find the best treatment center for his current situation
Use Case:
- Frank is a middle age man currently seeking treatment centers on the NMgetssober website and was referred by one of his coworkers.
- Pre-condition: Frank uses the locator tool to find treatment centers.
- Post-condition: Frank finds one that fits his needs.
Interaction Flow:
- Frank clicks on the treatment locator tab.
- NMgetssober loads the locator tool
- Frank inputs his city
- NMgetssober loads centers in his area
- Frank looks for the one that fits his needs
- Frank clicks on the treatment center to learn more about it
- NMgetssober loads information about center selected


We are developing the ResearchHub further and would be grateful for your feedback. This will give us pointers for user-led refinement and further development of the interface content displayed in the ResearchHub.
Thank you,
The Development Team


#{extends 'main.html' /} #{set title:'Online FAQs | My Online FAQs' /}
You do not have any FAQs yet. Create your first FAQ


Server module¶
Messenger’s server app. Passes messages between the clients, handles user registration and authorization processes, stores users’ public keys for encryption.
Usage:
python server.py [-a {listen_address}] [-p {server_port}] [--no-gui]
-a - sets a listen address for the server.
-p - sets a listen port for the server.
–no-gui - starts the server without a GUI (type /exit to close).
Examples:
python server.py -a localhost
Server will only listen for connections from “localhost”
python server.py -p 7777 --no-gui
Launch the server without a GUI and make it listen on port 7777
server.py¶
Main server app launcher module, contains a CLI arguments parser and an initialization script for network module and GUI window.
- server.**arg_parser**()
CLI parameters parser. Returns a tuple of
address
port (validated)
flag for launching without a GUI
add_user.py¶
config_window.py¶
core.py¶
-
class
server.core.
MessageProcessor
(address, port, db)¶ Main server class.
Method for performing an authorization process.
Checks whether a user is already logged in, checks for password validity and finally adds a client to the list of connected sockets.
-
static
form_response
(*args, **kwargs)¶ Returns response object for the given code.
-
init_socket
()¶ Method for listen socket initialization.
-
process_message
(message)¶ Method for passing client messages to other clients.
-
remove_client
(client)¶ Method for disconnecting a client.
Closes a socket, stores info in the DB and removes a socket object from connected clients list.
-
run
()¶ Main server cycle.
-
send_contacts
(username)¶ Method for sending a list of contacts to the client.
-
send_userlist
(sock)¶ Method for sending a userlist to a client’s socket.
-
service_update_lists
()¶ Method for sending response 205 (update user lists) to all clients.
history_window.py¶
main_window.py¶
-
class
server.main_window.
MainWindow
(database, server, config)¶ Main server window.
-
create_users_model
()¶ Active users table filling method.
-
reg_user
()¶ User registration window creator method.
-
rem_user
()¶ User removal window creator method.
-
server_config
()¶ Server preferences window creator method.
-
show_statistics
()¶ Client statistics window creator method.
-
remove_user.py¶
server_database.py¶
-
class
server.server_database.
ServerBase
(db_path)¶ Server database for the messenger.
-
class
ActiveUsers
(user_id, ip_address, port, login_time)¶ Class for representing currently active users.
-
class
LoginHistory
(user, login_time, ip, port)¶ User login history representation class.
-
class
MessageHistory
(user, recipient, message)¶ Message history storage representation class.
-
class
UserContacts
(user, contact)¶ User contacts representation class.
-
class
Users
(username, passwd_hash)¶ User table representation class.
-
active_users_list
()¶ Method for retrieving a list of active users.
-
add_contact
(user_name, contact_name)¶ Method for adding a new contact info for user.
-
add_user
(name, passwd_hash)¶ User registration method.
-
check_user
(name)¶ Method for checking whether a user is present within a DB.
-
del_contact
(user_name, contact_name)¶ Method for removing a user from another user’s contacts list.
-
get_contacts
(user_name)¶ Method for retrieving a user’s contact list from DB.
-
get_full_message_history
()¶ Method for retrieving a complete message history for all users.
-
get_hash
(name)¶ Method for retrieving a stored user’s password hash.
-
get_pubkey
(name)¶ Method for retrieving a stored user’s public key.
-
get_user_message_history
(user_name)¶ Method for retrieving a user’s message history.
-
login_history
(username=None)¶ Method for retrieving a user’s login history.
-
on_login
(username, ip_address, port, key)¶ Stores relevant data for user login.
Adds a new user into Users or finds an existing user and puts them into ActiveUsers. Also adds a LoginHistory entry.
-
on_logout
(username)¶ Removes user from ActiveUsers on logout.
-
remove_user
(name)¶ Method for user removal from the DB.
-
store_message
(sender_name, recipient_name, content)¶ Method for storing a new message in the DB.
-
users_list
()¶ Method for retrieving a complete user list.
-
class


WITNESS LIST Insurance Committee September 8, 1998-1:30P Interim Charges On: Anderson, Lyndon (Tx Department Insurance) Bomer, Elton (Tx Department Insurance) Bordelon, Rod (OPIC) Longley, Dianne (Tx Department Insurance) Montemayor, Jose (Tx Department Insurance) Myron, Rhonda (Tx Department Insurance) Reeser, RoseAnn (Tx Department Insurance)


[§641-15] Service. Service of a copy of the notice of appeal shall be made upon the adverse party or the adverse party's attorney of record as provided by the rules of court. [L 1892, c 95, pt of §8; am L 1919, c 44, §7; RL 1925, §2530; RL 1935, §3557; RL 1945, §9558; RL 1955, §212-8; HRS §641-18; am L 1972, c 89, pt of §5; ren HRS §641-15; gen ch 1985]


|
Gephi Toolkit Javadoc | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface Graph
Main interface for accessing the graph structure and develop algorithms.
A graph object belongs to a graph model, which really contains the data. Graph
objects are therefore only accessors, with all convinient methods to read and
modify the structure. Hence, multiple Graph
objects can
exists.
GraphController graphController = Lookup.getDefault().lookup(GraphController.class); GraphModel model = graphController.getModel(); Graph graph = model.getGraph();Note: This shows how to get the complete graph, for getting only the currently visualized graph, call
model.getGraphVisible()
instead.
There is two different way to perform read locking:
readLock()
and readUnlock()
NodeIterable
and EdgeIterable
readUnlockAll()
to release all the locks.
Note: Write locking is automatically done when modifying th graph (add, remove, ...).
| Method Summary | |
|---|---|
boolean |
addEdge(Edge edge)
Add edge to the graph. |
boolean |
addNode(Node node)
Add a node to the graph. |
void |
clear()
Removes all nodes and edges in the graph. |
void |
clearEdges()
Removes all edges in the graph. |
void |
clearEdges(Node node)
Removes all edges incident to node . |
boolean |
contains(Edge edge)
Returns true if the graph contains edge . |
boolean |
contains(Node node)
Returns true if the graph contains node . |
int |
getDegree(Node node)
Returns the degree of node . |
Edge |
getEdge(int id)
Returns the edge with identifier equals to id . |
Edge |
getEdge(Node node1,
Node node2)
Finds and returns a directed or undirected edge that connects node1 and
node2 . |
Edge |
getEdge(java.lang.String id)
Returns the edge with identifier equals to id . |
int |
getEdgeCount()
Returns the number of edges in the graph Special case of interest: Count self-loops once only. |
EdgeIterable |
getEdges()
Returns edges contained in the graph. |
EdgeIterable |
getEdges(Node node)
Returns edges incident to node . |
int |
getEdgeVersion()
Return the current edge version of the graph. |
GraphModel |
getGraphModel()
Returns the graph model this graph belongs to. |
NodeIterable |
getNeighbors(Node node)
Returns neighbors of node . |
Node |
getNode(int id)
Returns the node with identifier equals to id . |
Node |
getNode(java.lang.String id)
Returns the node with identifier equals to id . |
int |
getNodeCount()
Returns the number of nodes in the graph. |
NodeIterable |
getNodes()
Returns nodes contained in the graph. |
int |
getNodeVersion()
Return the current node version of the graph. |
Node |
getOpposite(Node node,
Edge edge)
Returns the adjacent node of node through edge . |
GraphView |
getView()
Returns the graph view this graph belongs to. |
boolean |
isAdjacent(Edge edge1,
Edge edge2)
Returns true if edge1 is adjacent to edge2 . |
boolean |
isAdjacent(Node node1,
Node node2)
Returns true if node1 is adjacent to node2 . |
boolean |
isDirected(Edge edge)
Returns true if edge is a directed edge in the current graph. |
boolean |
isSelfLoop(Edge edge)
Returns true if edge is a self-loop. |
void |
readLock()
Acquires a read lock on the graph. |
void |
readUnlock()
Releases the read lock on the graph. |
void |
readUnlockAll()
Safe method that releases all read locks the calling thread has acquired. |
boolean |
removeEdge(Edge edge)
Remove edge from the graph. |
boolean |
removeNode(Node node)
Remove node from the graph. |
void |
setId(Edge edge,
java.lang.String id)
Sets the string identifier of edge . |
void |
setId(Node node,
java.lang.String id)
Sets the string identifier of node . |
void |
writeLock()
Acquires a write lock on the graph. |
void |
writeUnlock()
Release the write lock on the graph. |
| Methods inherited from interface org.gephi.graph.api.Attributable |
|---|
getAttributes |
| Method Detail |
|---|
boolean addEdge(Edge edge)
edge
to the graph. Graph does not accept parallel edges.
Fails if edge
is already in the graph.
edge
- the edge to add
java.lang.IllegalArgumentException
- if edge
is null
,
or if nodes are not legal nodes for this edge
,
or if edge
is directed when the graph is undirected,
or if edge
is undirected when the graph is directed,
java.lang.IllegalMonitorStateException
- if the current thread is holding a read lockboolean addNode(Node node)
node
- the node to add
java.lang.IllegalArgumentException
- if node
is null
java.lang.IllegalMonitorStateException
- if the current thread is holding a read lockboolean removeEdge(Edge edge)
edge
from the graph.
Fails if the edge doesn't exist.
edge
- the edge to remove
java.lang.IllegalArgumentException
- if edge
is null
or nodes not legal in
the graph
java.lang.IllegalMonitorStateException
- if the current thread is holding a read lockboolean removeNode(Node node)
node
from the graph. All node
's children and incident edges will
also be removed.
node
- the node to remove
java.lang.IllegalArgumentException
- if node
is null
or not legal in the graph.
java.lang.IllegalMonitorStateException
- if the current thread is holding a read lockboolean contains(Node node)
node
.
Warning: This method is not thread safe, be sure to call it in a locked statement.
node
- the node whose presence is required
node
java.lang.IllegalArgumentException
- if node
is null
boolean contains(Edge edge)
edge
.
Warning: This method is not thread safe, be sure to call it in a locked statement.
edge
- the edge whose presence is required
edge
java.lang.IllegalArgumentException
- if edge
is null
Node getNode(int id)
id
. If not found,
returns null
. This id is generated and can be found in
Node.getId()
.
Warning: This method is not thread safe, be sure to call it in a locked statement.
id
- a positive number
id
, or null
if not foundNode getNode(java.lang.String id)
id
. If not found,
returns null
. This id is set by user and can be found at
NodeData.getId()
. To set this Id, use Graph.setId()
.
The node must be present in the view this graph is from.
Warning: This method is not thread safe, be sure to call it in a locked statement.
id
- the string identifier, unique
id
, or null
if not foundEdge getEdge(int id)
id
. If not found,
returns null
. This id is generated and can be found in
Edge.getId()
.
Warning: This method is not thread safe, be sure to call it in a locked statement.
id
- a positive number
id
, or null
if not foundEdge getEdge(java.lang.String id)
id
. If not found,
returns null
. This id is set by user and can be found at
EdgeData.getId()
. To set this Id, use Graph.setId()
.
Warning: This method is not thread safe, be sure to call it in a locked statement.
id
- the string identifier, unique
id
, or null
if not foundEdge getEdge(Node node1, Node node2)
node1
and
node2
. Returns null
if no such edge is found.
Warning: This method is not thread safe, be sure to call it in a locked statement.
node1
- the first incident node of the queried edgenode2
- thge second incident node of the queried edge
node1
and node2
or null
if no such edge exists
java.lang.IllegalArgumentException
- if node1
or node2
are null
or not legal nodes in the graphNodeIterable getNodes()
EdgeIterable getEdges()
If the graph is undirected, directed mutual edges will be present only once.
NodeIterable getNeighbors(Node node)
node
. Neighbors are nodes connected to
node
with any edge of the graph. Neighbors exclude node
itself,
therefore self-loops are ignored.
node
- the node whose neighbors are to be returned
node
's neighbors
java.lang.IllegalArgumentException
- if node
is null
or not legal in the graph.EdgeIterable getEdges(Node node)
node
.
For directed graph, note that self-loops are repeated only once. Undirected graphs repeats edges once by default.
node
- the node whose incident edges are to be returned
node
java.lang.IllegalArgumentException
- if node
is null
or not legal in the graph.int getNodeCount()
Special case of interest:
Warning: This method is not thread safe, be sure to call it in a locked statement.
int getEdgeCount()
Special case of interest:
Warning: This method is not thread safe, be sure to call it in a locked statement.
int getNodeVersion()
External modules can compare local copy of version to determine if update is necessary.
int getEdgeVersion()
External modules can compare local copy of version to determine if update is necessary.
Node getOpposite(Node node, Edge edge)
node
through edge
.
node
- the node whose adjacent node is to be returnededge
- the edge whose the opposite node is to be returned
node
through edge
java.lang.IllegalArgumentException
- if node
or edge
is null
,
or if node
is not incident to edge
int getDegree(Node node)
node
. Self-loops are counted twice for directed graphs.
node
- the node whose degree is to be returned
Warning: This method is not thread safe, be sure to call it in a locked statement.
node
java.lang.IllegalArgumentException
- if node
is null
or not legal in the graphboolean isSelfLoop(Edge edge)
true
if edge
is a self-loop.
edge
- the edge to be queried
true
if edge
is a self-loop, false
otherwise
java.lang.IllegalArgumentException
- if edge
is null
or adjacent nodes not
legal in the graphboolean isDirected(Edge edge)
true
if edge
is a directed edge in the current graph. Always
returns true
when the graph is directed and false
when the graph
is undirected. In case of a mixed graph returns Edge.isDirected().
edge
-
true
is edge
is directed
java.lang.IllegalArgumentException
- if edge
is null
or adjacent nodes not
legal in the graphboolean isAdjacent(Node node1, Node node2)
true
if node1
is adjacent to node2
. Is adjacent
when an edge exists between node1
and node2
.
Warning: This method is not thread safe, be sure to call it in a locked statement.
node1
- the first node to be queriednode2
- the seconde node to be queried
true
if node1
is adjacent to node2
java.lang.IllegalArgumentException
- if node1
or node2
is null
of
not legal in the graphboolean isAdjacent(Edge edge1, Edge edge2)
true
if edge1
is adjacent to edge2
. Is adjacent
when an node is incident to both edges.
Warning: This method is not thread safe, be sure to call it in a locked statement.
edge1
- the first node to be queriededge2
- the seconde node to be queried
true
if edge1
is adjacent to edge2
java.lang.IllegalArgumentException
- if edge1
or edge2
is null
of
not legal in the graphvoid clearEdges(Node node)
node
.
node
- the node whose edges is to be cleared
java.lang.IllegalArgumentException
- if node
if null or not legal in the graph
java.lang.IllegalMonitorStateException
- if the current thread is holding a read lockvoid clear()
java.lang.IllegalMonitorStateException
- if the current thread is holding a read lockvoid clearEdges()
java.lang.IllegalMonitorStateException
- if the current thread is holding a read lockvoid setId(Node node, java.lang.String id)
node
. This identifier can be set
by users, in contrario of Node.getId()
which is set by the system.
id
- the id that is to be set for node
void setId(Edge edge, java.lang.String id)
edge
. This identifier can be set
by users, in contrario of Edge.getId()
which is set by the system.
id
- the id that is to be set for edge
void readLock()
A read lock can be acquired several times by a thread, but be sure to call readUnlock()
the same number of time you called this method, or use readUnlockAll()
to release all
locks.
ReentrantReadWriteLock
void readUnlock()
Use readUnlockAll()
if you ignore the number of times the read lock has been acquired.
void readUnlockAll()
void writeLock()
java.lang.IllegalMonitorStateException
- if the current thread is holding a read lockReentrantReadWriteLock
void writeUnlock()
GraphModel getGraphModel()
GraphView getView()
|
Gephi Toolkit Javadoc | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Nintendo Switch Is About To Get A New And Exclusive Arcade Golf Game
House of Golf
by Ryan CraddockUK indie studio Atomicom has revealed that House of Golf, a brand new arcade-style golf game, is headed exclusively to Nintendo Switch next week.
Boasting full 3D graphics and "easy pick-up-and-play mechanics", House of Golf will have players facing a variety of holes across home-based locations. You can see it in action in the trailer above - the whole thing reminds us of Mario Kart 8 Deluxe's adorable Ribbon Road race track.
Here's a list of game features and screenshots for you to check out:
House Of Golf features:
* Easy to play game mechanics
* Real Physics at 60FPS
* 135 Levels set across 5 locations
* 1-6 Player Couch Play
* Large selection of unlockables
The game launches on 8th November, but it'll be going live on the eShop today where you'll be able to make use of a 25% early bird discount. The standard retail price (which will come into effect on launch day) will be £8.99 / $9.99 / €9.99.
Do you like the look of this one? Feel free to putt your thoughts in our comment box below.


Seven injured as bus collides with truck
by Special CorrespondentFive passengers travelling from Hyderabad to Hanamkonda had a miraculous escape after a TSRTC bus collided with a truck here on Wednesday. The incident took place at Pembarthy village on the Hyderabad-Warangal road. The two drivers were seriously injured and five others suffered minor injuries. Local people rushed to rescue the passengers and alerted the local police.
The police immediately reached the spot and the injured persons were shifted to the Government Area Hospital in Janagama. The incident led to a traffic jam for over 2 km on the National Highway- 163.
According to the police, the TSRTC bus belonged to Bhupalpally depot and was being operated by a temporary driver in view of the ongoing strike by employees. Janagama town Inspector D Mallesh said that the TSRTC temporary bus driver, who was on the right side of the road, suddenly lost control and hit the truck coming in the opposite direction.
A case was registered under IPC Sections 337 (Causing hurt by act endangering the life of others) and 279 (Rash driving or riding on a public way) of the IPC against the RTC bus driver.


Spike
What is it?
A spike is a relay with three possible states: forward, off, reverse.
Properties
Output Port (Relay)
The relay port on the roboRIO that this spike is plugged into.
See Also
Wikipedia
FIRST KOP Datasheet


FBSnapshotTestCase Class Reference
| Inherits from | XCTestCase |
|---|---|
| Declared in | FBSnapshotTestCase.h FBSnapshotTestCase.m |
Overview
The base class of view snapshotting tests. If you have small UI component, it’s often easier to configure it in a test and compare an image of the view to a reference image that write lots of complex layout-code tests.
In order to flip the tests in your subclass to record the reference images set @c recordMode to @c YES.
@attention When recording, the reference image directory should be explicitly set, otherwise the images may be written to somewhere inside the simulator directory.
For example: @code - (void)setUp { [super setUp]; self.recordMode = YES; } @endcode
recordMode
When YES, the test macros will save reference images, rather than performing an actual test.
@property (readwrite, nonatomic, assign) BOOL recordMode
Declared In
FBSnapshotTestCase.h
deviceAgnostic
When @c YES appends the name of the device model and OS to the snapshot file name. The default value is @c NO.
@property (readwrite, nonatomic, assign, getter=isDeviceAgnostic) BOOL deviceAgnostic
Declared In
FBSnapshotTestCase.h
usesDrawViewHierarchyInRect
When YES, renders a snapshot of the complete view hierarchy as visible onscreen. There are several things that do not work if renderInContext: is used. - UIVisualEffect #70 - UIAppearance #91 - Size Classes #92
@property (readwrite, nonatomic, assign) BOOL usesDrawViewHierarchyInRect
Discussion
@attention If the view does’t belong to a UIWindow, it will create one and add the view as a subview.
Declared In
FBSnapshotTestCase.h
– snapshotVerifyViewOrLayer:identifier:suffixes:tolerance:
Performs the comparison or records a snapshot of the layer if recordMode is YES.
- (NSString *)snapshotVerifyViewOrLayer:(id)viewOrLayer identifier:(NSString *)identifier suffixes:(NSOrderedSet *)suffixes tolerance:(CGFloat)tolerance
Parameters
viewOrLayer |
The UIView or CALayer to snapshot |
|---|---|
identifier |
An optional identifier, used if there are multiple snapshot tests in a given -test method. |
suffixes |
An NSOrderedSet of strings for the different suffixes |
tolerance |
The percentage difference to still count as identical - 0 mean pixel perfect, 1 means I don’t care |
Return Value
nil if the comparison (or saving of the reference image) succeeded. Otherwise it contains an error description.
Declared In
FBSnapshotTestCase.h
– compareSnapshotOfLayer:referenceImagesDirectory:identifier:tolerance:error:
Performs the comparison or records a snapshot of the layer if recordMode is YES.
- (BOOL)compareSnapshotOfLayer:(CALayer *)layer referenceImagesDirectory:(NSString *)referenceImagesDirectory identifier:(NSString *)identifier tolerance:(CGFloat)tolerance error:(NSError **)errorPtr
Parameters
layer |
The Layer to snapshot |
|---|---|
referenceImagesDirectory |
The directory in which reference images are stored. |
identifier |
An optional identifier, used if there are multiple snapshot tests in a given -test method. |
tolerance |
The percentage difference to still count as identical - 0 mean pixel perfect, 1 means I don’t care |
errorPtr |
An error to log in an XCTAssert() macro if the method fails (missing reference image, images differ, etc). |
Return Value
YES if the comparison (or saving of the reference image) succeeded.
Declared In
FBSnapshotTestCase.h
– compareSnapshotOfView:referenceImagesDirectory:identifier:tolerance:error:
Performs the comparison or records a snapshot of the view if recordMode is YES.
- (BOOL)compareSnapshotOfView:(UIView *)view referenceImagesDirectory:(NSString *)referenceImagesDirectory identifier:(NSString *)identifier tolerance:(CGFloat)tolerance error:(NSError **)errorPtr
Parameters
view |
The view to snapshot |
|---|---|
referenceImagesDirectory |
The directory in which reference images are stored. |
identifier |
An optional identifier, used if there are multiple snapshot tests in a given -test method. |
tolerance |
The percentage difference to still count as identical - 0 mean pixel perfect, 1 means I don’t care |
errorPtr |
An error to log in an XCTAssert() macro if the method fails (missing reference image, images differ, etc). |
Return Value
YES if the comparison (or saving of the reference image) succeeded.
Declared In
FBSnapshotTestCase.h
– referenceImageRecordedInDirectory:identifier:error:
Checks if reference image with identifier based name exists in the reference images directory.
- (BOOL)referenceImageRecordedInDirectory:(NSString *)referenceImagesDirectory identifier:(NSString *)identifier error:(NSError **)errorPtr
Parameters
referenceImagesDirectory |
The directory in which reference images are stored. |
|---|---|
identifier |
An optional identifier, used if there are multiple snapshot tests in a given -test method. |
errorPtr |
An error to log in an XCTAssert() macro if the method fails (missing reference image, images differ, etc). |
Return Value
YES if reference image exists.
Declared In
FBSnapshotTestCase.h
– getReferenceImageDirectoryWithDefault:
Returns the reference image directory.
- (NSString *)getReferenceImageDirectoryWithDefault:(NSString *)dir
Parameters
dir |
directory to use if environment variable not specified. Ignored if null or empty. |
|---|
Discussion
Helper function used to implement the assert macros.
Declared In
FBSnapshotTestCase.h


Manages Java Throwables to be E-amenable.
The main issue is the wrapping of Throwables to add E-oriented backtrace info, and to pass declared exceptions back through paths that didn't declare them.


Internet in Kashmir after local administration feels it is fit to do so: Amit Shah
The Home Minister on Wednesday said in Rajya Sabha that the government will restore Internet connection in Kashmir as soon as the local administration feels it is fit to do so.
by PTINEW DELHI: Home Minister Amit Shah on Wednesday said in Rajya Sabha that the government will restore Internet connection in Kashmir as soon as the local administration feels it is fit to do so.
Responding to a series of questions on the situation in Jammu and Kashmir during Question Hour, Shah also asserted that not a single person has died in police firing after August 5 when the special status accorded to Jammu and Kashmir was scrapped.
He also said all newspapers and TV channels are functioning in Kashmir and there is no decline in circulation of newspapers.
"The situation there was always normal. There were many notions spread all over the world. There is total normalcy prevailing. After August 5, not a single person has died in police firing although many feared there would be bloodshed and more number of killings," the Home Minister said.
In Video: Internet curb in J&K valley will be lifted at appropriate time: Amit Shah in Rajya Sabha


--- layout: page title: Error 404 description: Not found header-img: "img/404.jpg" permalink: /404.html ---
The page you requested doesn't exist, head on back to AustinMcGee.net or let me know if you think this was a mistake.


--- title: Wandb keywords: fastai sidebar: home_sidebar summary: "Integration with Weights & Biases " description: "Integration with Weights & Biases " nb_path: "nbs/70_callback.wandb.ipynb" ---
from nbdev.showdoc import *
First thing first, you need to install wandb with
pip install wandb
Create a free account then run
wandb login
in your terminal. Follow the link to get an API token that you will need to paste, then you're all set!
Optionally logs weights and or gradients depending on log
(can be "gradients", "parameters", "all" or None), sample predictions if log_preds=True
that will come from valid_dl
or a random sample pf the validation set (determined by seed
). n_preds
are logged in this case.
If used in combination with SaveModelCallback
, the best model is saved as well.
Datasets can also be tracked:
log_dataset
is True
, tracked folder is retrieved from dls.path
log_dataset
can explicitly be set to the folder to trackdataset_name
, otherwise it is set to the folder namelog_dataset(data_path, "dataset_name")
Once your have defined your Learner
, before you call to fit
or fit_one_cycle
, you need to initialize wandb:
import wandb
wandb.init()
To use Weights & Biases without an account, you can call wandb.init(anonymous='allow')
.
Then you add the callback in your call to fit, potentially with SaveModelCallback
if you want to save the best model:
from fastai2.callback.wandb import *
# To log only during one training phase
learn.fit(..., cbs=WandbCallback())
# To log continuously for all training phases
learn = learner(..., cbs=WandbCallback())
Datasets can be tracked through the callback or


<lcAnswerContent2>
The <lcAnswerContent2>
element in a learning assessment interaction
provides the content for an answer option, which the learner can select as correct or
incorrect. This element replaces the <lcAnswerContent>
element in
DITA 1.2.
Category: Interactions domain content elements


@Service
public class TimeSheet
extends java.lang.Object
implements java.io.Serializable
| Constructor and Description |
|---|
TimeSheet() |
| Modifier and Type | Method and Description |
|---|---|
java.lang.Integer |
getChunkId()
This method was generated by MyBatis Generator.
|
java.lang.Long |
getCreated()
This method was generated by MyBatis Generator.
|
java.lang.Integer |
getEmpId()
This method was generated by MyBatis Generator.
|
java.lang.Integer |
getId()
This method was generated by MyBatis Generator.
|
java.lang.Long |
getTimeIn()
This method was generated by MyBatis Generator.
|
java.lang.Long |
getTimeOut()
This method was generated by MyBatis Generator.
|
java.lang.Long |
getUpdated()
This method was generated by MyBatis Generator.
|
java.lang.Long |
getWorkDate()
This method was generated by MyBatis Generator.
|
void |
setChunkId(java.lang.Integer chunkId)
This method was generated by MyBatis Generator.
|
void |
setCreated(java.lang.Long created)
This method was generated by MyBatis Generator.
|
void |
setEmpId(java.lang.Integer empId)
This method was generated by MyBatis Generator.
|
void |
setId(java.lang.Integer id)
This method was generated by MyBatis Generator.
|
void |
setTimeIn(java.lang.Long timeIn)
This method was generated by MyBatis Generator.
|
void |
setTimeOut(java.lang.Long timeOut)
This method was generated by MyBatis Generator.
|
void |
setUpdated(java.lang.Long updated)
This method was generated by MyBatis Generator.
|
void |
setWorkDate(java.lang.Long workDate)
This method was generated by MyBatis Generator.
|
public java.lang.Integer getId()
public void setId(java.lang.Integer id)
id
- the value for time_sheet.idpublic java.lang.Integer getEmpId()
public void setEmpId(java.lang.Integer empId)
empId
- the value for time_sheet.emp_idpublic java.lang.Long getWorkDate()
public void setWorkDate(java.lang.Long workDate)
workDate
- the value for time_sheet.work_datepublic java.lang.Integer getChunkId()
public void setChunkId(java.lang.Integer chunkId)
chunkId
- the value for time_sheet.chunk_idpublic java.lang.Long getTimeIn()
public void setTimeIn(java.lang.Long timeIn)
timeIn
- the value for time_sheet.time_inpublic java.lang.Long getTimeOut()
public void setTimeOut(java.lang.Long timeOut)
timeOut
- the value for time_sheet.time_outpublic java.lang.Long getCreated()
public void setCreated(java.lang.Long created)
created
- the value for time_sheet.createdpublic java.lang.Long getUpdated()
public void setUpdated(java.lang.Long updated)
updated
- the value for time_sheet.updated


Constantine
Based on the wildly popular comic book series "Hellblazer" from DC Comics, seasoned demon hunter and master of the occult John Constantine is armed with a ferocious knowledge of the dark arts and a wickedly naughty wit. He fights the good fight - or at least he did.  With the balance of good and evil on the line, Constantine will use his skills to travel the country, find the supernatural terrors that threaten our world and send them back where they belong. After that, who knows... maybe there's hope for him and his soul after all.


// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.8.0;
import "../utils/Context.sol";
import "../math/SafeMath.sol";
import "../utils/Address.sol";
/**
* @title PaymentSplitter
* @dev This contract allows to split Ether payments among a group of accounts. The sender does not need to be aware
* that the Ether will be split in this way, since it is handled transparently by the contract.
*
* The split can be in equal parts or in any other arbitrary proportion. The way this is specified is by assigning each
* account to a number of shares. Of all the Ether that this contract receives, each account will then be able to claim
* an amount proportional to the percentage of total shares they were assigned.
*
* `PaymentSplitter` follows a _pull payment_ model. This means that payments are not automatically forwarded to the
* accounts but kept in this contract, and the actual transfer is triggered as a separate step by calling the {release}
* function.
*/
contract PaymentSplitter is Context {
using SafeMath for uint256;
event PayeeAdded(address account, uint256 shares);
event PaymentReleased(address to, uint256 amount);
event PaymentReceived(address from, uint256 amount);
uint256 private _totalShares;
uint256 private _totalReleased;
mapping(address => uint256) private _shares;
mapping(address => uint256) private _released;
address[] private _payees;
/**
* @dev Creates an instance of `PaymentSplitter` where each account in `payees` is assigned the number of shares at
* the matching position in the `shares` array.
*
* All addresses in `payees` must be non-zero. Both arrays must have the same non-zero length, and there must be no
* duplicates in `payees`.
*/
constructor (address[] memory payees, uint256[] memory shares_) public payable {
// solhint-disable-next-line max-line-length
require(payees.length == shares_.length, "PaymentSplitter: payees and shares length mismatch");
require(payees.length > 0, "PaymentSplitter: no payees");
for (uint256 i = 0; i < payees.length; i++) {
_addPayee(payees[i], shares_[i]);
}
}
/**
* @dev The Ether received will be logged with {PaymentReceived} events. Note that these events are not fully
* reliable: it's possible for a contract to receive Ether without triggering this function. This only affects the
* reliability of the events, and not the actual splitting of Ether.
*
* To learn more about this see the Solidity documentation for
* https://solidity.readthedocs.io/en/latest/contracts.html#fallback-function[fallback
* functions].
*/
receive () external payable virtual {
emit PaymentReceived(_msgSender(), msg.value);
}
/**
* @dev Getter for the total shares held by payees.
*/
function totalShares() public view returns (uint256) {
return _totalShares;
}
/**
* @dev Getter for the total amount of Ether already released.
*/
function totalReleased() public view returns (uint256) {
return _totalReleased;
}
/**
* @dev Getter for the amount of shares held by an account.
*/
function shares(address account) public view returns (uint256) {
return _shares[account];
}
/**
* @dev Getter for the amount of Ether already released to a payee.
*/
function released(address account) public view returns (uint256) {
return _released[account];
}
/**
* @dev Getter for the address of the payee number `index`.
*/
function payee(uint256 index) public view returns (address) {
return _payees[index];
}
/**
* @dev Triggers a transfer to `account` of the amount of Ether they are owed, according to their percentage of the
* total shares and their previous withdrawals.
*/
function release(address payable account) public virtual {
require(_shares[account] > 0, "PaymentSplitter: account has no shares");
uint256 totalReceived = address(this).balance.add(_totalReleased);
uint256 payment = totalReceived.mul(_shares[account]).div(_totalShares).sub(_released[account]);
require(payment != 0, "PaymentSplitter: account is not due payment");
_released[account] = _released[account].add(payment);
_totalReleased = _totalReleased.add(payment);
Address.sendValue(account, payment);
emit PaymentReleased(account, payment);
}
/**
* @dev Add a new payee to the contract.
* @param account The address of the payee to add.
* @param shares_ The number of shares owned by the payee.
*/
function _addPayee(address account, uint256 shares_) private {
require(account != address(0), "PaymentSplitter: account is the zero address");
require(shares_ > 0, "PaymentSplitter: shares are 0");
require(_shares[account] == 0, "PaymentSplitter: account already has shares");
_payees.push(account);
_shares[account] = shares_;
_totalShares = _totalShares.add(shares_);
emit PayeeAdded(account, shares_);
}
}
|


IT firms may shed 30,000 to 40,000 mid-level staff: Pai
by PTIIndia’s Information Technology service companies may shed 30,000 to 40,000 middle-level employees this year as growth slows down, industry veteran T.V. Mohandas Pai said on Monday.
The former Chief Financial Officer of IT major Infosys Ltd. termed the job losses as once-in-five-years normal phenomenon with maturing of the industry.
“As in all sectors in the West, in India too when a sector matures, there will be many people in the middle level who do not add value to the salary they get,” Mr. Pai told PTI.
Promotions are okay when companies are growing fast but when it slows down, people getting fat salaries will aggregate at the higher level, prompting companies to periodically reset their pyramids, and shed people, he said.
“It’s going to happen again every five years,” said Mr. Pai, chairman of Aarin Capital and Manipal Global Education Services.
“Nobody is entitled to a fat salary and high-paying job unless you perform, right? You have to deliver value”. “All across industry, may be 30,000 to 40,000 in a year...,” he said when asked about the number of middle-level staff who would lose their jobs.
But Mr. Pai said about 80% of those who lose jobs would have employment opportunities in industries in general if they are specialists.


There are numerous activites to get students involved on campus! All the way from 8-ball pool to student government Mustang Central can help you get into what ever you would like.
Here is alist of fall Intramurals that are offered:
Here are just a few of the clubs!:
Mustang centrals and WWCC strongly appreciate our veterens!  Mustang Central is able to help you with any question and comments you may have while filling out the documentation needed.