TreeMap
TreeMap is an associative container that stores elements formed by a combination of a key value and a mapped value, following a specific order.
In a TreeMap, the key values are generally used to sort and uniquely identify the elements, while the mapped values store the content associated to this key. The types of key and mapped value may differ.
Container properties
- Associative - Elements in associative containers are referenced by their key and not by their absolute position in the container.
- Ordered - The elements in the container follow a strict order at all times. All inserted elements are given a position in this order.
- Map - Each element associates a key to a mapped value. Keys are meant to identify the elements whose main content is the mapped value.
- Unique keys - No two elements in the container can have equivalent keys.
Example:
let map = new TreeMap();
// add few values
map.set(1, 'a');
map.set(2, 'b');
// find a value by key
let v = map.get(1); // << 'a'
// print all key-value pairs
for (let [key, value] of map) {
console.log(`key: ${key}, value: ${value}`);
}
Static Member Summary
| Static Public Members | ||
| public static get |
[Symbol.species]: *: * Allows to create programmatically an instance of the same class |
Constructor Summary
| Public Constructor | ||
| public |
constructor(iterable: *) Creates an empty, or a pre-initialized map. |
Member Summary
| Public Members | ||
| public get |
String tag of this class |
|
| public set |
Sets custom comparison function if key values are not of primitive types. |
|
| public get |
Number of key-value pairs in the map. |
Method Summary
| Public Methods | ||
| public |
Forward ES6 iterator for all key-value pairs in ascending order of the keys. |
|
| public |
ES6 reverse iterator for all key-value pairs in descending order of the keys. |
|
| public |
Forward iterator to the first element |
|
| public |
clear() Removes all key-value pairs. |
|
| public |
delete(key: *) Removes key-value pair with the specified key if such entry exists. |
|
| public |
Forward iterator to the element following the last element |
|
| public |
Forward ES6 iterator for all key-value pairs in ascending order of the keys. |
|
| public |
Removes key-value pair for the specified iterator. |
|
| public |
Finds an element with key equivalent to the specified one. |
|
| public |
first(): * |
|
| public |
forEach(callback: *) Iterates all key-value pairs using a callback in ascending order of the keys. |
|
| public |
get(key: *): * Finds value associated with the specified key. |
|
| public |
A boolean indicator whether map contains a key-value pair with the specified key |
|
| public |
insertOrReplace(key: *, value: *): InsertionResult Adds key-value pair if such key does not exist in the map. |
|
| public |
insertUnique(key: *, value: *): InsertionResult Adds key-value pair if such key does not exist in the map |
|
| public |
keys(): JsIterator Forward ES6 iterator for all keys in ascending order of the keys. |
|
| public |
last(): * |
|
| public |
lowerBound(key: *): Iterator Iterator pointing to the first element that is not less than specified key. |
|
| public |
Reverse iterator to the last element. |
|
| public |
Reverse iterator pointing to before the first element. |
|
| public |
set(key: *, value: *) Adds or updates key-value pair to the map. |
|
| public |
Serializes contents of the map in the form {key1:value1,key2:value2,...} |
|
| public |
upperBound(key: *): Iterator Iterator pointing to the first element that is greater than key. |
|
| public |
values(): JsITerator Forward ES6 iterator for all values in ascending order of the keys. |
Static Public Members
public static get [Symbol.species]: *: * source
Allows to create programmatically an instance of the same class
Return:
| * | constructor object for this class. |
Example:
let map = new TreeMap();
let constrFunc = Object.getPrototypeOf(map).constructor[Symbol.species];
let map2 = new constrFunc();
Public Constructors
public constructor(iterable: *) source
Creates an empty, or a pre-initialized map.
Params:
| Name | Type | Attribute | Description |
| iterable | * |
|
Another iterable object whose key-value pairs are added into the newly created map. |
Example:
// Create an empty map
let map1 = new TreeMap();
// Create and initialize map
let map2 = new TreeMap([[1, 'A'], [2, 'B'], [3, 'C']]);
Public Members
public get [Symbol.toStringTag]: String: string source
String tag of this class
Example:
Object.prototype.toString.call(new TreeMap()); // "[object TreeMap]"
public set compareFunc source
Sets custom comparison function if key values are not of primitive types. Callback is a 3-way comparison function accepts two key values (lhs, rhs). It is expected to return +1 if the value of rhs is greater than lhs -1 if the value of rhs is less than lhs 0 if values are the same
Public Methods
public [Symbol.iterator](): JsIterator source
Forward ES6 iterator for all key-value pairs in ascending order of the keys. The same as entries() method
Example:
let map = new TreeMap([[1, 'A'], [2, 'B'], [3, 'C']]);
for (let [key,value] of map) {
console.log(`key: ${key}, value: ${value}`);
}
public backward(): JsReverseIterator source
ES6 reverse iterator for all key-value pairs in descending order of the keys.
Example:
let map = new TreeMap([[1, 'A'], [2, 'B'], [3, 'C']]);
for (let [key,value] of map.backwards()) {
console.log(`key: ${key}, value: ${value}`);
}
public begin(): Iterator source
Forward iterator to the first element
Example:
let m = new TreeMap();
...
for (let it = m.begin(); !it.equals(m.end()); it.next()) {
console.log(`key: ${it.key}, value: ${it.value}`);
}
public clear() source
Removes all key-value pairs.
Example:
let map = new TreeMap([[1, 'A'], [2, 'B'], [3, 'C']]);
map.clear();
console.log(map.size); // 0
public delete(key: *) source
Removes key-value pair with the specified key if such entry exists. Does nothing otherwise.
Params:
| Name | Type | Attribute | Description |
| key | * |
Example:
let map = new TreeMap([[1, 'A'], [2, 'B'], [3, 'C']]);
map.delete(2);
console.log(map.toString()); // {1:A,3:C}
public end(): Iterator source
Forward iterator to the element following the last element
Example:
let m = new TreeMap();
...
for (let it = m.begin(); !it.equals(m.end()); it.next()) {
console.log(`key: ${it.key}, value: ${it.value}`);
}
public entries(): JsIterator source
Forward ES6 iterator for all key-value pairs in ascending order of the keys.
Example:
let map = new TreeMap([[1, 'A'], [2, 'B'], [3, 'C']]);
for (let [key,value] of map.entries()) {
console.log(`key: ${key}, value: ${value}`);
}
public erase(iterator: Iterator) source
Removes key-value pair for the specified iterator.
Params:
| Name | Type | Attribute | Description |
| iterator | Iterator |
Example:
let map = new TreeMap([[1, 'A'], [2, 'B'], [3, 'C']]);
let it = map.find(2);
it.prev();
map.erase(it); // removes a node with key 1
console.log(map.toString()); // {2:B,3:C}
public find(key: *): Iterator source
Finds an element with key equivalent to the specified one. If such key does not exist end() iterator is returned.
Params:
| Name | Type | Attribute | Description |
| key | * |
Example:
let m = new TreeMap([[1, 'A'], [2, 'B'], [3, 'C']]);
...
let it = m.find(1);
if (!it.equals(m.end())) {
console.log(`key: ${it.key}, value: ${it.value}`); // 1, 'A'
}
public first(): * source
Return:
| * | first key/value pair of the container, or undefined if container is empty |
Example:
let m = new TreeMap([[1, 'A'], [2, 'B'], [3, 'C']]);
let first = m.first();
if (first) {
let key = first[0]; // 1
let value = first[1]; // 'A'
}
public forEach(callback: *) source
Iterates all key-value pairs using a callback in ascending order of the keys. Note that ES6 specifies the order of key value parameters in the callback differently from for-of loop.
Params:
| Name | Type | Attribute | Description |
| callback | * |
Example:
let map = new TreeMap([[1, 'A'], [2, 'B'], [3, 'C']]);
map.forEach(function(value, key, container) {
console.log(`key: ${key}, value: ${value}`);
});
public get(key: *): * source
Finds value associated with the specified key. If specified key does not exist then undefined is returned.
Params:
| Name | Type | Attribute | Description |
| key | * | a value of any type that can be compared with a key |
Return:
| * |
Example:
let map = new TreeMap([[1, 'A'], [2, 'B'], [3, 'C']]);
let v = map.get(3); // 'C'
* let v = map.get(4); // returns undefined
public has(key: *): Boolean source
A boolean indicator whether map contains a key-value pair with the specified key
Params:
| Name | Type | Attribute | Description |
| key | * | a value of any type that can be compared with a key |
Example:
let map = new TreeMap([[1, 'A'], [2, 'B'], [3, 'C']]);
let b = map.get(3); // true
public insertOrReplace(key: *, value: *): InsertionResult source
Adds key-value pair if such key does not exist in the map. Replaces value if such key exists
Params:
| Name | Type | Attribute | Description |
| key | * | ||
| value | * |
Example:
let m = new TreeMap();
let res = m.insertOrReplace(1, 'A');
if (res.wasInserted) {
console.log(`Inserted ${res.iterator.value}`); // prints A
}
res = m.insertOrReplace(1, 'B') // replaces value on the existing node
if (res.wasInserted) {
console.log(`Inserted ${res.iterator.key}`); // prints B
}
public insertUnique(key: *, value: *): InsertionResult source
Adds key-value pair if such key does not exist in the map
Params:
| Name | Type | Attribute | Description |
| key | * | ||
| value | * |
Example:
let m = new TreeMap();
let res = m.insertUnique(1, 'A');
if (res.wasInserted) {
console.log(`Inserted ${res.iterator.value}`); // prints A
}
res = m.insertUnique(1, 'B') // this step has no effect on the map
if (res.wasInserted) {
console.log(`Inserted ${res.iterator.key}`); // not executed
}
public keys(): JsIterator source
Forward ES6 iterator for all keys in ascending order of the keys.
Example:
// iterate all keys
let map = new TreeMap([[1, 'A'], [2, 'B'], [3, 'C']]);
for (let k of map.keys()) {
console.log(k); // 1, 2, 3
}
// iterate all keys in reverse order
let map = new TreeMap([[1, 'A'], [2, 'B'], [3, 'C']]);
for (let k of map.keys().backward()) {
console.log(k); // 3, 2, 1
}
public last(): * source
Return:
| * | last key/value pair of the container, or undefined if container is empty |
Example:
let m = new TreeMap([[1, 'A'], [2, 'B'], [3, 'C']]);
let last = m.last();
if (last) {
let key = last[0]; // 3
let value = last[1]; // 'C'
}
public lowerBound(key: *): Iterator source
Iterator pointing to the first element that is not less than specified key. If no such element is found, see end() iterator is returned.
Params:
| Name | Type | Attribute | Description |
| key | * |
Example:
let m = new TreeMap();
... // add key-value pairs., using numbers as keys
// iterate through all key-value pairs with keys between 0 and 50 inclusive
let from = m.lowerBound(0);
let to = m.upperBound(50);
let it = from;
while (!it.equals(to)) {
console.log(it.key);
it.next();
}
let m = new TreeMap();
... // add key-value pairs., using numbers as keys
// iterate through all key-value pairs with keys between 0 and 50 inclusive in reverse order
let from = new ReverseIterator(m.upperBound(50));
let to = new ReverseIterator(m.lowerBound(0));
let it = from;
while (!it.equals(to)) {
console.log(it.key);
it.next();
}
public rbegin(): ReverseIterator source
Reverse iterator to the last element.
Example:
let m = new TreeMap();
...
for (let it = m.rbegin(); !it.equals(m.rend()); it.next()) {
console.log(`key: ${it.key}, value: ${it.value}`);
}
public rend(): ReverseIterator source
Reverse iterator pointing to before the first element.
Example:
let m = new TreeMap();
...
for (let it = m.rbegin(); !it.equals(m.rend()); it.next()) {
console.log(`key: ${it.key}, value: ${it.value}`);
}
public set(key: *, value: *) source
Adds or updates key-value pair to the map.
Params:
| Name | Type | Attribute | Description |
| key | * | ||
| value | * |
Example:
let map = new TreeMap();
map.set(1, 'A');
public toString(): String source
Serializes contents of the map in the form {key1:value1,key2:value2,...}
public upperBound(key: *): Iterator source
Iterator pointing to the first element that is greater than key. If no such element is found end() iterator is returned.
Params:
| Name | Type | Attribute | Description |
| key | * |
Example:
let m = new TreeMap();
... // add key-value pairs., using numbers as keys
// iterate through all key-value pairs with keys between 0 and 50 inclusive
let from = m.lowerBound(0);
let to = m.upperBound(50);
let it = from;
while (!it.equals(to)) {
console.log(it.key);
it.next();
}
let m = new TreeMap();
... // add key-value pairs., using numbers as keys
// iterate through all key-value pairs with keys between 0 and 50 inclusive in reverse order
let from = new ReverseIterator(m.upperBound(50));
let to = new ReverseIterator(m.lowerBound(0));
let it = from;
while (!it.equals(to)) {
console.log(it.key);
it.next();
}
public values(): JsITerator source
Forward ES6 iterator for all values in ascending order of the keys.
Return:
| JsITerator |
Example:
// iterate all values
let map = new TreeMap([[1, 'A'], [2, 'B'], [3, 'C']]);
for (let v of map.values()) {
console.log(v); // 'A', 'B', 'C'
}
// iterate all values in reverse order
let map = new TreeMap([[1, 'A'], [2, 'B'], [3, 'C']]);
for (let v of map.values().backward()) {
console.log(v); // 'C', 'B', 'A'
}


When the user is about to take a drastic action that shouldn't be taken accidentally, inform the user of the consequence of taking this action in a flyout to provide an opportunity for the user to avoid completing the action.
Click the 'Buy' button to launch the purchase confirmation flyout.


Search
Reset
Logout
Red
Blue
Mobile
Accessory
Shopping cart
Click on the items to remove them from the cart.


The sight of the tumblers restored Bob Sawyer to a degree of equanimity which he had not possessed since his interview with his landlady. His face brightened up, and he began to feel quite convivial.
Thus much I thought proper to tell you in relation to yourself, and to the trust I reposed in you.
Just then her head struck against the roof of the hall: in fact she was now more than nine feet high, and she at once took up the little golden key and hurried off to the garden door.
This sounded a very good reason, and Alice was quite pleased to know it. 'I never thought of that before!' she said.
This I have produced as a scantling of Jack’s great eloquence and the force of his reasoning upon such abstruse matters.
There have not been any since we have lived here, said my mother.
We thought - Mr. Copperfield thought - it was quite a large rookery; but the nests were very old ones, and the birds have deserted them a long while.
Now the races of these two have been for some ages utterly extinct, and besides to discourse any further of them would not be at all to my purpose.
Thus much I thought proper to tell you in relation to yourself, and to the trust I reposed in you.
landing screen
newprovidence
or download from
Thus much I thought proper to tell you in
relation to yourself, and to the trust I
reposed in you.


dumplog.py [options] log_directory
Dumps log files in text format to stdout. Each set of fields will have a
column header displayed. For sparse data this will mean the output will
contain multiple column headers each time the sparse data appears and
disappears.
- log_directory is the directory containing CoreData log files. All .fll
files in this directory will be merged. Note that the folder must
contain exactly a one set of faceLAB/DSS logfiles.
Example:
dumplog.py c:\test_data
Options:
-h, --help show this help message and exit
extractlog.py [options] log_directory output_directory
Extracts a portion of log files to binary files under the directory
specified by output_directory. The portion can be specified
using start and end frame numbers. If the --with-annotation-id switch is supplied
then only frames with an annotation id are extracted.
- log_directory is the directory containing CoreData log files. All .fll
files in this directory will be merged. Note that the folder must
contain exactly a one set of faceLAB/DSS logfiles.
- output_directory is the the name of a directory to write log files to.
Example:
extractlog.py --start-framenum 100 --end-framenum 199 c:\test_data c:\test_data_100_199
Will extract all frames in the range 100 to 199 inclusive from the log files in
c:\test_data to log files in the existing directory c:\test_data_100_199
Options:
-h, --help show this help message and exit
-s START_FRAME_NUM, --start-framenum=START_FRAME_NUM
first frame number to extract
-e END_FRAME_NUM, --end-framenum=END_FRAME_NUM
last frame number to extract
gazeintersection_with_screen.py [options] log_directory [label]
Prints to stdout the frame number and pixel x and y coordinates for the frames that the
subject's gaze intersected the world item with the supplied label.
- log_directory is the directory containing CoreData log files. All .fll
files in this directory will be merged. Note that the folder must
contain exactly a one set of faceLAB/DSS logfiles.
- label is the world item label. If not supplied then the list of world item
labels that have a pixel gaze intersection are printed.
Example 1:
gazeintersection_with_screen.py c:\test_data
A list of world item labels with gaze intersections in pixel co-ordinates
is printed to stdout.
Example 2:
gazeintersection_with_screen.py c:\test_data "Plane (1)"
A CSV list of framenumber, pixel x and pixel y positions is printed to stdout.
Options:
-h, --help show this help message and exit


{% extends 'base.html' %} {% load django_bootstrap5%} {% load bootstrap4 %} {% load static %} {% block content %}
We are requesting for your support towards the {{fundraiser.title}} fundraiser, kindly assist where you can
Fundraiser Decription :
{{fundraiser.description}}
Fundraiser Date :
{{fundraiser.event_date}}
Fundraiser was published on :
{{fundraiser.date_created}}


Correct Descriptive Analysis after processing Outliers
Incorrect Descriptive Analysis
Twitter: @apuravchauhan
LinkedIn: apuravchauhan


| Package | Description |
|---|---|
| com.versionone.apiclient | |
| com.versionone.apiclient.exceptions | |
| com.versionone.apiclient.interfaces |
| Modifier and Type | Method and Description |
|---|---|
protected OutputStream |
V1Connector.beginRequest(String path,
String contentType) |
OutputStream |
V1APIConnector.beginRequest(String path,
String contentType)
Deprecated.
Beginning HTTP POST request to the server.
|
static Document |
XMLHandler.buildDocument(Reader reader,
String url) |
protected InputStream |
V1Connector.endRequest(String path) |
InputStream |
V1APIConnector.endRequest(String path)
Deprecated.
Complete the HTTP request and get a response.
|
protected InputStream |
V1Connector.getAttachment(String path) |
InputStream |
V1APIConnector.getAttachment(String attachmentKey)
Deprecated.
|
InputStream |
FileAPIConnector.getAttachment(String attachmentKey) |
String |
V1Configuration.getCapacityPlanning()
Gets capacity planning setting.
|
protected Reader |
V1Connector.getData() |
Reader |
V1APIConnector.getData()
Deprecated.
Read data from the root of the connection.
|
Reader |
FileAPIConnector.getData() |
protected Reader |
V1Connector.getData(String path) |
Reader |
V1APIConnector.getData(String path)
Deprecated.
Read data from the path provided.
|
Reader |
FileAPIConnector.getData(String path) |
IV1Configuration.TrackingLevel |
V1Configuration.getDefectTrackingLevel()
Gets level of Defect tracking.
|
Map<String,String> |
Services.getLocalization(ArrayList<IAttributeDefinition> attributes) |
Oid |
Services.getLoggedIn()
Get the Oid of the current logged in user
|
int |
V1Configuration.getMaxAttachmentSize()
Gets maximum size of attachment file.
|
InputStream |
Attachments.getReader(String key)
Deprecated.
Getting reader
|
IV1Configuration.TrackingLevel |
V1Configuration.getStoryTrackingLevel()
Gets level of Story tracking.
|
OutputStream |
Attachments.getWriter(String key,
String contentType)
Deprecated.
Getting writer
|
boolean |
V1Configuration.isEffortTracking()
Gets EffortTracking
|
boolean |
RequiredFieldValidator.isRequired(IAssetType assetType,
String attributeName)
Check whether the attribute corresponding to the attributeName is required in current VersionOne server setup.
|
boolean |
RequiredFieldValidator.isRequired(IAttributeDefinition definition)
Check whether the provided attribute is required in current VersionOne server setup.
|
QueryResult |
Services.retrieve(Query query)
Query VersionOne
|
void |
Services.save(Asset asset)
Save an asset with no comment
|
void |
Services.save(Asset asset,
String comment)
Save an asset with comment
|
protected Reader |
V1Connector.sendData(String path,
Object data) |
Reader |
V1APIConnector.sendData(String path,
String data)
Deprecated.
Send data to the path.
|
Reader |
FileAPIConnector.sendData(String path,
String data) |
void |
Attachments.setWriter(String key)
Deprecated.
Setting Writer
|
List<IAttributeDefinition> |
RequiredFieldValidator.validate(Asset asset)
Validate all available Asset attributes.
|
Map<Asset,List<IAttributeDefinition>> |
RequiredFieldValidator.validate(Asset[] assets)
Validate collection of Assets.
|
boolean |
RequiredFieldValidator.validate(Asset asset,
IAttributeDefinition attributeDefinition)
Validate single Asset attribute.
|
| Modifier and Type | Class and Description |
|---|---|
class |
SecurityException
Exception thrown when the APIClient encounters a security exception (401)
|
| Modifier and Type | Method and Description |
|---|---|
OutputStream |
IAPIConnector.beginRequest(String path,
String contentType)
Deprecated.
Creating stream for writing data
|
InputStream |
IAPIConnector.endRequest(String path)
Deprecated.
Getting response from request
|
InputStream |
IAPIConnector.getAttachment(String attachmentKey)
Deprecated.
Read data from the path provided
Note: Caller is responsible for closing the returned stream
|
Reader |
IAPIConnector.getData()
Deprecated.
Read data from the root of the connection
Note: Caller is responsible for closing the returned stream
|
Reader |
IAPIConnector.getData(String path)
Deprecated.
Read data from the path provided
Note: Caller is responsible for closing the returned stream
|
IV1Configuration.TrackingLevel |
IV1Configuration.getDefectTrackingLevel()
Gets level of Defect tracking.
|
Map<String,String> |
IServices.getLocalization(ArrayList<IAttributeDefinition> attributes)
Returns a Map of localized values.
|
Oid |
IServices.getLoggedIn()
Determines the OID of the currently logged in user.
|
int |
IV1Configuration.getMaxAttachmentSize()
Gets maximum size of attachment file.
|
InputStream |
IAttachments.getReader(String key)
Deprecated.
Getting reader
|
IV1Configuration.TrackingLevel |
IV1Configuration.getStoryTrackingLevel()
Gets level of Story tracking.
|
OutputStream |
IAttachments.getWriter(String key,
String contentType)
Deprecated.
Getting writer
|
boolean |
IV1Configuration.isEffortTracking()
Gets EffortTracking
|
QueryResult |
IServices.retrieve(Query query)
Executes a query and returns the results.
|
void |
IServices.save(Asset asset)
Persists changes to an asset without a comment.
|
void |
IServices.save(Asset asset,
String comment)
Persists changes to as asset with a comment.
|
Reader |
IAPIConnector.sendData(String path,
String data)
Deprecated.
Send data to the path
Note: Caller is responsible for closing the returned stream
|
void |
IAttachments.setWriter(String key)
Deprecated.
Setting Writer
|
Copyright © 2016 VersionOne, Inc.. All rights reserved.


Games
Sporshmallow
With CMU's Game Creation Society. A Smash-like, sports-centric, fighting minigame for the Carnegie Mellon University Game Creation Society's cabinet. While I was involved with all aspects of the game, I was primarily responsible for animating the art and programming attack and defense mechanics. This was a fun collaboration and a good introduction to making video games.
Animation/Video Editing
Burnt Sugar (2022)
A retelling of classic fairytale Hansel and Gretel using stock images. Created using Adobe After Effects for (Im)Possible Worlds: 2D Animation, Motion Graphics and Visual Effects.
PIE (2022)
An explainer video for the Principle of Inclusion-Exclusion in mathematics. Created using Adobe After Effects for (Im)Possible Worlds: 2D Animation, Motion Graphics and Visual Effects.
School of Computer Science (2022)
An exploration of some of the notable historical events and inventions of Carnegie Mellon University's School of Computer Science. Created using Adobe After Effects and Autodesk Maya for (Im)Possible Worlds: 2D Animation, Motion Graphics and Visual Effects.
After the Door Closes (2020)
A chair puts a book away in a bookshelf. Created using Autodesk Maya. For Introduction to 3D Animation, with attention to rigging, animation, and some sound design.
Letter SycoraX (2018)
For AP Literature and Composition. In this video adaptation of an excerpt from Kamau Brathwaite’s Letter Sycorax, I used an internet chatroom and a proliferation of mosaic images taken from anime to visually depict Caliban’s spirit journey in a way that illustrates the depth of his emotions and resolve to develop a definitive voice. (See original post here)
Pixel (2016)
Pixel, the Stanford OHS mascot, doing a backflip. Created using Autodesk Maya. This project was my introduction to animation, with attention to bending of the legs and arms as well as the physical mechanics of the jump itself.
Programming
Dravet Shirt
A biometric shirt that uses LEDs to indicate temperature and physical activity level for a Dravet patient in real time. Currently, we have designed and fabricated working prototypes using Arduino, Adafruit, and Particle IoT boards and are testing a feature that writes the recorded temperature/activity information to a ThingSpeak channel.
Interactive Visualizations
For Saving Humanity with Computational Models. Interactive visualization projects, including a COVID-19 graph page that uses published CDC data. Also collaborated on a visualization of solutions to the 8 Queens problem.
Effects and Transitions
2D video transitions and effects created in Java for use in my anime music videos (AMVs). Programming my own transitions allowed me to better tailor the video to my specific needs and gave me new insights into video editing and image processing. (GitHub)


What would your favourite class anywhere in the C++ standard be?
Mine's probably stringstream, as I just learned about that and am finding it quite useful.
My favorite is std::valarray
-- expression templates made easy!
std::exception (seriously).
To be fair, I rarely use the standard classes.
Wazzak
Last edited on
If you're like I am, you abuse std::vector to read binary files.
Whereas we should have been provided memory mapped file libraries, a long time ago.
Boost has portable memory mapped file I/Ô, so there is a chance.


My favorite things
List of my favorite foods:
- Veggie patty sandwich
- Dosa
- Pani puri
List of my favorite movies:
- Lord of the rings
- Blood diamond
- Iron man
List of my favorite fruits:
- Berries
- Cranberries
- Strawberries
- Cherries
- Pomes
Description of my 2 favorite sports:
- Football
-
Football is a team sport played between two teams of eleven players each. It is a ball game played on a rectangular grass field with a goal at each end. The objective of the game is to score by maneuvering the ball into the opposing goal. The winner is the team which has scored most goals at the end of the match.
- Basketball
-
Basketball is a sport played by two teams of five players on a rectangular court. The objective is to shoot a ball through a hoop 18 inches (46 cm) in diameter and 10 feet (3.048 m) high mounted to a backboard at each end. Basketball is one of the world's most popular and widely viewed sports.


--- layout: data_model title: CIQIdentity3.0InstanceType this_version: 1.0.1 ---
The CIQIdentity3.0InstanceType provides an extension to the IdentityStructureAbstractType which imports and leverages version 3.0 of the OASIS CIQ-PIL schema for structured characterization of Identities.
| Field Name | Type | Description |
|---|---|---|
| @idoptional | QName |
Specifies a unique ID for this Identity. |
| @idrefoptional | QName |
Specifies a reference to a unique ID defined elsewhere. |
| Name0..1 | string |
The Name field allows for expression of an identity through a simple name. |
| Related_Identities0..1 | RelatedIdentitiesType |
The Related_Identities field identifies other entity Identities related to this entity Identity. |
| Specification1..1 | STIXCIQIdentity3.0Type |
The Specification field contains the structured characterization of an Identity utilizing the CIQ-PIL schema. |
| Role0..n | string |
The Role field specifies a relevant role played by this entity. |


|
Simbody
3.5
|
Results returned by the handleEvent() method. More...
Public Types | |
| enum | Status { Invalid = -1, Succeeded = 0, ShouldTerminate = 1, Failed = 2 } |
Public Member Functions | |
| HandleEventsResults () | |
| HandleEventsResults & | clear () |
| Restore this object to its default-constructed state, with the return status set to Invalid. More... | |
| bool | isValid () const |
| Status | getExitStatus () const |
| bool | getAnyChangeMade () const |
| Stage | getLowestModifiedStage () const |
| const String & | getMessage () const |
| HandleEventsResults & | setExitStatus (Status status) |
| HandleEventsResults & | setAnyChangeMade (bool changeMade) |
| HandleEventsResults & | setLowestModifiedStage (Stage stage) |
| HandleEventsResults & | setMessage (const String &message) |
Results returned by the handleEvent() method.
In addition to return status, this records the lowest stage in the state that was modified by the handler. The caller can use this to determine how much reinitialization is required before time stepping can proceed.
|
inline |
|
inline |
Restore this object to its default-constructed state, with the return status set to Invalid.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |


The line-height property sets the height between lines of text. The line height of this paragraph is specified using number.
line-height


---
start: 2018-09-05 18:30
edition: 42
participate: "https://www.eventbrite.com/e/design-lean-agile-thinking-tickets-49204059667"
talk: "https://goo.gl/forms/m9aPSXemMLPBj35k1"
subheader: "Design, Lean Agile Thinking"
subnote: ""
agenda:
-
time: "6:30 pm - 7:30 pm"
title: "Design, Lean Agile Thinking"
subtitle: "For building the successful products or offering the services to a customer often we end up with the discussions on what practices should we adopt. The recent buzz words in this space are being Design Thinking, Lean Thinking and Agile Thinking. But there are always confusions, contradictions and long unending discussions on what we should adapt. This session aims to address this key question.
The session will discuss about each thinking process and what offering do they provide in addressing the problems/solutions that we build for the customers. Case studies will be presented and discussed to understand the benefits of each thinking and how it enabled to turn the failures to success."
speaker_profile: "By: Chaitanya Muppala"
image: "chaitanya.jpg"
-
time: "7:30 pm - 7:45 pm"
title: "Break & Networking"
-
time: "7:45 pm - 8:30 pm"
title: "Continued..."
---


Guidance
Types of apprenticeships that you can apply for in the live events and promotion sector.
This apprenticeship involves everything to do with putting on a show or event from promoting the event to staging it.
You’ll train in administrative and/or support roles including stage/venue crew support, event booking support and booking agent assistants on the intermediate level apprenticeship.
You’ll train as music/events promotions assistant or events assistant, events/entertainment officer, venue and staff crew on the advanced level apprenticeship.
There are 2 types of live events and promotion apprenticeships.
You can become an apprentice in England if you’re:
Published: 12 April 2012


This group of islands lie about 120NM off the coast, due north of Caracus. Much of it is a National park and its pristine coral reefs attract many international visitors. It is a nice place for cruising boats to stop on passage from the Windward Islands to the ABC-Islands.
Gran Roque, the capital, is the most easily accessible spot for tourists from the mainland. Consequently, all types of planes come and go at all hours, so it is not the totally quiet, remote island you might have expected.
However, other parts of the group are rarely visited and provide many quiet and peaceful anchorages.
Yachts should take care visiting here at this troubled time in Venezuela history (see comments at bottom of page).
Position 11°57′00″N, 66°40′36″W (Gran Roque)
This is not an official port of entry, but yachts may visit here for a maximum of 15 days if not visiting the mainland. Clearance must be completed (both in and out) at Roque Grande. Some yachts try to prolong their stay by taking several days to reach Roque Grande where one has to do the clearance and also take time on departure after outward clearance. Take note that the penalty for illegally entering a country can be very tough.
Clearing in
To clear in, the skipper must visit 4 authorities located in 5 different locations in a specific order:
1. First go to the Immigration (SAIME) office, near the airport. They give you a bank account number, and you have to go to the bank and deposit the Immigration fee (see below).
2. Go to the Coast Guard (Guardacosta) - located in the trailer, next to the National Park office, near the airport. No cost here, just paperwork.
3. Then to the National Park office (Inparques or Parque Nacional), who will give you information and a map and a document giving you special permission to visit the half closed areas (areas marked PM on the map) of the national reserve. Here you also pay your National Park entry fees (see below), payable in cash, no cards or dollars accepted.
You may also be asked to visit the National Guard (Guarda Nacional) - a white building on the seafront in the middle of the village, and the Los Roques Authority (Authoridad Unica) - white building in the middle of the village, no signs on the outside.
Once you have visited all offices and have paid your park entry fees, you are legitimately checked into Los Roques.
Using the services of an agent could be useful and make clearing in alot easier. See details for cruiser-friendly agent Alejandro Linares below.
Clearance Fees
Port Clearance in and out: $2 per ft.
Customs and Immigration (SAIME) tax: $40 per person
Foreign Flag Vessel’s Venezuelan Visa: $2.50 per ft.
Anchoring/ Mooring and cruising permit: $7 Per ft.
The cruising permit is issued for 7 days, which is the average stay of most vessels, however the National Parks allow an additional 7 days free of charge. Once issued, a cruising permit is valid for 15 days and also covers the Archipelago Las Aves, which is part of Los Roques territory.
This cruising permit also qualifies each person onboard the following services at no cost:
- Ambulance/Rescue Power boat 24-hours
- Free health care in case of accidents and injuries, including medicines and dental for any nationality in a brand new hospital equipped with the latest technology available.
Park Fees
Inform the Park official where you intend to go, as special permission is needed for some areas of the Park and some areas are prohibited.
National Park Fee: $45 per person
There is a small fee for a diving permit if wishing to dive.
No spear fishing is allowed.
Clearing Out
When leaving Los Roques you have to return to El Gran Roque and clear out with the Coast Guard on the north side of town to get your zarpe. Finally vist Immigration to get your passports stamped - they will not stamp your passports without the zarpe.
Last updated November 2014.
At Gran Roque, anchor off the western end of the village to avoid being in the way of landing planes; also when approaching be aware that aircraft fly extremely low over the beach to reach the runway.
The anchorage is rolly and windy at times and the holding not always the best.
The Francisqui (Francis Cay) anchorage - just east of G. Roque - is a lovely, large and well protected anchorage from all directions. There is a small beach bar/restaurant in the NE corner of the anchorage which serves excellent food. Only 1-2 miles from G. Roque.
Nordisqui (Nordis Cay) anchorage is not as scenic and not as well protected as many of the others. However, there is a good anchoring basin.
Carenero anchorage is very well protected and a favorite stop for fishing boats from whom fish can be purchased.
A quiet place to anchor is tucked in behind the reef at the southernmost tip near to Sebastapol.
The Herradurra anchorage at Tortuga is the most scenic and protected one mentioned in the Doyle Guide and excellent lobsters can be purchased from the fishermen's settlement there.
The west side of Isla Pelona is a calm anchorage and allows visiting the turtle research centre.
Cruisers recommend the anchorage at the Island of Crasqui (Cras Cay). The bay is protected by the shallows on the northern side and smaller islands on the south. There is a stunning beach and superb snorkelling.
With all the anchorages, the sketchs and charts provided by various sources should only be reguarded as a rough guide. Eyeball navigation in the correct light conditions is essential. Even official charts cannot be regarded as accurate.
Last updated August 2014.


Computer Science Mentors | Junior Mentor, Content Mentor Spring 2019 - Now
For the past three semesters, I have been a part of Computer Science Mentors (CSM), an organization that teaches introductory EECS courses at UC Berkeley. I have taught discrete mathematics and probability theory (CS 70) for two semesters, and computational structures in data science (CS 88). Sections are taught in small groups every week for two hours to help students excel in their classes.
Berkeley EECS Department | Course Reader, Teaching Assistant Fall 2019 - Now
During Fall 2019 and Spring 2020, I was a course reader for CS70: Discrete Mathematics and Probability Theory, assisting students in office hours, creating homework rubrics, and grading/providing student feedback on assignments. This summer, I will be teaching CS70 as a uGSI. Check out my teaching materials here
Berkeley Department of Data Science | Course Connector Assistant Fall 2019
During Fall 2019, I was a connector assistant for professor Conrad Miller in UGBA88: Data and Decisions, assisting students on assignments and content during class, holding office hours, and creating lab debriefs.
Sigma Alpha Epsilon Beta Chapter | Member Spring 2020 - Now
Member of a social fraternity at UC Berkeley


--- ---
|
TGUI
0.8-dev
|
Edit box widget. More...
#include <TGUI/Widgets/EditBox.hpp>
Classes | |
| struct | Validator |
| Predefined input validators. More... | |
Public Types | |
| typedef std::shared_ptr< EditBox > | Ptr |
| Shared widget pointer. | |
| typedef std::shared_ptr< const EditBox > | ConstPtr |
| Shared constant widget pointer. | |
| Public Types inherited from tgui::ClickableWidget | |
| typedef std::shared_ptr< ClickableWidget > | Ptr |
| Shared widget pointer. | |
| typedef std::shared_ptr< const ClickableWidget > | ConstPtr |
| Shared constant widget pointer. | |
| Public Types inherited from tgui::Widget | |
| typedef std::shared_ptr< Widget > | Ptr |
| Shared widget pointer. | |
| typedef std::shared_ptr< const Widget > | ConstPtr |
| Shared constant widget pointer. | |
Public Member Functions | |
| EditBoxRenderer * | getSharedRenderer () |
| Returns the renderer, which gives access to functions that determine how the widget is displayed. More... | |
| EditBoxRenderer * | getRenderer () |
| Returns the renderer, which gives access to functions that determine how the widget is displayed. More... | |
| void | setSize (const Layout2d &size) override |
| Changes the size of the edit box. More... | |
| void | setEnabled (bool enabled) override |
| Enables or disables the widget. More... | |
| void | setText (const sf::String &text) |
| Changes the text of the editbox. More... | |
| const sf::String & | getText () const |
| Returns the text inside the edit box. This text is not affected by the password character. More... | |
| void | setDefaultText (const sf::String &text) |
| Changes the default text of the editbox. This is the text drawn when the edit box is empty. More... | |
| const sf::String & | getDefaultText () const |
| Returns the default text of the edit box. This is the text drawn when the edit box is empty. More... | |
| void | selectText (std::size_t start=0, std::size_t length=sf::String::InvalidPos) |
| Selects text in the edit box. More... | |
| sf::String | getSelectedText () const |
| Returns the text that you currently have selected. This text is not affected by the password character. More... | |
| void | setTextSize (unsigned int textSize) |
| Changes the character size of the text. More... | |
| unsigned int | getTextSize () const |
| Returns the character size of the text. More... | |
| void | setPasswordCharacter (char passwordChar) |
| Sets a password character. More... | |
| char | getPasswordCharacter () const |
| Returns the password character. More... | |
| void | setMaximumCharacters (unsigned int maxChars) |
| Changes the character limit. More... | |
| unsigned int | getMaximumCharacters () const |
| Returns the character limit. More... | |
| void | setAlignment (Alignment alignment) |
| Changes the text alignment. More... | |
| Alignment | getAlignment () const |
| Gets the current text alignment. More... | |
| void | limitTextWidth (bool limitWidth=true) |
| Should the text width be limited or should you be able to type even if the edit box is full? More... | |
| bool | isTextWidthLimited () const |
| Checks if the text width is limited to the size of the edit box. More... | |
| void | setReadOnly (bool readOnly=true) |
| Makes the edit box read-only or make it writable again. More... | |
| bool | isReadOnly () const |
| Checks if the edit box read-only or writable. More... | |
| void | setCaretPosition (std::size_t charactersBeforeCaret) |
| Sets the blinking caret to after a specific character. More... | |
| std::size_t | getCaretPosition () const |
| Returns after which character the blinking cursor is currently located. More... | |
| bool | setInputValidator (const std::string ®ex=".*") |
| Defines how the text input should look like. More... | |
| const std::string & | getInputValidator () const |
| Returns the regex to which the text is matched. More... | |
| void | setSuffix (const sf::String &suffix) |
| Places a suffix at the right side of the edit box. More... | |
| const sf::String & | getSuffix () const |
| Returns the suffix currently displayed on the right side of the edit box. More... | |
| void | setFocused (bool focused) override |
| Focus or unfocus the widget. More... | |
| bool | mouseOnWidget (Vector2f pos) const override |
| Returns whether the mouse position (which is relative to the parent widget) lies on top of the widget. More... | |
| void | draw (sf::RenderTarget &target, sf::RenderStates states) const override |
| Draw the widget to a render target. More... | |
| Public Member Functions inherited from tgui::ClickableWidget | |
| ClickableWidget () | |
| Default constructor. | |
| Public Member Functions inherited from tgui::Widget | |
| Widget () | |
| Default constructor. | |
| Widget (const Widget &) | |
| Copy constructor. | |
| Widget (Widget &&) | |
| Move constructor. | |
| ~Widget () | |
| Destructor. | |
| Widget & | operator= (const Widget &) |
| Overload of copy assignment operator. | |
| Widget & | operator= (Widget &&) |
| Move assignment. | |
| void | setRenderer (std::shared_ptr< RendererData > rendererData) |
| Sets a new renderer for the widget. The renderer determines how the widget looks. More... | |
| WidgetRenderer * | getSharedRenderer () |
| Returns the renderer, which gives access to functions that determine how the widget is displayed. More... | |
| WidgetRenderer * | getRenderer () |
| Returns the renderer, which gives access to functions that determine how the widget is displayed. More... | |
| virtual void | setPosition (const Layout2d &position) |
| sets the position of the widget More... | |
| void | setPosition (Layout x, Layout y) |
| Sets the position of the widget. More... | |
| Vector2f | getPosition () const |
| Gets the position of the widget. More... | |
| void | setSize (Layout width, Layout height) |
| Changes the size of the widget. More... | |
| Vector2f | getSize () const |
| Returns the size of the widget. More... | |
| virtual Vector2f | getFullSize () const |
| Returns the entire size that the widget is using. More... | |
| virtual Vector2f | getAbsolutePosition () const |
| Get the absolute position of the widget instead of the relative position to its parent. More... | |
| virtual Vector2f | getWidgetOffset () const |
| Returns the distance between the position where the widget is drawn and where the widget is placed. More... | |
| virtual void | showWithEffect (ShowAnimationType type, sf::Time duration) |
| Shows the widget by introducing it with an animation. More... | |
| virtual void | hideWithEffect (ShowAnimationType type, sf::Time duration) |
| Hides the widget by making it leave with an animation. More... | |
| virtual void | setVisible (bool visible) |
| Shows or hides a widget. More... | |
| bool | isVisible () const |
| Returns true when the widget is visible. More... | |
| bool | isEnabled () const |
| Returns true when the widget is enabled. More... | |
| bool | isFocused () const |
| Returns true when the widget is focused and false otherwise. More... | |
| const std::string & | getWidgetType () const |
| Returns the type of the widget. More... | |
| Container * | getParent () const |
| Returns a pointer to the parent widget. More... | |
| virtual void | moveToFront () |
| Places the widget before all other widgets. More... | |
| virtual void | moveToBack () |
| Places the widget behind all other widgets. More... | |
| void | setUserData (tgui::Any userData) |
| Stores some data into the widget. More... | |
| template<typename T > | |
| T | getUserData () const |
| Returns data stored in the widget. More... | |
| void | setInheritedFont (const Font &font) |
| Sets the font of the widget that is used when no font is set in the renderer. More... | |
| const Font & | getInheritedFont () const |
| Returns the font of the widget that is used when no font is set in the renderer. More... | |
| void | setInheritedOpacity (float opacity) |
| Sets the opacity of the widget that will be multiplied with the opacity set in the renderer. More... | |
| float | getInheritedOpacity () const |
| Returns the opacity of the widget that is multiplied with the opacity set in the renderer. More... | |
| void | setToolTip (Widget::Ptr toolTip) |
| Sets the tool tip that should be displayed when hovering over the widget. More... | |
| Widget::Ptr | getToolTip () const |
| Returns the tool tip that is displayed when hovering over the widget. More... | |
| virtual bool | canGainFocus () const |
| Returns whether the widget can gain focus. More... | |
| bool | isContainer () const |
| Returns whether the widget is a container widget or not. More... | |
| template<typename WidgetType > | |
| std::shared_ptr< const WidgetType > | cast () const |
| Downcast const widget. | |
| template<typename WidgetType > | |
| std::shared_ptr< WidgetType > | cast () |
| Downcast widget. | |
| Public Member Functions inherited from tgui::SignalWidgetBase | |
| template<typename Func , typename... Args, typename std::enable_if< std::is_convertible< Func, std::function< void(const Args &...)>>::value >::type * = nullptr> | |
| unsigned int | connect (std::string signalName, Func &&handler, const Args &...args) |
| Connects a signal handler that will be called when this signal is emitted. More... | |
| template<typename Func , typename... BoundArgs, typename std::enable_if< std::is_convertible< Func, std::function< void(const BoundArgs &..., std::shared_ptr< Widget >, const std::string &)>>::value >::type * = nullptr> | |
| unsigned int | connect (std::string signalName, Func &&handler, BoundArgs &&...args) |
| Connects a signal handler that will be called when this signal is emitted. More... | |
| template<typename Func , typename... BoundArgs, typename std::enable_if<!std::is_convertible< Func, std::function< void(const BoundArgs &...)>>::value &&!std::is_convertible< Func, std::function< void(const BoundArgs &..., std::shared_ptr< Widget >, const std::string &)>>::value >::type * = nullptr> | |
| unsigned int | connect (std::string signalName, Func &&handler, BoundArgs &&...args) |
| Connects a signal handler that will be called when this signal is emitted. More... | |
| template<typename Func , typename... BoundArgs> | |
| unsigned int | connect (std::initializer_list< std::string > signalNames, Func &&handler, BoundArgs &&...args) |
| Connect a signal handler to multiple signals. More... | |
| bool | disconnect (unsigned int id) |
| Disconnects a signal handler. More... | |
| void | disconnectAll (std::string signalName) |
| Disconnects all signal handler from a certain signal. More... | |
| void | disconnectAll () |
| Disconnects all signal handlers from signals. | |
Static Public Member Functions | |
| static EditBox::Ptr | create () |
| Creates a new edit box widget. More... | |
| static EditBox::Ptr | copy (EditBox::ConstPtr editBox) |
| Makes a copy of another edit box. More... | |
| Static Public Member Functions inherited from tgui::ClickableWidget | |
| static ClickableWidget::Ptr | create (Layout2d size={"100%","100%"}) |
| Creates a new clickable widget. More... | |
| static ClickableWidget::Ptr | copy (ClickableWidget::ConstPtr widget) |
| Makes a copy of another clickable widget. More... | |
Public Attributes | |
| SignalString | onTextChange = {"TextChanged"} |
| The text was changed. Optional parameter: new text. | |
| SignalString | onReturnKeyPress = {"ReturnKeyPressed"} |
| The return key was pressed. Optional parameter: text in the edit box. | |
| Public Attributes inherited from tgui::ClickableWidget | |
| SignalVector2f | onMousePress = {"MousePressed"} |
| The mouse went down on the widget. Optional parameter: mouse position relative to widget. | |
| SignalVector2f | onMouseRelease = {"MouseReleased"} |
| The mouse was released on top of the widget. Optional parameter: mouse position relative to widget. | |
| SignalVector2f | onClick = {"Clicked"} |
| The widget was clicked. Optional parameter: mouse position relative to widget. | |
| Public Attributes inherited from tgui::Widget | |
| SignalVector2f | onPositionChange = {"PositionChanged"} |
| The position of the widget changed. Optional parameter: new position. | |
| SignalVector2f | onSizeChange = {"SizeChanged"} |
| The size of the widget changed. Optional parameter: new size. | |
| Signal | onFocus = {"Focused"} |
| The widget was focused. | |
| Signal | onUnfocus = {"Unfocused"} |
| The widget was unfocused. | |
| Signal | onMouseEnter = {"MouseEntered"} |
| The mouse entered the widget. | |
| Signal | onMouseLeave = {"MouseLeft"} |
| The mouse left the widget. | |
| SignalAnimation | onAnimationFinished = {"AnimationFinished"} |
| A show or hide animation finished. Optional parameters: animation type, new widget visibility or both. | |
Protected Member Functions | |
| Signal & | getSignal (std::string signalName) override |
| Retrieves a signal based on its name. More... | |
| void | rendererChanged (const std::string &property) override |
| Function called when one of the properties of the renderer is changed. More... | |
| std::unique_ptr< DataIO::Node > | save (SavingRenderersMap &renderers) const override |
| Saves the widget as a tree node in order to save it to a file. | |
| void | load (const std::unique_ptr< DataIO::Node > &node, const LoadingRenderersMap &renderers) override |
| Loads the widget from a tree of nodes. | |
| Widget::Ptr | clone () const override |
| Makes a copy of the widget if you don't know its exact type. More... | |
| Protected Member Functions inherited from tgui::Widget | |
| virtual void | mouseEnteredWidget () |
| This function is called when the mouse enters the widget. | |
| virtual void | mouseLeftWidget () |
| This function is called when the mouse leaves the widget. | |
Edit box widget.
An edit box is a single line input field. It has options like setting a password character or displaying a default text. If you are looking for something with multiple lines, word-wrap and a scrollbar then check out the TextBox class.
|
strong |
|
inlineoverrideprotectedvirtual |
Makes a copy of the widget if you don't know its exact type.
This function should only be used when you don't know the type of the widget. If you know what kind of widget you are copying, you should use the copy function.
Reimplemented from tgui::ClickableWidget.
|
static |
Makes a copy of another edit box.
| editBox | The other edit box |
|
static |
Creates a new edit box widget.
|
overridevirtual |
Draw the widget to a render target.
| target | Render target to draw to |
| states | Current render states |
Reimplemented from tgui::ClickableWidget.
| Alignment tgui::EditBox::getAlignment | ( | ) | const |
Gets the current text alignment.
| std::size_t tgui::EditBox::getCaretPosition | ( | ) | const |
Returns after which character the blinking cursor is currently located.
| const sf::String& tgui::EditBox::getDefaultText | ( | ) | const |
Returns the default text of the edit box. This is the text drawn when the edit box is empty.
This text is not affected by the password character.
| const std::string& tgui::EditBox::getInputValidator | ( | ) | const |
Returns the regex to which the text is matched.
| unsigned int tgui::EditBox::getMaximumCharacters | ( | ) | const |
Returns the character limit.
There is no character limit by default.
| char tgui::EditBox::getPasswordCharacter | ( | ) | const |
Returns the password character.
| EditBoxRenderer* tgui::EditBox::getRenderer | ( | ) |
Returns the renderer, which gives access to functions that determine how the widget is displayed.
| sf::String tgui::EditBox::getSelectedText | ( | ) | const |
Returns the text that you currently have selected. This text is not affected by the password character.
| EditBoxRenderer* tgui::EditBox::getSharedRenderer | ( | ) |
Returns the renderer, which gives access to functions that determine how the widget is displayed.
|
overrideprotectedvirtual |
Retrieves a signal based on its name.
| signalName | Name of the signal |
| Exception | when the name does not match any signal |
Reimplemented from tgui::ClickableWidget.
| const sf::String& tgui::EditBox::getSuffix | ( | ) | const |
Returns the suffix currently displayed on the right side of the edit box.
| const sf::String& tgui::EditBox::getText | ( | ) | const |
Returns the text inside the edit box. This text is not affected by the password character.
| unsigned int tgui::EditBox::getTextSize | ( | ) | const |
Returns the character size of the text.
| bool tgui::EditBox::isReadOnly | ( | ) | const |
Checks if the edit box read-only or writable.
When the edit box is read-only, you can no longer delete characters and type text. Selecting text, copying text and even calling the setText function will still work.
| bool tgui::EditBox::isTextWidthLimited | ( | ) | const |
Checks if the text width is limited to the size of the edit box.
| void tgui::EditBox::limitTextWidth | ( | bool | limitWidth = true | ) |
Should the text width be limited or should you be able to type even if the edit box is full?
| limitWidth | Should there be a text width limit or not |
When set to true, you will no longer be able to add text when the edit box is full. The default value is false.
|
overridevirtual |
Returns whether the mouse position (which is relative to the parent widget) lies on top of the widget.
Reimplemented from tgui::ClickableWidget.
|
overrideprotectedvirtual |
Function called when one of the properties of the renderer is changed.
| property | Lowercase name of the property that was changed |
Reimplemented from tgui::Widget.
| void tgui::EditBox::selectText | ( | std::size_t | start = 0 , |
| std::size_t | length = sf::String::InvalidPos |
||
| ) |
Selects text in the edit box.
| start | The index of the first character to select |
| length | Amount of character to select |
When no parameters are provided, the entire text is selected.
| void tgui::EditBox::setAlignment | ( | Alignment | alignment | ) |
Changes the text alignment.
| alignment | The new text alignment |
| void tgui::EditBox::setCaretPosition | ( | std::size_t | charactersBeforeCaret | ) |
Sets the blinking caret to after a specific character.
| charactersBeforeCaret | The new position |
| void tgui::EditBox::setDefaultText | ( | const sf::String & | text | ) |
Changes the default text of the editbox. This is the text drawn when the edit box is empty.
This text is not affected by the password character.
| text | The new default text |
|
overridevirtual |
Enables or disables the widget.
| enabled | Is the widget enabled? |
The disabled widget will no longer receive events and thus no longer send callbacks. All widgets are enabled by default.
Reimplemented from tgui::Widget.
|
overridevirtual |
Focus or unfocus the widget.
| focused | Is the widget focused? |
When a widget is focused, the previously focused widget will be unfocused.
Reimplemented from tgui::Widget.
| bool tgui::EditBox::setInputValidator | ( | const std::string & | regex = ".*" | ) |
Defines how the text input should look like.
| regex | Valid regular expression for std::regex to match on text changes |
When the regex does not match when calling the setText function then the edit box contents will be cleared. When it does not match when the user types a character in the edit box, then the input character is rejected.
Examples:
| void tgui::EditBox::setMaximumCharacters | ( | unsigned int | maxChars | ) |
Changes the character limit.
| maxChars | The new character limit. Set it to 0 to disable the limit |
This character limit is disabled by default.
| void tgui::EditBox::setPasswordCharacter | ( | char | passwordChar | ) |
Sets a password character.
| passwordChar | The new password character. If set to 0 then there is no password character |
When the text width is limited then this function might remove the last characters in the text if they no longer fit in the EditBox. You can avoid this by setting LimitTextWidth to false (which is the default).
| void tgui::EditBox::setReadOnly | ( | bool | readOnly = true | ) |
Makes the edit box read-only or make it writable again.
| readOnly | Should the edit box be read-only? |
When the edit box is read-only, you can no longer delete characters and type text. Selecting text, copying text and even calling the setText function will still work.
|
overridevirtual |
Changes the size of the edit box.
| size | The new size of the edit box |
Reimplemented from tgui::Widget.
| void tgui::EditBox::setSuffix | ( | const sf::String & | suffix | ) |
Places a suffix at the right side of the edit box.
| suffix | Text to show on right side of edit box |
Setting a suffix can be useful for inputting numbers where you want to unit to be displayed inside the edit box.
| void tgui::EditBox::setText | ( | const sf::String & | text | ) |
Changes the text of the editbox.
| text | The new text |
The last characters of the text might be removed in the following situations:
| void tgui::EditBox::setTextSize | ( | unsigned int | textSize | ) |
Changes the character size of the text.
| textSize | The new size of the text If the size is 0 then the text will be scaled to fit in the edit box. |


Dxter is a contemporary venue for sharing knowledge. We produce and distribute audio versions of academic papers and scholarly articles. Our audio library serves as a new platform for researchers to publish their work, and for the rest of us to learn about it. With Dxter, information and ideas once stuck on the page are now more accessible and more likely to provoke thoughtfulness and innovation.
Audio versions of academic articles, research reports, and other intellectually-stimulating material, compiled in a searchable library available to consumers through the Dxter website, our mobile app, or as individual, sharable files.
Product Features
- Professionally narrated articles
- User-friendly intros and summaries in jargon-free, non-academic language
- Additional author commentary
- Mobile accessibility
Added Value
- Audio versions of academic articles and reports promote the opportunity for learning and better absorption of material for busy students and professionals, individuals with learning disabilities, the visually impaired, and anyone looking for an alternative to reading online or printed articles.
- Featured audio articles will include a summary and conclusion in non-academic language to help listeners take away key messages from the article.
- Dxter provides a platform for authors to share research and for journals and research organizations to market themselves.
Target Audiences
Individuals: Students, researchers, academic, professionals seeking to stay up to speed in research relevant to their field, lovers of learning
Institutions: Colleges, universities, think tanks, academic institutions can utilize Dxter to produce and share audio versions of articles they produce.
What Sets Us Apart
- Dxter is the first product of its kind. It fills a gap in research and publishing and responds to the growing demands for intellectually stimulating material and audio products.
- Dxter has the potential to attract a broad user base. We have the potential to capture a large and diverse market in students, researchers, academics, life-long learners, non-profit organizations, think tanks, and more. We will initially target universities, research institutions, and journals seeking new platforms to disseminate their work, as well as individual consumers seeking to keep abreast of research, literature, and thinking in their areas of interest.
- Dxter complements rather than replaces print and online articles; Instead of competing with Dxter, authors and publishing platforms can use Dxter to promote their work.
- Through our alma mater, Brown University, we have a network of professors, students, and research organizations as a resource to test, start-up, and market our product.
- As young policy professionals, we understand both the academic and research worlds, as well as the priorities and preferences of our millennial peers.
Long-term Goals
- A Dxter podcast featuring interviews with authors and discussions of the practical implications of their research.
- Most new articles published in print or online through major journals and institutions are available on Dxter.
- Journals and think tanks feature Dxter button to download the audio version as well as PDF or print version


#include <dimension_vector.h>
Class which holds information about either global or local thread size of a single kernel.
◆ DimensionVector() [1/5]
| ktt::DimensionVector::DimensionVector |
( |
| ) |
|
Default constructor, creates dimension vector with thread sizes in all dimensions set to 1.
◆ DimensionVector() [2/5]
| ktt::DimensionVector::DimensionVector |
( |
const size_t |
sizeX | ) |
|
|
explicit |
Constructor which creates dimension vector with specified thread size in dimension x and thread sizes in other dimensions set to 1.
- Parameters
-
| sizeX | Thread size in dimension x. |
◆ DimensionVector() [3/5]
| ktt::DimensionVector::DimensionVector |
( |
const size_t |
sizeX, |
|
|
const size_t |
sizeY |
|
) |
| |
|
explicit |
Constructor which creates dimension vector with specified thread sizes in dimensions x and y and thread size in dimension z set to 1.
- Parameters
-
| sizeX | Thread size in dimension x. |
| sizeY | Thread size in dimension y. |
◆ DimensionVector() [4/5]
| ktt::DimensionVector::DimensionVector |
( |
const size_t |
sizeX, |
|
|
const size_t |
sizeY, |
|
|
const size_t |
sizeZ |
|
) |
| |
|
explicit |
Constructor which creates dimension vector with specified thread sizes in all dimensions.
- Parameters
-
| sizeX | Thread size in dimension x. |
| sizeY | Thread size in dimension y. |
| sizeZ | Thread size in dimension z. |
◆ DimensionVector() [5/5]
| ktt::DimensionVector::DimensionVector |
( |
const std::vector< size_t > & |
vector | ) |
|
|
explicit |
Constructor which creates dimension vector with thread sizes based on up to first three elements of provided vector. If size of vector is less than 3, remaining thread sizes are set to 1.
- Parameters
-
| vector | Source vector for dimension vector thread sizes. |
◆ divide()
Divides thread sizes by values provided by specified dimension vector.
- Parameters
-
| divisor | Source of values for thread size division. |
◆ getSize()
| size_t ktt::DimensionVector::getSize |
( |
const ModifierDimension |
modifierDimension | ) |
const |
Getter for thread size in specified dimension.
- Parameters
-
| modifierDimension | Specifies which dimension size will be returned. |
- Returns
- Thread size in specified dimension.
◆ getSizeX()
| size_t ktt::DimensionVector::getSizeX |
( |
| ) |
const |
Getter for thread size in dimension x.
- Returns
- Thread size in dimension x.
◆ getSizeY()
| size_t ktt::DimensionVector::getSizeY |
( |
| ) |
const |
Getter for thread size in dimension y.
- Returns
- Thread size in dimension y.
◆ getSizeZ()
| size_t ktt::DimensionVector::getSizeZ |
( |
| ) |
const |
Getter for thread size in dimension z.
- Returns
- Thread size in dimension z.
◆ getTotalSize()
| size_t ktt::DimensionVector::getTotalSize |
( |
| ) |
const |
Getter for total thread size. Total thread size is calculated by multiplying thread sizes in each dimension.
- Returns
- Total thread size.
◆ getVector()
| std::vector< size_t > ktt::DimensionVector::getVector |
( |
| ) |
const |
Converts dimension vector to STL vector. Resulting vector will always contain 3 elements.
- Returns
- Converted STL vector.
◆ modifyByValue()
Modifies thread size in single dimension based on provided value and action.
- Parameters
-
| value | Value which will be used to modify thread size in single dimension based on specified action. |
| modifierAction | Specifies which operation should be performed with thread size and specified value. |
| modifierDimension | Specifies which dimension will be affected by the action. |
◆ multiply()
Multiplies thread sizes by values provided by specified dimension vector.
- Parameters
-
| factor | Source of values for thread size multiplication. |
◆ operator!=()
| bool ktt::DimensionVector::operator!= |
( |
const DimensionVector & |
other | ) |
const |
Comparison operator for dimension vector. Compares thread sizes in all 3 dimensions.
- Returns
- True if dimension vectors are not equal. False otherwise.
◆ operator==()
| bool ktt::DimensionVector::operator== |
( |
const DimensionVector & |
other | ) |
const |
Comparison operator for dimension vector. Compares thread sizes in all 3 dimensions.
- Returns
- True if dimension vectors are equal. False otherwise.
◆ setSize()
| void ktt::DimensionVector::setSize |
( |
const ModifierDimension |
modifierDimension, |
|
|
const size_t |
size |
|
) |
| |
Setter for thread size in specified dimension.
- Parameters
-
| modifierDimension | Specifies which dimension size will be set. |
| size | Thread size in specified dimension. |
◆ setSizeX()
| void ktt::DimensionVector::setSizeX |
( |
const size_t |
sizeX | ) |
|
Setter for thread size in dimension x.
- Parameters
-
| sizeX | Thread size in dimension x. |
◆ setSizeY()
| void ktt::DimensionVector::setSizeY |
( |
const size_t |
sizeY | ) |
|
Setter for thread size in dimension y.
- Parameters
-
| sizeY | Thread size in dimension y. |
◆ setSizeZ()
| void ktt::DimensionVector::setSizeZ |
( |
const size_t |
sizeZ | ) |
|
Setter for thread size in dimension z.
- Parameters
-
| sizeZ | Thread size in dimension z. |
The documentation for this class was generated from the following file:


Publish new item
Login
Login
Sign in
Cancel
Register
My FMarket
My ads
Messages
Mark_Item
My profile
FMarket
All
All
Motor
House
Book
Search
Most Recent update
Sara posted a pot
Lucy just posted a lamp to sell
Various furniture like new
Come here there is a heater
A automobile only drive for one year
Sara posted a pot
Sara posted a pot
Sara posted a pot
Useful computer science book
Product Catalog
Motor
Four-door
Two-door
House
Furniture
Kitchen
Other
Book
Electronic
History
Biology
1
2
3
4
5
Products
Sofa
$40.00
Table
$25.00
Table
$120.00
Chair
$50.00
Table
$10.00


from fuzzywuzzy import process
from itertools import combinations
b = 'balance'
words_of_balance = ([''.join(l) for i in range(len(b)) for l in combinations(b, i + 1)])
print(words_of_balance)
print(“Number of possible combinations of the word balance:”, len(words_of_balance))
Ratios_balance = process.extract(b, words_of_balance, limit=250)
print("PERCENTAGE OF ALL POSSIBLE WORDS OF BALANCE:")
print(Ratios_balance)
select the string with the highest matching percentage
highest_balance = process.extractOne(b, words_of_balance)
print("PERCENTAGE OF HIGHEST MATCHED FRO THE WORD BALANCE:")
print(highest_balance)
bests_balance = process.extractBests(b, words_of_balance, limit=10) print(bests_balance)
lo = 'load'
words_of_load = ([''.join(l) for i in range(len(lo)) for l in combinations(lo, i + 1)])
print(words_of_load) print(“Number of possible combinations of the word load:”, len(words_of_load))
Ratios_load = process.extract(lo, words_of_load, limit=250)
print("PERCENTAGE OF ALL POSSIBLE WORDS OF LOAD:")
print(Ratios_load)
select the string with the highest matching percentage
highest_load = process.extractOne(lo, words_of_load)
print("PERCENTAGE OF HIGHEST MATCHED FOR THE WORD LOAD:")
print(highest_load)
bests_load = process.extractBests(lo, words_of_load) print(bests_load)


Star Trek Actor Rene Auberjonois Loses Battle With Cancer
Born in New York, Auberjonois first made his mark on Broadway in the late 1960s before becoming a film star in the 1970s and a TV regular in the 1980s and 1990s.
by IANSStar Trek and Benson actor Rene Auberjonois have passed away. He was 79.
The “Star Trek: Deep Space Nine” regular lost his battle with cancer on Sunday, December 8, at his home here.
Born in New York, Auberjonois first made his mark on Broadway in the late 1960s before becoming a film star in the 1970s and a TV regular in the 1980s and 1990s.
His credits also include “Boston Legal”, “M*A*S*H”, “Madam Secretary”, “Avatar: The Last Airbender”, and “Judging Amy”, as well as the movies “The Patriot”, “The Player”, “King Kong” and “The Little Mermaid (1989)”, in which he voiced the character Louis.


The first bonus ever, where you’ll be able to earn Crowd1 Rewards just by joining!
Members joined after you
As the entire Crowd1 community of members grow, you gain! Everyone counts - anyone signed up after you increases your Streamline Bonus and counts into your Streamline Bonus Levels!
Your 1st level in the Streamline Bonus is FREE without qualification!
| Level | Personally Sponsored | Joined After Me | ||||
|---|---|---|---|---|---|---|
1 |
0 x | 250 | 1.25 | 1.25 | 1.25 | 1.25 |
2 |
1 x | 10,000 | 2.50 | 2.50 | 2.50 | 2.50 |
3 |
2 x | 25,000 | 3.75 | 3.75 | 3.75 | 3.75 |
4 |
3 x | 50,000 | 5.00 | 5.00 | 5.00 | 5.00 |
5 |
5 x | 75,000 | - | 7.50 | 7.50 | 7.50 |
6 |
6 x | 100,000 | - | 12.50 | 12.50 | 12.50 |
7 |
7 x | 150,000 | - | 25.00 | 25.00 | 25.00 |
8 |
8 x | 250,000 | - | 37.50 | 37.50 | 37.50 |
9 |
9 x | 500,000 | - | - | 50.00 | 50.00 |
10 |
10 x | 750,000 | - | - | 75.00 | 75.00 |
11 |
11 x | 1,000,000 | - | - | 100.00 | 100.00 |
12 |
12 x | 1,250,000 | - | - | 125.00 | 125.00 |
13 |
13 x | 1,500,000 | - | - | - | 250.00 |
14 |
14 x | 2,000,000 | - | - | - | 375.00 |
15 |
15 x | 2,500,000 | - | - | - | 500.00 |
16 |
15 x | 3,000,000 | - | - | - | 625.00 |
17 |
15 x | 4,000,000 | - | - | - | 750.00 |
18 |
15 x | 5,000,000 | - | - | - | 875.00 |
19 |
15 x | 7,500,000 | - | - | - | 1,000.00 |
20 |
15 x | 10,000,000 | - | - | - | 1,125.00 |


--- layout: sdk-page title: Java SDK ---
Rackspace's official SDK for Java is Apache jclouds, an open source multi-cloud toolkit for the Java platform that gives you the freedom to create applications that are portable across clouds while giving you full control to use cloud-specific features.
Currently, jclouds has support for many Rackspace services:
Support for additional services is on-going.
Download this pom.xml file or put the dependencies section in your project's pom.xml. Run the Maven command below in the same directory as your pom.xml file.
{% highlight sh %} $ mvn dependency:copy-dependencies{% endhighlight %}In this example, we build a NovaApi that can access Cloud Servers (which is based on the OpenStack Nova API) and then get the ServerApi for the IAD region. Then we get a List of Servers in that region.
{% highlight java %} NovaApi novaApi = ContextBuilder.newBuilder("rackspace-cloudservers-us") .credentials("myUsername", "myApiKey") .buildApi(NovaApi.class); ServerApi serverApi = novaApi.getServerApiForZone("IAD"); List extends Server> servers = serverApi.listInDetail().concat().toList();{% endhighlight %}See the Getting Started for Cloud Servers guide.


---
layout: post
status: publish
published: true
title: More Music
author:
display_name: Tomas Restrepo
login: tomasr
email<EMAIL_ADDRESS>url: http://winterdom.com/
author_login: tomasr
author_email<EMAIL_ADDRESS>author_url: http://winterdom.com/
wordpress_id: 313
wordpress_url: http://winterdom.com/2008/02/moremusic
date: '2008-02-25 13:11:58 +0000'
date_gmt: '2008-02-25 13:11:58 +0000'
categories:
- Personal
tags: []
comments: []
---
Here's some music I've recently gotten my hands on:
- Dokken: From Conception - Live 1981. Dokken playing live at its best. It's also my second Dokken live album, as I already owned their Live from the Sun album.
- Edguy: Hellfire Club. Edguy's always a fun band; several good tracks in this one like "We don't need a Hero", "King of fools" and my favorite, "Navigator".
- Kamelot: Ghost Opera. A solid album, as most of previous Kamelot works.
- Diabolique: Black Sun Collection. This is a double album combining their Wedding the Grotesque and The Black Flower albums, though the second one is far more polished and a lot better overall (I particularly liked songs like "Dark Rivers of the Heart", "Yesmine" and "Play in the dark". I also own their Butterflies album which is one of my favorites around.
- Freedom Call: Eternity. It's an ok album, but clearly not their best.
- Iron Maiden: No Prayer for the Dying. I had a copy of this album many many years ago and lost it, and ran into it a couple of weeks ago at Tower Records and got it. The only reason they're carrying this stuff is because Iron Maiden is giving a concert in Bogota soon, though I won't be attending :-(.
- Winger: IV. Didn't really expect to get this one, given that I was never really a Winger fan, but it actually has a few really good songs, like "Four Leaf Clover".
- David Shankle Group: Ashes to Ashes. Interesting album, though somewhat of a mixed bag. So far I'm liking "The Widow's Peak" the best.


History of Changes
Version 2.2.7 (2014/02/06)
- developer: cbe type: update fixes: 73
- updated method invocation code to use Method.setAccessible() only if necessary.
- developer: cbe context: build type: add fixes: 79
- Catch SecurityException when accessing default el.properties.
Version 2.2.6 (2013/01/11)
- developer: cbe type: update thanks to: Oleg Varaksin, Arjan Tijms. fixes: 71
- For a single identifier method expression, if the identifier evaluates to another method expression, invoke that method expression. (The semantics for this case is not covered in the specification. See also this issue . This change was made to improve compatibility with other EL implementations.)
- developer: cbe context: build type: add thanks to: Adam Crume.
- Added OSGi bundle manifest entries for juel-api and juel-impl and declared de.odysseus.el.ExpressionFactoryImpl as an OSGi service.
Version 2.2.5 (2012/07/08)
- developer: cbe context: build type: update thanks to: Oleg Varaksin. fixes: 3521406
- Changed scope for dependency from juel-impl to juel-api to provided. Therefore, to include juel-api, users now need to explicitly add it as a dependency.
- developer: cbe context: code type: update
- Re-implemented Cache based on ConcurrentHashMap and ConcurrentLinkedQueue to improve performance in multi-threaded environments.
- developer: cbe context: code type: update thanks to: Martin Koci. fixes: 3529970
- Determine target type and coerce argument in ExpressionNode.setValue().
- developer: cbe context: code type: fix thanks to: Martin Koci. fixes: 834616
- Catch and re-throw IllegalArgumentException as ELException in BeanELResolver.setValue().
- developer: cbe context: code type: update
- Updated messages with keys error.coerce.type and error.coerce.value to include value that could not be coerced.
- developer: cbe context: code type: update
- Create HashMap in ELContext lazily.
- developer: cbe context: code type: update
- BeanELResolver now caches property access methods.
- developer: cbe context: code type: fix fixes: 3420591
- ELContext.getContext(key) and putContext(key, value) should throw NPE if key is null
Version 2.2.4 (2011/09/30)
- developer: cbe context: code type: add
- Added property javax.el.ignoreReturnType to ignore the expected return type passed to EpressionFactory.createMethodExpression() when looking up a method to invoke. (This option has no effect when evaluating literal method expressions, where the expected return type acts as coercion target type.)
Version 2.2.3 (2011/01/30)
- developer: cbe context: code type: update thanks to: Martin Koci. fixes: 3154206
- fixed: a method invocation node invoked via ValueExpression.getValue(...) should return null if its base (prefix) expression evaluates to null.
- developer: cbe context: build type: update
- Moved parent pom.xml from modules to project root to simplify maven release build.
Version 2.2.2 (2010/11/12)
- developer: cbe context: build type: update
- Updated POMs to sync JUEL releases to maven central via Sonatype's repository hosting service.
- developer: cbe context: code type: update fixes: 3104608
- fixed: MethodExpression.invoke(...) should ignore passed parameter types if arguments are specified in the expression as in ${foo.bar(123)}.
- developer: cbe context: code type: update fixes: 3095122
- Improved method lookup in method expressions (when calling MethodExpression.invoke(...), Method.setAccessible(true) is used if necessary).
- developer: cbe context: code type: update
- Changed implementation of ASTProperty.getValueReference() to throw an exception if base expression evaluates to null. Updated documentation of ValueExpression.getValueReference() accordingly.
Version 2.2.1 (2009/12/13)
- developer: cbe context: code type: add
- Added MethodExpression.isParametersProvided(). This method was added silently to the API (wasn't mentioned anywhere prior to the final release of EE6) and forces this release...
- developer: cbe context: build type: update
- Added OSGi attributes to manifest files of juel-api-2.2.x.jar, juel-impl-2.2.x.jar and juel-spi-2.2.x.jar. E.g. the latter two can now be added as OSGi modules to glassfish v3.
- developer: cbe context: code type: add
- Added SimpleResolver.setELResolver(ELResolver).
- developer: cbe context: code type: update
- Removed static field BeanELResolver.DEFAULT_FACTORY. Lazily get a factory for type conversions when needed to coerce method parameters instead.
Version 2.2.0 (2009/12/01)
- developer: cbe context: code type: update
- Improved implementation of type conversions in de.odysseus.el.misc.TypeConverterImpl.
- developer: cbe context: code type: add
- Added some more unit tests.
Version 2.2.0-rc3 (2009/11/08)
- developer: cbe context: code type: update
- If no properties are available in JUEL's expression factory (neither passed in nor from el.properties), use system properties if System.getProperty("javax.el.ExpressionFactory") points to JUEL.
- developer: cbe context: admin type: update
- Split code base into modules modules/api, modules/impl and modules/spi; added maven build for these.
- developer: cbe context: build type: add
- Separated the JAR service provider (META-INF/services/javax.el.ExpressionFactory) into its own juel-spi-2.2.x.jar. This allows to have juel-impl-2.2.x.jar on your classpath without forcing JUEL to be used by ExpressionFactory.newInstance().
- developer: cbe context: code type: add
- Added ExpressionFactoryImpl.Profile enum type and several new constructors to easily choose between JEE5 and JEE6 (default) behavior.
- developer: cbe context: docs type: update
- Updated documentation for 2.2.
Version 2.1.3/2.2.0-rc2 (2009/10/09)
- developer: cbe context: code type: add
- Added ExpressionFactoryImpl(TreeStore store, TypeConverter converter) constructor.
- developer: cbe context: code type: fix thanks to: Pavel Vojtechovsky. fixes: 2871773
- Fixed: ListELResolver.getValue(...) should return null when index is out of range.
- developer: cbe context: code type: fix thanks to: Pavel Vojtechovsky. fixes: 2871795
- Fixed: second operand is always evaluated in and/or operations (e.g. ${true or false}).
- developer: cbe context: code type: fix fixes: 2822943
- Fixed: BeanELResolver should use Method.setAccessible(true).
- developer: cbe context: docs type: update
- Updated copyright notes.
Version 2.2.0-rc1 (2009/08/09)
- developer: cbe context: code type: add
- Implemented changes from JSR 245, maintenance release 2. This replaces JUELs proprietary API for method invocations. The BeanELResolver class now provides a generic default for method invocations using reflection. Method invocations are disabled/enabled via the javax.el.methodInvocations property.
Version 2.1.2 (2009/04/26)
- developer: cbe context: code type: fix thanks to: Gerhard Petracek. fixes: 2748538
- Fixed: for a single identifier expression ${foo}, ValueExpression.setValue(...) always calls ELContext.setValue(...), even if foo is bound to a variable.
- developer: cbe context: build type: update
- Renamed API/impl jars to juel-api-<version>.jar and juel-impl-<version>.jar to reflect maven artifact names juel-api and juel-impl.
Version 2.1.1 (2009/03/21)
- developer: cbe context: code type: add
- Added support for bracket operator in method invocations (e.g. ${foo[bar](baz)}).
- developer: cbe context: code type: add
- Added implementation of javax.el api classes.
- developer: cbe context: build type: update thanks to: Wolfgang Häfelinger.
- Updated pom.xml to package the following jar files: juel-<version>.jar, juel-<version>-api.jar and juel-<version>-impl.jar.
- developer: cbe context: code type: fix thanks to: Adam Winer. fixes: 2590830
- Fixed: SimpleContext.getVariableMapper() returns null
- developer: cbe context: code type: add
- Experimental support for syntax extensions.
- developer: cbe context: build type: update
- Reorganized project structure to meet maven's standard layout.
- developer: cbe context: code type: update
- Improved method invocation support by passing de.odysseus.el.misc.MethodInvocation as property to ELResolver.getValue(..., Object property).
- developer: cbe context: code type: add
- Added support for varargs.
- developer: cbe context: code type: add
- Introduce TypeConverter to allow for customized coercion rules.
- developer: cbe context: code type: remove
- Removed old TypeConversions (use TypeConverter.DEFAULT).
- developer: cbe context: docs type: update
- Update to fop-0.95-beta and forrester-0.3.3.
- developer: cbe context: admin type: update
- Moved to SVN.
Version 2.1.0 (2007/03/06)
- developer: cbe context: code type: update
- Use StringBuilder instead of StringBuffer (performance).
- developer: cbe context: code type: update
- Update API sources from glassfish.
Version 2.1.0-rc3 (2006/10/20)
- developer: cbe context: code type: fix thanks to: Frédéric Esnault.
- ListELResolver was missing in SimpleResolver's default chain of resolver delegates.
- developer: cbe context: code type: update
- Update API sources from glassfish.
- developer: cbe context: code type: update
- Minor performance improvements in type conversions and number operations.
Version 2.1.0-rc2 (2006/10/06)
- developer: cbe context: code type: update
- Relaxed matching of return type for nonliteral MethodExpression's. The actual method return type is checked be assignable to the expression's expected return type.
- developer: cbe context: code type: add
- Let ExpressionFactory's default constructor read properties from el.properties.
- developer: cbe context: admin type: update
- Updated API classes to include new API methods ExpressionFactory.newInstance() and ExpressionFactory.newInstance(java.util.Properties).
- developer: cbe context: build type: add
- Package Jars with META-INF/services/javax.el.ExpressionFactory to register JUEL as EL service provider.
- developer: cbe context: code type: add
- Added Builder.Feature.NULL_PROPERTIES to resolve ${map[null]}.
- developer: cbe context: code type: update
- Generified TypeConversions.coerceToEnum(...) and TypeConversions.coerceToEnum(...).
- developer: cbe context: code type: fix
- Coerce null function parameters whose type is primitive.
- developer: cbe context: code type: update
- Minor scanner cleanup.
- developer: cbe context: code type: update
- Increased default cache size to 1000.
- developer: cbe context: code type: update
- ExpressionFactoryImpl no longer final to allow customization by subclassing. E.g. using JUEL with JSF requires calling a default constructor.
Version 2.1.0-rc1 (2006/07/18)
- developer: cbe context: code type: add
- Added support for method invocations as in ${foo.bar(1)} (disabled by default).
- developer: cbe context: code type: fix
- Reject identifier instanceof.
- developer: cbe context: docs type: add
- Added "Advanced Topics" section.
- developer: cbe context: code type: remove
- Removed support for system property de.odysseus.el.factory.builder.
- developer: cbe context: design type: update
- Moved default tree cache implementation to package de.odysseus.el.tree.impl.
- developer: cbe context: design type: update
- Moved node implementation classes to package de.odysseus.el.tree.impl.ast.
- developer: cbe context: code type: remove
- Removed deprecated methods from SimpleResolver.
- developer: cbe context: code type: update
- Do not coerce null function parameters.
- developer: cbe context: code type: update
- Minor improvemnents in BooleanOperations and TypeConversions.
- developer: cbe context: code type: update
- Replaced JFlex scanner by handcoded scanner.
- developer: cbe context: code type: update
- Lazy initialize parser's lookahead token list.
Version 2.1.0-b2 (2006/07/01)
- developer: cbe context: docs type: add
- Added specification issues on number literals.
- developer: cbe context: code type: remove
- Finally removed the old JavaCC parser.
- developer: cbe context: docs type: add
- Added some more Javadocs.
- developer: cbe context: code type: fix
- Avoid NumberFormatException when parsing integer/floating point literals.
- developer: cbe context: code type: remove
- Removed staticTreeBuilder.DEFAULT constant.
- developer: cbe context: code type: fix
- Take builder and expected type into account when comparing tree expressions.
Version 2.1.0-b1 (2006/06/18)
- developer: cbe context: docs type: add
- Added documentation (HTML and PDF).
- developer: cbe context: code type: add
- Added TreeValueExpression.isLeftValue().
- developer: cbe context: code type: remove
- Removed ExpressionNode.isLiteralValue().
- developer: cbe context: build type: add
- Added more jar manifest attributes.
- developer: cbe context: build type: update
- Let javac include line and source debug information.
- developer: cbe context: code type: add
- Added secondary cache (WeakHashMap) to TreeCache.Default.
- developer: cbe context: code type: update
- Lazy initialize SimpleContext.ELResolver.
- developer: cbe context: code type: add
- Configure default builder class via system property de.odysseus.el.factory.builder.
- developer: cbe context: code type: update
- Added @Override annotations.
- developer: cbe context: code type: add
- Added SAX XML filter sample.
- developer: cbe context: code type: update
- Simplified SimpleResolver (now only handles top-level properties) .
- developer: cbe context: code type: update
- Deprecated SimpleContext.setValue(...) and SimpleContext.setFunctions(...). These methods will be removed in 2.1.0.
- developer: cbe context: code type: update
- Lots of minor refactorings.
Version 2.1.0-a3 (2006/06/04)
- developer: cbe context: code type: fix
- Re-throw NumberFormatException in number coercion as ELException.
- developer: cbe context: code type: fix
- Expected type now mandatory for value expressions.
- developer: cbe context: docs type: add
- Added SourceForge logo to JUEL home page.
- developer: cbe context: code type: add
- Added a calculator sample.
- developer: cbe context: code type: update
- Now use a new hand crafted top-down parser and a JFlex generated scanner. This almost doubles parsing performance!
- developer: cbe context: code type: update
- Moved the Javacc parser to package de.odysseus.el.tree.impl.javacc. By default, it is excluded from the JUEL jar file.
Version 2.1.0-a2 (2006/06/01)
- developer: cbe context: code type: update
- Include EL api sources from glassfish now (the tomcat6 code was too buggy). The sources are available under Sun's CDDL and are redistributed here. Also added a note on that in the README.txt file.
- developer: cbe context: code type: update
- Use pure Javacc parser. We no longer use the JJTree preprocessor. The AST classes are now Javacc independent and could easily be reused with other parser generators.
- developer: cbe context: code type: update
- Improved unit tests
- developer: cbe context: docs type: add
- Added some documentation
- developer: cbe context: code type: update
- Improved parse exception formatting
Version 2.1.0-a1 (2006/05/13)
- developer: cbe context: admin type: add
- Initial Release


Short Description and Usage
Material Kit is a beautiful resource built for Bootstrap. It was made over the powerful Bootstrap Material Design. We used and have redesigned all components to make it look flat, minimalist and easy to use. We are proud of this new Bootstrap skin and the possibilities for customisation.
Using it is very simple and it will enable you to refresh you classic looking application. To get the desired effect you will also need to integrate JS plugins that take a little bit more effort. It the end the result will be worth it.
Getting Started
The Material Kit is built on top of Bootstrap 3, so you can safely use it on your existing or new Bootstrap project. No line of code from Bootstrap 3 was changed, so you don't have to worry about undesired effects in your work.
We provide all the necessary CSS resources. To get going, just include assets/css/material-kit.css
in your HTML template. Your project will get the new look.
The easiest way to start is to use our start-up template where all the files are already included and ready to use.
File Structure
Once you have downloaded the archive and opened it, you will find the following structure:
Let's take it one by one:
x_material_kit
--assets
---css
-----bootstrap.min.css
-----material-kit.css
-----demo.css
---img
---js
-----bootstrap-datepicker.js
-----bootstrap.min.js
-----jquery.min.js
-----material-kit.js
-----material.min.js
-----nouislider.min.js
----sass
-----material-kit
-----material-kit.scss
--examples
--components-documentation.html
--Creative Tim License.pdf
--index.html
--template.html
--tutorial.html
Restyled Components
Here is the list of Bootstrap 3 components that were restyled in Material Kit:
- Buttons
- Inputs
- Select
- Textarea
- Menu
- Dropdown
- Progress Bars
- Navigation Menu
- Pagination
- Labels
- Notifications
- Typography
- Images
- Tables
- Tooltips
- Popovers
- Modal
- Carousel
New Components
Besides giving the existing Bootstrap elements a new look, we added new ones, so that the interface and consistent and homogenous.
Going through them, we added:
- Tags
- Checkboxes
- Radio Buttons
- Sliders
- Toggle Buttons
- Raised Areas
- Cards with tabs
- Datepicker
- Material Icons
For more details regarding the components, go to our Components Page.


Oops, you need to build the package before running this example. It's easy: just run rake
in the project's directory.
This is a simple example of how easy it is to get up and running with WysiHat.
document.on("dom:loaded", function() {
// Replaces the textarea 'content' with the wysiwyg editor on load
var editor = WysiHat.Editor.attach('content');
// Create a simple toolbar bar
// View the source of this page to see the generated HTML
var toolbar = new WysiHat.Toolbar(editor);
// Add the basic set of buttons, bold, underline and italic
toolbar.addButtonSet(WysiHat.Toolbar.ButtonSets.Basic);
});


Rules
For Confessions
- Don’t post anything that violates any relevant laws or the Facebook Community Standards.
- Remember that this is a forum for anonymous confessions. Please don't ask general school questions if there's no reason you would need/want to be anonymous. Google, of course, is a good resource (especially if you use the site: operator to restrict your search to ucsc.edu), as are the “Official” Group of UCSC Students and Groups at UCSC.
- No URLs.
- Don’t submit posts that consist entirely of verbatim quotes from other sources.
- No commerce of any kind.
- It’s fine to put your email address in a confession, but only if it’s really yours. No other forms of contact information are allowed.
- Don’t advertise parties.
- Posts that are spammy, unintelligble, typed in ALL CAPS, or devoid of content will not be posted.
- Don’t discuss shitting in someone’s mouth or any related acts. Before you ask, yes, this has been an issue and that’s why there’s a rule about it.
For Comments
- Don’t be abusive towards other commenters.
- Don’t post spam.


Here's How Much Warren Buffett Has Made on Southwest Airlines
There's no need to be jealous when the Oracle of Omaha's success can also be yours.
by Jon Quast (TMFJaguar)Warren Buffett is among the richest people in the world, with a net worth of over $80 billion. To get there, he didn't inherit a cushy trust fund, build a technology enterprise from scratch, or win the lottery. He acquired his fortune with old-fashioned frugality and disciplined investing, earning himself the crown for the world's most successful investor.
For those of us aspiring to be great investors, it's helpful to study the best. One way to do that is by exploring Buffett's success, investment by investment. Today let's look at how much he's made with Southwest Airlines (NYSE:LUV).
Southwest Airlines
Buffett began acquiring shares of Southwest in the fourth quarter of 2016. Since that initial purchase, he's been a net buyer of the stock in two other quarters, and a net seller in three. In the remaining six quarters, there was no change in the amount of shares he held. Here's a table showing the total number of shares held at the end of each quarter.
| Quarter | Total Southwest Shares Held |
|---|---|
| Q4 2016 | 43,203,775 |
| Q1 2017 | 47,659,456 |
| Q2 2017 | 47,659,456 |
| Q3 2017 | 47,659,456 |
| Q4 2017 | 47,659,456 |
| Q1 2018 | 47,659,456 |
| Q2 2018 | 56,547,399 |
| Q3 2018 | 56,047,399 |
| Q4 2018 | 54,847,399 |
| Q1 2019 | 53,649,213 |
| Q2 2019 | 53,649,213 |
| Q3 2019 | 53,649,213 |
Data from Berkshire Hathaway 13F filings.
We don't know how much Buffett paid in each instance, so we have to approximate. For the purpose of this article, we'll take the median price between the high and low of the quarter. Doing this puts Buffett's average buy price at $46.39 per share -- an investment of over $2.6 billion.
Buffett was a net seller of the stock in three quarters. All in all, he's down almost 3 million shares from his peak holdings in Q2 2018. Using the same methodology used to approximate a buy price, we can approximate a sell price of about $54 per share -- a $20.6 million profit on shares sold.
Buffett still holds the majority of the shares he's purchased. Considering that Southwest trades for about $57 per share as of this writing, Buffett is sitting on a $569.2 million profit. Combining the shares he sold for a profit with the unrealized profit from the shares he still holds, his $2.6 billion investment is worth over $3 billion -- a 22% gain in just three years.
The plot thickens
I should clarify, however, that Buffett himself doesn't actually own shares of Southwest. The purchases and gains we're talking about belong to his company Berkshire Hathaway (NYSE:BRK-A)(NYSE:BRK-B). Buffett owns about 30% of Berkshire Hathaway, which in turn is invested in a portfolio of over 40 stocks and other fully owned businesses.
Do you sit there pining away, wishing you were as good an investor as Warren Buffett? Here's the irony of that. Berkshire Hathaway is a public company, allowing absolutely anyone the opportunity to buy shares. Sure, it would have been nice to buy into the company 40 years ago, but even investing as recently as 10 years ago would have given you Buffett's market-beating returns. And I think that's one of the most powerful notions of the stock market: A share of a company gives me, an investor, a piece of someone else's success.
Looking ahead
I'm betting that Buffett continues holding, if not buying, Southwest's stock. Despite the ongoing safety issues with Boeing's 737 MAX 8 aircraft that has grounded 34 planes of Southwest's fleet, the company was still somehow able to grow earnings per share 13% in the third-quarter 2019. Without the grounded-plane problem (and the 41 additional planes that haven't been delivered on time), earnings per share would have been up 43%. That means there's plenty of upside for Southwest if it can get the MAX 8 problem behind it.
And for those who would rather just be aligned with Buffett's Berkshire, there are 128 billion reasons for optimism there. That's how many dollars the company holds in its growing cash pile -- a pile that will be used for more acquisitions and investments. The company is merely biding its time, waiting for a golden opportunity.
And with that amount of cash, almost no company will be off-limits. For example, while we're on the subject of airlines, Berkshire could acquire the four largest U.S. airlines outright and still have money left over. Given the company's track record and future options from this cash pile, I wouldn't be surprised if it continued to be a market beater from here.