Client Settings for the Java SDK with Couchbase Server
The CouchbaseEnvironment
class enables you to configure Java SDK options for bootstrapping, timeouts, reliability, and performance.
The Environment Builder
Because CouchbaseEnvironment
is an immutable class, you need to configure it by using its embedded Builder
class.
It is designed to apply the builder arguments in a fluent fashion and then create the CouchbaseEnvironment
at the very end:
CouchbaseEnvironment env = DefaultCouchbaseEnvironment
.builder()
.mutationTokensEnabled(true)
.computationPoolSize(5)
.build();
Cluster cluster = CouchbaseCluster.create(env, "localhost");
Alternatively, most options are tunable through system properties as well. If a system property is set, it always takes precedence over the builder setting:
System.setProperty("com.couchbase.kvEndpoints", "3");
CouchbaseEnvironment environment = DefaultCouchbaseEnvironment
.builder()
.kvEndpoints(2)
.build();
CouchbaseCluster cluster = CouchbaseCluster.create(environment);
All system properties start with the com.couchbase
prefix.
Configuration Options
The following tables cover all possible configuration options and explain their usage and default values. The tables categorize the options into groups for bootstrapping, timeout, reliability, performance, and advanced options.
Bootstrap Options
| Name | Builder | Property | Default | Description |
|---|---|---|---|---|
Enabling Encryption |
|
|
|
If encrypted communication should be enabled.
This feature is only available against a Couchbase Server 3.0 EE cluster or later, and setting it to true implies you also set a value for |
SSL Keystore Location |
|
|
|
The location to the JVM keystore where the certificates are stored. This feature is only available against a Couchbase Server 3.0 EE cluster or later. See the "Connection Management" section for more details on how to set it up properly. |
Custom SSL Keystore |
|
|
|
A custom KeyStore instance instead of creating one through the filepath. Allows for heavily customized and differently loaded keystores. |
SSL Keystore Password |
|
|
|
The password of the JVM keystore where the certificates are stored. This feature is only available against a Couchbase Server 3.0 EE cluster or later. Please see the "Connection Management" section for more details on how to set it up properly. |
Config Loading through HTTP |
|
|
|
If it should be possible for the client to bootstrap and grab configurations over the HTTP port 8091 (and also attach a streaming connection). If you are running Couchbase Server 2.2 or earlier, this setting must be set to true. Against newer clusters it can be disabled, but it doesn’t hurt to keep it enabled as a last-resort fallback option. Also, if configuration loading through carrier publication is manually disabled, this option is used as a fallback. If both option are disabled, the client is not able to function properly. If you don’t have a good reason to disable it (for example as instructed by Couchbase Support), keep it enabled. |
Config HTTP Non-Encrypted Port |
|
|
|
The port which is used if encryption is not enabled and the client needs to bootstrap through HTTP. In general, there is no need to change this value (unless you run a custom Couchbase Server build during development or testing that runs on different ports). |
Config HTTP Encrypted Port |
|
|
|
The port which is used if encryption is enabled and the client needs to bootstrap through HTTP. In general, there is no need to change this value (unless you run a custom Couchbase Server build during development or testing that runs on different ports). |
Config Loading through Carrier Publication |
|
|
|
If you are running Couchbase Server 2.5 or later, this is the preferred way to bootstrap and grab configurations. It is not done over HTTP, but through the key-value connections automatically. If this setting is manually disabled, the client will fallback to HTTP (if enabled). If both option are disabled, the client is not able to function properly. If you don’t have a good reason to disable it (for example as instructed by Couchbase Support), keep it enabled. |
Config Carrier Non-Encrypted Port |
|
|
|
The port which is used if encryption is not enabled and the client needs to bootstrap through carrier publication. In general, there is no need to change this value (unless you run a custom Couchbase Server build during development or testing that runs on different ports). |
Config Carrier Encrypted Port |
|
|
|
The port which is used if encryption is enabled and the client needs to bootstrap through carrier publication. In general, there is no need to change this value (unless you run a custom Couchbase Server build during development or testing that runs on different ports). |
DNS SRV Enabled |
|
|
|
Enable manually if you explicitly want to grab a bootstrap node list through a DNS SRV record. See the "Connection Management" section for more information on how to use it properly. |
Mutation Tokens Enabled |
|
|
|
If mutation tokens should be enabled, adding more overhead to every mutation but providing enhanced durability requirements as well as advanced N1QL querying capabilities. |
Client Certificate Auth Enabled |
|
|
|
If enabled, it will use the information in the key store for authentication (basically skip the Cluster#authenticate) instead of sending the username and password. |
Network Resolution |
|
|
|
For providing |
Timeout Options
Timeouts apply only for blocking operations.
All asynchronous operations must chain in their own timeout()
operators in order to apply a timeout.
All default values can be overridden through the overloaded methods that accept both a time and time unit.
All timeouts are reasonable defaults and should be adjusted to the environments after profiling the expected latencies.
| Name | Builder | Property | Default | Description |
|---|---|---|---|---|
Key-Value Timeout |
|
|
|
The Key/Value default timeout is used on all blocking operations which are performed on a specific key if not overridden by a custom timeout. It does not affect asynchronous operations. This includes all commands like get(), getFromReplica() and all mutation commands. |
View Timeout |
|
|
|
The View timeout is used on both regular and geospatial view operations if not overridden by a custom timeout. It does not affect asynchronous operations. Note that it is set to such a high timeout compared to key/value since it can affect hundreds or thousands of rows. Also, if there is a node failure during the request the internal cluster timeout is set to 60 seconds. |
Query Timeout |
|
|
|
The Query timeout is used on all N1QL query operations if not overridden by a custom timeout. It does not affect asynchronous operations. Note that it is set to such a high timeout compared to key/value since it can affect hundreds or thousands of rows. |
Search Timeout |
|
|
|
The Search timeout is used on all FTS operations if not overridden by a custom timeout. It does not affect asynchronous operations. Note that it is set to such a high timeout compared to key/value since it can affect hundreds or thousands of rows. |
Analytics Timeout |
|
|
|
The Analytics timeout is used on all Analytics query operations if not overridden by a custom timeout. It does not affect asynchronous operations. Note that it is set to such a high timeout compared to key/value since it can affect hundreds or thousands of rows. |
Connect Timeout |
|
|
|
The connect timeout is used when a Bucket is opened and if not overridden by a custom timeout. It does not affect asynchronous operations. If you feel the urge to change this value to something higher, there is a good chance that your network is not properly set up. Opening a bucket should in practice not take longer than a second on a reasonably fast network. |
Disconnect Timeout |
|
|
|
The disconnect timeout is used when a Cluster is disconnected or a Bucket is closed synchronously and if not overridden by a custom timeout. It does not affect asynchronous operations. A timeout is applied here always to make sure that your code does not get stuck at shutdown. 25 seconds should provide enough room to drain all outstanding operations properly, but make sure to adapt this timeout to fit your application requirements. |
Management Timeout |
|
|
|
The management timeout is used on all synchronous BucketManager and ClusterManager operations and if not overridden by a custom timeout. It set to a quite high timeout because some operations might take a longer time to complete (for example flush). |
Socket Connect Timeout |
|
|
|
The amount of time the SDK will wait on the socket connect until an error is raised and handled. |
Reliability Options
| Name | Builder | Property | Default | Description |
|---|---|---|---|---|
Reconnect Delay |
|
|
|
The reconnect delay defines the time intervals between a socket getting closed on the SDK side and trying to reopen (reconnect) to it. The default is to retry relatively quickly (32ms) and then gradually approach 4 second intervals, so that in case a server is longer down than usual the clients do not flood the server with socket requests. Feel free to tune this interval based on your application requirements. Applying a very large ceiling may lead to longer down times than needed, while very short delays may flood the target node and spam the network unnecessarily. |
Retry Delay |
|
|
|
When a request needs to be retried for some reason (for example if the retry strategy is best effort and the target node is not reachable), this delay configures the boundaries. An internal counter tracks the number of retries for a given request and it gradually increases by default from a very quick 100 microseconds up to a 100 millisecond delay. The operation will be retried until it succeeds or the maximum request lifetime is reached. If you find yourself wanting to tweak this value to a very low setting, you might want to consider a different retry strategy like "fail fast" to get tighter control on the retry handling yourself. |
Retry Strategy |
|
|
|
The retry strategy decides if an operation should be retried or canceled. While implementing a custom strategy is fairly advanced, the SDK ships with two out of the box: BestEffortRetryStrategy and FailFastRetryStrategy. The first one will retry the operation until it either succeeds or the maximum request lifetime is reached. The fail fast strategy will cancel it right away and therefore the client needs to be prepared to retry on its own, but gets much tighter control on when and how to retry. See the advanced section in the documentation on more specific information on retry strategies and failure management. |
Maximum Request Lifetime |
|
|
|
The maximum request lifetime is used by the best effort retry strategy to decide if its time to cancel the request instead of retrying it again. This is needed in order to prevent requests from circling around forever and occupying precious slots in the request ring buffer. Make sure to set this higher than the largest timeout in your application, otherwise you risk requests being canceled prematurely. This is why the default value is set to 75 seconds, which is the highest default timeout on the environment. |
Socket Keepalive Interval |
|
|
|
To avoid nasty firewalls and other network equipment cutting off stale TCP connections, at the configured interval the client will send a heartbeat keepalive message to the remote node and port. This only happens if for the given amount of time no traffic has happened, so if a socket is busy sending data back and forth it will have no effect. If you set this value to 0, no keepalive will be sent over the sockets. |
Socket Keepalive ErrorThreshold |
|
|
|
The error count on keepalive per socket can be set to a customized value, after which the connection will be recycled (proactively closed and reconnected). |
Socket Keepalive Timeout |
|
|
|
The timeout used for the keepalive operations per socket, in milliseconds. |
Config Poll Interval |
|
|
|
This interval helps to tune the timeframe when the SDK proactively grabs a new configuration from the server to detect cluster changes in a timely fashion. |
Performance Options
| Name | Builder | Property | Default | Description |
|---|---|---|---|---|
Observe Interval |
|
|
|
The way PersistTo and ReplicateTo work is that once the regular mutation operation succeeds, the key state on the target nodes is polled until the desired state is reached. Since replication and persistence latency differs greatly on servers (fast or slow networks and disks), this value can be tuned for maximum efficiency. The tradeoffs to consider here is how quickly the desired state is detected as well as how much the SDK will spam the network. The default is an exponential delay, starting with very short intervals but very quickly approaching the 100 milliseconds if replication or persistence takes longer than expected. You should monitor the average persistence and replication latency and adjust the delay accordingly. |
Key/Value Endpoints per Node [Static] |
|
|
|
The number of actual endpoints (sockets) to open per Node in the cluster against the Key/value service. By default, for every node in the cluster one socket is opened where all traffic is pushed through. That way the SDK implicitly benefits from network batching characteristics when the workload increases. If you suspect based on profiling and benchmarking that the socket is saturated you can think about slightly increasing it to have more "parallel pipelines". This might be especially helpful if you need to push large documents through it. The recommendation is keeping it at 1 unless there is other evidence. |
Key/Value Endpoints per Node [Dynamic] |
|
|
Need to set minimum and maximum values |
To allow dynamic pooling, as an alternative to the fixed values of kvEndPoints. Note that if both kvEndpoints and kvServiceConfig are set, kvEndpoints takes priority. This helps to ensure backwards compatibility. |
View Endpoints per Node [Static] |
|
|
The default is dynamic mode, please see next row. |
The number of actual endpoints (sockets) to open per node in the cluster against the view service. If you plan to run a view heavy workload, especially paired with larger responses, increasing this value significantly (most likely between 5 and 10) can provide greater throughput. We recommend that you tune this value based on evidence obtained during benchmarking with a real workload. |
View Endpoints per Node [Dynamic] |
|
|
|
To allow dynamic pooling, as an alternative to the fixed values of viewEndPoints. Need to set minimum and maximum number of Endpoints; whether or not the service is pipelined (more than one request at the same time on the same socket); and the minimum idle time, in seconds, after which the socket will be closed. Note that if both viewEndpoints and viewServiceConfig are set, viewEndpoints takes priority. This helps to ensure backwards compatibility. |
Query Endpoints per Node [Static] |
|
|
The default is dynamic mode, please see next row. |
The number of actual endpoints (sockets) to open per node in the cluster against the query service. If you plan to run a view heavy workload, especially paired with larger responses, increasing this value significantly (most likely between 5 and 10) can provide greater throughput. We recommend that you tune this value based on evidence obtained during benchmarking with a real workload. |
Query Endpoints per Node [Dynamic] |
|
|
|
To allow dynamic pooling, as an alternative to the fixed values of queryEndPoints. Need to set minimum and maximum number of Endpoints; whether or not the service is pipelined (more than one request at the same time on the same socket); and the minimum idle time, in seconds, after which the socket will be closed. Note that if both queryEndpoints and queryServiceConfig are set, queryEndpoints takes priority. This helps to ensure backwards compatibility. |
Search Endpoints per Node [Static] |
|
|
|
The number of actual endpoints (sockets) to open per Node in the cluster against the Search (FTS) service. If you plan to run a query heavy workload, especially paired with larger responses, increasing this value significantly (most likely between 5 and 10) can provide greater throughput. We recommend that you tune this value based on evidence obtained during benchmarking with a real workload. |
Search Endpoints per Node [Dynamic] |
|
|
|
To allow dynamic pooling, as an alternative to the fixed values of searchEndPoints. Need to set minimum and maximum number of Endpoints; whether or not the service is pipelined (more than one request at the same time on the same socket); and the minimum idle time, in seconds, after which the socket will be closed. Note that if both searchEndpoints and searchServiceConfig are set, queryEndpoints takes priority. This helps to ensure backwards compatibility. |
I/O Thread Pool Size |
|
|
|
The number of threads in the I/O thread pool. This defaults to the number of available processors that the runtime returns (which, as a well known fact, sometimes does not represent the actual number of processors). Every thread represents an internal event loop where all needed sockets are multiplexed on. The default value should be fine most of the time, it may only need to be tuned if you run a very large number of nodes in the cluster or the runtime value is incorrect. As a rule of thumb, it should roughly correlate with the number of cores available to the JVM. |
Computation Thread Pool Size |
|
|
|
The number of threads in the computation thread pool. This defaults to the number of available processors that the runtime returns (which, as a well known fact, sometimes does not represent the actual number of processors). Every thread represents an internal event loop where all needed computation tasks are run. The default value should be fine most of the time, it might only need to be tuned if you run more than usual CPU-intensive tasks and profiling the application indicates fully saturated threads in the pool. As a rule of thumb, it should roughly correlate with the number of cores available to the JVM. |
I/O Pool Group |
|
|
|
For those who want the last drop of performance, on Linux Netty provides a way to use edge triggered epoll instead of going through JVM NIO. This provides better throughput, lower latency and less garbage. Note that this mode has not been tested by Couchbase and therefore is not supported officially. If you like to take a walk on the wild side, you can find out more here: Netty Native-transports. |
TCP Nodelay |
|
|
|
By default, TCP Nodelay is turned on (which in effect turns off "nagleing"), and if possible negotiated with the server as well. If this is set to false, "nagleing" is turned on. Make sure to only turn off TCP nodelay if you know what you are doing, because it can lead to decreased performance. |
Run Callbacks on the I/O Pool |
|
|
|
If set to true, all callbacks will not be moved onto the scheduler but rather executed on the IO threads. This can aid performance under high throughput scenarios but extra care must be taken to not block in a callback since this has direct impact on the performance of the I/O loops! |
Advanced Options
Values for the advanced options listed in the following table should not be changed unless there is a very good reason to do so.
| Name | Builder | Property | Default | Description |
|---|---|---|---|---|
Request Ring Buffer Size |
|
|
|
The size of the request ring buffer where all request initially are stored and then picked up to be pushed onto the I/O threads. Tuning this to a lower value will more quickly lead to BackpressureExceptions during overload or failure scenarios. Setting it to a higher value means backpressure will take longer to occur, but more requests will potentially be queued up and more heap space is used. |
Response Ring Buffer Size |
|
|
|
The size of the response ring buffer where all responses are passed through from the I/O threads before the target Observable is completed. Since the I/O threads are pushing data in this ring buffer, setting it to a lower value is likely to have a negative effect on I/O performance. In general it should be kept in line with the request ring buffer size. |
Computation Scheduler |
|
|
|
The scheduler used for all CPU-intensive, non-blocking computations in the core, client and in user space. This is a slightly modified version of the ComputationScheduler that ships with RxJava, mainly for the reason to manually name threads as needed. Changing the scheduler should be used with extra care, especially since lots of internal components also depend on it. |
User Agent String |
|
|
|
The user agent string that is used to identify the SDK against the Couchbase Server cluster on different occasions, for example when doing a view or query request. There is no need to tune that because it is dynamically generated based on properties set during build time (based on the package name and version, OS and runtime). |
Package Name and Version Identifier |
|
|
|
The package name and identifier is used as part of the user agent string and in the environment info output to see which version of the SDK the application is running. There is no need to change it because it is dynamically generated based on properties set during build time. |
Event Bus |
|
|
|
The event bus implementation used to transport system, performance and debug events from producers to subscribers. The default implementation is based on an internal RxJava Subject which does not cache the values and only pushes subsequent events to the subscribers. If you provide a custom implementation, double check that it fits with the contract of the event bus as documented. |
Buffer Pooling Enabled |
|
|
|
If the SDK is suspected to leak buffers (it pools buffers in its IO layer for performance) you can set this field to false. This will make sure buffers are not pooled, but remember the tradeoff here is higher GC pressure on the system. Only turn off to prevent a memory leak from happening (in production). If you suspect a memory leak, please open a bug ticket. |
Runtime Metrics Collector |
|
|
|
The configuration of the runtime metrics collector can be modified (or completely disabled). By default, it will emit an event every hour. |
Network Latency Metrics Collector |
|
|
|
The configuration of the network latency metrics collector can be modified (or completely disabled). By default, it will emit an event every hour, but collect the stats all the time. |
Default Metrics Consumer |
|
|
|
The default metric consumer which will log all metric events. You can configure if it should be enabled, as well as the log level and the target output format. |
Request Buffer Wait Strategy |
|
|
|
The underlying request buffer can use a different wait strategy which can be used to get better performance under high throughput/low latency circumstances, trading CPU time for it. This is an export option, only use it if you are comfortable with the LMAX Disruptor and know the impact of plugging in a different strategy! |
Automatic Observable Resource Release Time Period |
|
|
|
The time period in milliseconds that a subscriber needs to subscribe to the observable. After this period, the resources involved in the observable are released and can’t be subscribed to anymore. This is required to avoid leaking data, it also needs to be a short time bound to avoid having the observable move into older GC generations unnecessarily, which harms performance. |


This Sqlite3 extension module provides MySQL inspired regular expression functions using the PCRE2 engine. Every plain function is also present with PCRE_ prepended to the name, so multiple modules that provide RE functions can coexist portably. (See the string_funcs
module for versions using ICU regular expressions.) The default names are used by whichever module was loaded last.
Returns 1 if string
matches against re
. The entire string must match.
Returns the version of PCRE2 being used.
Returns the version of Unicode that PCRE2 is using.


{% include "bank/header.html" %}
{% include "bank/menu.html" %}
View Complaint
{#
Exporting data from a table can often be a key part of a complex application. The Buttons extension for DataTables provides three plug-ins that provide overlapping functionality for data export. You can refer full documentation from here Datatables
#}
| Date |
Complaint To |
Subject |
Description |
Status |
Action |
{% for i in complaintDict %}
| {{ i['complaintDate'] }} |
{{ i['loginEmail'] }} |
{{ i['complaintSubject'] }} |
{{ i['complaintDescription'] }} |
{{ i['complaintStatus'] }} |
{% if i['complaintStatus'] == 'replied' %}
View Reply
{# Edit #}
{% else %}
NOT REPLIED
{% endif %}
|
{% endfor %}
| Date |
Complaint To |
Subject |
Description |
Status |
Action |
{% include "bank/footer.html" %}
{#


USD/MXN heads for highest close in a month around 19.35
by Matías Salord- US dollar rises against Latin American currencies, including the Mexican peso.
- USD/MXN points to the upside but needs to hold on top of 19.35.
The USD/MXN pair is rising for the second day in a row. It peaked at 19.40 and then pulled back to the 19.35 area. The Mexican peso failed to hold to gains after being affected by the reversal in Wall Street.
Equity prices in the US opened in positive ground but turned to the downside, ending the session in negative. The risk aversion tone weighed on the Mexican peso that it was likely also impacted by the decline in Latin American currencies. The debate on the trade agreement between the US, Canada and Mexico is expected to be debated soon at the House of Representatives and it is a risk event for the MXN.
Technical outlook
The pair is about to post a daily close on top of a downtrend line that should signal more strength ahead but at the same time, it was unable to hold clearly on top of 19.35. If it manages to rise and hold above, it would target the 19.45/50 zone.
On the downside, a decline below 19.30 should suggest the US dollar is not ready to resume the rally. Below, the next support is seen at 19.20 that protects the critical support zone of 19.00/05.
USD/MXN
| Overview | |
|---|---|
| Today last price | 19.3608 |
| Today Daily Change | 0.0418 |
| Today Daily Change % | 0.22 |
| Today daily open | 19.319 |
| Trends | |
|---|---|
| Daily SMA20 | 19.1758 |
| Daily SMA50 | 19.3507 |
| Daily SMA100 | 19.3873 |
| Daily SMA200 | 19.2688 |
| Levels | |
|---|---|
| Previous Daily High | 19.3301 |
| Previous Daily Low | 19.1757 |
| Previous Weekly High | 19.5296 |
| Previous Weekly Low | 19.0846 |
| Previous Monthly High | 19.8623 |
| Previous Monthly Low | 19.0176 |
| Daily Fibonacci 38.2% | 19.2711 |
| Daily Fibonacci 61.8% | 19.2347 |
| Daily Pivot Point S1 | 19.2198 |
| Daily Pivot Point S2 | 19.1205 |
| Daily Pivot Point S3 | 19.0654 |
| Daily Pivot Point R1 | 19.3742 |
| Daily Pivot Point R2 | 19.4294 |
| Daily Pivot Point R3 | 19.5286 |


Notebooks
Story: The lion has the power of turning itself into other things
The lion has the power of turning itself into other things
Title
The lion has the power of turning itself into other things
Collection
Summary
The Lion is believed to possess the power of assuming other forms. (L VIII.-23. 8075-8077). It assumes the form of a hartebeest because it wants the people to try and head it as if it were game. It also assumes the form of a person (and wears a kaross).
Comments
1) p.8074v: |han≠kass'o heard this from Tsatsi as well as from a man called !kui (or Ttarro-hho, or Bartman Bastard); this latter man's youthful name was Ttarro-hho and his grown-up name was !kui !ka xu, which he was given because he was a 'bad man' and a woman threw fire at him, burning him, when he 'wished to marry her'; a lion who 'does not understand' comes to people's huts to kill them, 2) pp.8075v & 8076v: (28 December 1878) see Children do not say the lion's name at night, 3) See also A wild cat, when many have been killed by a person changes itself into a lion and kills the slayer, 4) This story is found in Book VIII-23
Contributors
|han≠kass'o (Klein Jantje) (VIII)
Date
22 December 1878 (started)
Categories
Keywords
lion (its actions and habits) , lion ('terror kills us') , lion (has the power of turning itself into other things) , lion (can transform itself) , lion (has magic powers) , lion (people lie in wait for it in its hartebeest-form) , lion (becomes a hartebeest to trick people) , lion (deceives so it can kill people) , lion (is cunning) , lion (assumes the form of a person in a kaross) , transformation (the lion has the power of turning itself into other things) , transformation (lion becomes a person) , transformation (lion becomes a hartebeest) , transformation (lion wears a kaross) , hartebeest (the lion wants the people to try and head it) , hartebeest (the lion tricks people in its form) , hartebeest (lion has the power of turning itself into) , kaross (the lion assumes the form of a person and wears one) , kaross (lion has the power of turning itself into other things) , magic power (of the lion which can turn itself into other things)
Story Pages
8075-8077


Center Area - only way is up
Top - you cannot go down but you can go right
Please go Right.
Top Right - you can go left and down
Please go Down.
Right - you can go left and down only
Please go Down.
Bottom Right - you can go left only
Please go Left.
Bottom - you can go up and left only
Please go Left.
Bottom Left - you can go up and right only
Please go Up.
Left - you can go up and right only
Please go Up.
Top Left - you can go up to teleport you to Bottom Left and right to jump to Center
Go Left to proceed to the next Demo.


Length Filter :
None
1
3
5
7
9
11
13
15
17
19
21
23
25
Clock Filter :
None
Normal (10s + 1m)
Speed (8s + 0.4m)
Casual (15s + 3m)


Preparation time
30 mins to 1 hour
Cooking time
10 to 30 mins
Serves
Makes 12
The addition of cinnamon and ground almonds give the pastry extra flavour and a beautiful texture.
Put the flour in a blender with the cinnamon. Add the butter and blitz to form fine breadcrumbs. Add the almonds, sugar, egg yolk and 2-3 tbsp of cold water and blitz to form a soft dough. Knead the dough briefly on a floured surface, then wrap in cling film and chill for 30 minutes.
Meanwhile, chop the marzipan into small pieces. Stir into the mincemeat, along with the sherry.
Preheat the oven to 190C/375F/Gas 5. Thinly roll out the pastry and cut out twelve 7.5cm/3in rounds. Place the rounds in a greased 12 hole tart tin. Divide the mincemeat between the pastry cases.
Cut out 12 stars and place one on top of each tart. Bake for 20 minutes until the pastry is golden and cooked through. Transfer to a wire rack and sprinkle with caster sugar. Serve with cream, custard or brandy butter


An input that display and edit a timespan in a user friendly manner but has a model value more easily usable by the js code.
It is editable using a regex as pattern recognition to know if the inputed text is parsable into some kind of duration. If
the pattern is invalid the binded value will be set to undefined
. This allows the luid-timespan to be
compatible with required
and ng-required
.
Upon pressing enter or losing focus of the input, it will format the input into a more readable form. For example you enter
140
and press enter, the text will change to 02h20
Supports up and down key events and scroll event to increment/decrement the value the value.
ng-model
: the variable to bind tong-change
: events to launch when the value is updatedng-disabled
: enable or disable the inputunit
: 'hour' or 'minute', tells the directive that typing 10 in the input means 10 minutes or 10 hours.
The default is 'minute'step
: when scrolling or pressing the up/down key, how many minutes you want to be added. The default is
5.
placeholder
: placeholder to display when the input is empty.mode
: to tell if you want the directive to give you a timespan or a moment.duration. Supported values: timespan
(default) and moment.duration
<luid-timespan ng-model="myValue"></luid-timespan>


Headers
In Down headers come in 3 sizes. Big, middle and small. Headers are denoted by the #
symbol, the more #
's you add the smaller a header you get.
Lists
Lists are shown by the *
characters prefixing a line of text.
Bold
Bold text is created by wrapping the targetted text in **
symbols
Italics
Italicised text is created by wrapping targetted text in *
symbols.


We did most of the heavy lifting for you to provide a default stylings that incorporate our custom components. Additionally, we refined animations and transitions to provide a smoother experience for developers.
By utilizing elements and principles of Material Design, we were able to create a framework that incorporates components and animations that provide more feedback to users.
We have provided detailed documentation as well as specific code examples to help new users get started. We are also always open to feedback and can answer any questions a user may have about Materialize.


Online
Offline
Bandwidth estimate
Mbps
Effective type
Round-trip time
ms
Should reduce data usage?
Type of connection
Learn more about the
Network Information API
.
Only works in Chromium browsers.


| (A) | ---- no text ---- | |
| 357 | (C) | ¶ he shałł vs fynde in þe felde . no ferther to seche |
| 358 | (D) | he shal vs fynde in the felde no ferther to seke |
| 359 | (E) | he schal vs fynde in þe feeld . no furthere to seche |
| (Ex) | ---- no text ---- | |
| 367 | (L) | he schal vs fynde in þe felde ne no ferre seke |
| (P) | ---- no text ---- | |
| 351 | (U) | he shal vs fynde in the felde / no ferther to sechen |
| (V) | ---- no text ---- |


click-for-result pop-up modal
Open pop-up
you haven't clicked any button yet
×
Header of the pop-up goes here
Message goes here
Please click the buttons for different results


Team Profile Generator
Hassan Yusuf
Manager
ID:1
Email:
Email
Office Number:
Hassan Yusuf
Engineer
ID: 2
Email:
Email
GitHub:
userName
Hassan Yusuf
Intern
ID: 3
Email:
Email
School:


about me
By day, I work for GitHub, but I live in Sydney, Australia. At the moment I'm working on a mix of product work and open source projects, but who knows what tomorrow will bring?
When you can tear me away from a computer, you'll likely find me hanging out at community events - sometimes up the front presenting, sometimes up the back heckling, and sometimes holding down the bar at the after party.
things of note
In my spare time I hack on a bunch of open source projects, including MahApps.Metro and a bunch of Code52 apps.
I've been awarded an Microsoft MVP award in 2012 and 2013 by the ASP.NET/IIS teams for work with the community.
upcoming things
-
MVP Summit
I think I'll be back in Redmond in November to hang out with all my favourite Microsoft blue badges and nerds.


Include File: harpoon/process.hpp
Fully Qualified Name: ::Slate::Harpoon::Item
Declaration
template <typename ... Types> using Item;
Abstract


The following is a list of the projects that I have so far undertaken:
The project entails the introductory bit of programming that is learning to input basic HTML codes and finally push it to GitHub.
This project was written using HTML. It outlines the characteristics of my pet in this case Tom the Dog. Its likes and dislikes and attached on the website is its photo.
This project was written in HTML. It is a forked project from git repository with slight changes of codes. Basically the content entails recipe of preparing chocolate cookies.
Am a recent graduate of Jomo Kenyatta University of Agriculture and Technology having undertaken a course in Business Innovation Technology Management. I have extensive knowledge in Graphics Design and Intellectual Property with hands on skills in Adobe Creative suites. Currently I have no working experience but looking forward for an opportunity in the near future.
My hobbies and skills include:


13 May 2005
Between 27 April and 11 May 2005, a total of 9 suspected cases of acute haemorrhagic fever has been reported in Etoumbi (8) and Mbomo (1) in Cuvette Ouest Region. All cases have been fatal.
A total of 52 contacts are being monitored in Etoumbi and Mbomo.
The Ministry of Health, the WHO Regional Office for Africa and Médecins Sans Frontières-Holland are in the field to assess the situation and to collect clinical samples for diagnosis. These will be tested by the Centre International de Recherches Médicales de Franceville (CIRMF), Gabon.


If you recommend one employee, you will get bonus points if he/she satifies either condition.
Gender
+{{female_points}}
Race
+{{race_points}}
Education
+{{college_points}}
For example,
If the employee is female, non-white, non-Asian,
and is the only person in her family who attends college,
Then, you can get {{female_points}} + {{race_points}} + {{college_points}} = {{max_points}} points in total!


- gapBetweenBars - Static variable in class inventionstudio.inventionstudioandroid.R.attr
-
May be a dimension value, which is a floating point number appended with a
unit such as "14.5sp
".
- gcm_defaultSenderId - Static variable in class inventionstudio.inventionstudioandroid.R.string
-
- GeneralFeedback - Class in inventionstudio.inventionstudioandroid.Model
-
The type General feedback.
- GeneralFeedback() - Constructor for class inventionstudio.inventionstudioandroid.Model.GeneralFeedback
-
No args constructor for use in serialization
- GeneralFeedback(Integer, String, String) - Constructor for class inventionstudio.inventionstudioandroid.Model.GeneralFeedback
-
Instantiates a new General feedback.
- getApiKey() - Method in class inventionstudio.inventionstudioandroid.Model.LoginFormObject
-
Gets api key.
- getAppStatus(String) - Method in interface inventionstudio.inventionstudioandroid.API.ServerApiService
-
Getting app status from server
- getChild(int, int) - Method in class inventionstudio.inventionstudioandroid.Adapters.ExpandableListAdapter
-
- getChildId(int, int) - Method in class inventionstudio.inventionstudioandroid.Adapters.ExpandableListAdapter
-
- getChildrenCount(int) - Method in class inventionstudio.inventionstudioandroid.Adapters.ExpandableListAdapter
-
- getChildView(int, int, boolean, View, ViewGroup) - Method in class inventionstudio.inventionstudioandroid.Adapters.ExpandableListAdapter
-
- getComments() - Method in class inventionstudio.inventionstudioandroid.Model.GeneralFeedback
-
Gets comments.
- getComments() - Method in class inventionstudio.inventionstudioandroid.Model.StaffFeedback
-
Gets comments.
- getComments() - Method in class inventionstudio.inventionstudioandroid.Model.ToolBrokenFeedback
-
Gets comments.
- getCurrentUserUserName() - Method in class inventionstudio.inventionstudioandroid.Model.Equipment
-
Gets current user user name.
- getEquipmentGroupDescription() - Method in class inventionstudio.inventionstudioandroid.Model.Equipment
-
Gets equipment group description.
- getEquipmentGroupDescriptionHtml() - Method in class inventionstudio.inventionstudioandroid.Model.StudioDescription
-
Gets equipment group description html.
- getEquipmentGroupId() - Method in class inventionstudio.inventionstudioandroid.Model.Equipment
-
Gets equipment group id.
- getEquipmentGroupId() - Method in class inventionstudio.inventionstudioandroid.Model.GeneralFeedback
-
Gets equipment group id.
- getEquipmentGroupId() - Method in class inventionstudio.inventionstudioandroid.Model.StaffFeedback
-
Gets equipment group id.
- getEquipmentGroupId() - Method in class inventionstudio.inventionstudioandroid.Model.StudioDescription
-
Gets equipment group id.
- getEquipmentGroupId() - Method in class inventionstudio.inventionstudioandroid.Model.ToolBrokenFeedback
-
Gets equipment group id.
- getEquipmentGroupId() - Method in class inventionstudio.inventionstudioandroid.Model.UserGroups
-
Gets equipment group id.
- getEquipmentGroupName() - Method in class inventionstudio.inventionstudioandroid.Model.Equipment
-
Gets equipment group name.
- getEquipmentGroupName() - Method in class inventionstudio.inventionstudioandroid.Model.StudioDescription
-
Gets equipment group name.
- getEquipmentGroupName() - Method in class inventionstudio.inventionstudioandroid.Model.UserGroups
-
Gets equipment group name.
- getEquipmentGroupShortName() - Method in class inventionstudio.inventionstudioandroid.Model.StudioDescription
-
Gets equipment group short name.
- getEquipmentList(int, String, String) - Method in interface inventionstudio.inventionstudioandroid.API.SumsApiService
-
Get list of equipment from SUMS
- getGroup(int) - Method in class inventionstudio.inventionstudioandroid.Adapters.ExpandableListAdapter
-
- getGroupCount() - Method in class inventionstudio.inventionstudioandroid.Adapters.ExpandableListAdapter
-
- getGroupId(int) - Method in class inventionstudio.inventionstudioandroid.Adapters.ExpandableListAdapter
-
- getGroupView(int, boolean, View, ViewGroup) - Method in class inventionstudio.inventionstudioandroid.Adapters.ExpandableListAdapter
-
- getHasBeenNotified() - Method in class inventionstudio.inventionstudioandroid.Model.QueueMember
-
Gets has been notified.
- getId() - Method in class inventionstudio.inventionstudioandroid.Model.QueueGroups
-
Gets id.
- getIsGroup() - Method in class inventionstudio.inventionstudioandroid.Model.QueueGroups
-
Gets is group.
- getIsGroup() - Method in class inventionstudio.inventionstudioandroid.Model.QueueMember
-
Gets is group.
- getLocationAddress() - Method in class inventionstudio.inventionstudioandroid.Model.Equipment
-
Gets location address.
- getLocationDescription() - Method in class inventionstudio.inventionstudioandroid.Model.Equipment
-
Gets location description.
- getLocationId() - Method in class inventionstudio.inventionstudioandroid.Model.Equipment
-
Gets location id.
- getLocationManager() - Method in class inventionstudio.inventionstudioandroid.Model.Equipment
-
Gets location manager.
- getLocationName() - Method in class inventionstudio.inventionstudioandroid.Model.Equipment
-
Gets location name.
- getLocationPhone() - Method in class inventionstudio.inventionstudioandroid.Model.Equipment
-
Gets location phone.
- getLocationUrl() - Method in class inventionstudio.inventionstudioandroid.Model.Equipment
-
Gets location url.
- getMemberMinutesRemaining() - Method in class inventionstudio.inventionstudioandroid.Model.QueueMember
-
Gets member minutes remaining.
- getMemberName() - Method in class inventionstudio.inventionstudioandroid.Model.QueueMember
-
Gets member name.
- getMemberQueueLocation() - Method in class inventionstudio.inventionstudioandroid.Model.QueueMember
-
Gets member queue location.
- getMemberUserName() - Method in class inventionstudio.inventionstudioandroid.Model.QueueMember
-
Gets member user name.
- getMessage() - Method in class inventionstudio.inventionstudioandroid.Model.AppStatus
-
Gets message.
- getName() - Method in class inventionstudio.inventionstudioandroid.Model.Item
-
Gets name.
- getName() - Method in class inventionstudio.inventionstudioandroid.Model.QueueGroups
-
Gets name.
- getProblem() - Method in class inventionstudio.inventionstudioandroid.Model.ToolBrokenFeedback
-
Gets problem.
- getProgress() - Method in class inventionstudio.inventionstudioandroid.Model.CustomSeekBar
-
Uses methods from the parent seekbar to get progress
- getQueueGroupId() - Method in class inventionstudio.inventionstudioandroid.Model.QueueMember
-
Gets queue group id.
- getQueueGroups(int, String, String) - Method in interface inventionstudio.inventionstudioandroid.API.SumsApiService
-
Get list of queue groups from SUMS
- getQueueMembers(int, String, String) - Method in interface inventionstudio.inventionstudioandroid.API.SumsApiService
-
Get list of queue members from SUMS
- getQueueName() - Method in class inventionstudio.inventionstudioandroid.Model.QueueMember
-
Gets queue name.
- getRating() - Method in class inventionstudio.inventionstudioandroid.Model.StaffFeedback
-
Gets rating.
- getStaffName() - Method in class inventionstudio.inventionstudioandroid.Model.StaffFeedback
-
Gets staff name.
- getStudioDescription(int) - Method in interface inventionstudio.inventionstudioandroid.API.SumsApiService
-
Get description of department
- getTemplateId() - Method in class inventionstudio.inventionstudioandroid.Model.UserGroups
-
Gets template id.
- getTemplateName() - Method in class inventionstudio.inventionstudioandroid.Model.UserGroups
-
Gets template name.
- getTimestamp() - Method in interface inventionstudio.inventionstudioandroid.API.ServerApiService
-
Getting timestamp from server
- getTitle() - Method in class inventionstudio.inventionstudioandroid.Model.AppStatus
-
Gets title.
- getToolCurrentUser() - Method in class inventionstudio.inventionstudioandroid.Model.Equipment
-
Gets tool current user.
- getToolDescription() - Method in class inventionstudio.inventionstudioandroid.Model.Equipment
-
Gets tool description.
- getToolGroupName() - Method in class inventionstudio.inventionstudioandroid.Model.ToolBrokenFeedback
-
Gets tool group name.
- getToolId() - Method in class inventionstudio.inventionstudioandroid.Model.Equipment
-
Gets tool id.
- getToolInUseSince() - Method in class inventionstudio.inventionstudioandroid.Model.Equipment
-
Gets tool in use since.
- getToolIsOperational() - Method in class inventionstudio.inventionstudioandroid.Model.Equipment
-
Gets tool is operational.
- getToolName() - Method in class inventionstudio.inventionstudioandroid.Model.Equipment
-
Gets tool name.
- getToolName() - Method in class inventionstudio.inventionstudioandroid.Model.ToolBrokenFeedback
-
Gets tool name.
- getUser_username() - Method in class inventionstudio.inventionstudioandroid.Model.LoginFormObject
-
Gets user username.
- getUserGroups(String, String) - Method in interface inventionstudio.inventionstudioandroid.API.SumsApiService
-
Get list of user groups of a user from SUMS
- getUsername() - Method in class inventionstudio.inventionstudioandroid.Model.GeneralFeedback
-
Gets username.
- getUserName() - Method in class inventionstudio.inventionstudioandroid.Model.LoginFormObject
-
Gets user name.
- getUsername() - Method in class inventionstudio.inventionstudioandroid.Model.StaffFeedback
-
Gets username.
- getUsername() - Method in class inventionstudio.inventionstudioandroid.Model.ToolBrokenFeedback
-
Gets username.
- getUserName() - Method in class inventionstudio.inventionstudioandroid.Model.UserGroups
-
Gets user name.
- getUserUserName() - Method in class inventionstudio.inventionstudioandroid.Model.UserGroups
-
Gets user user name.
- getView(int, View, ViewGroup) - Method in class inventionstudio.inventionstudioandroid.Adapters.EquipmentAdapter
-
- getView(int, View, ViewGroup) - Method in class inventionstudio.inventionstudioandroid.Adapters.GroupAdapter
-
method to create a row for a group
- ghost_view - Static variable in class inventionstudio.inventionstudioandroid.R.id
-
- goIcon - Static variable in class inventionstudio.inventionstudioandroid.R.attr
-
May be a reference to another resource, in the form
"@[+][package:]type/name
" or a theme
attribute in the form
"?[package:]type/name
".
- gone - Static variable in class inventionstudio.inventionstudioandroid.R.id
-
- google_api_key - Static variable in class inventionstudio.inventionstudioandroid.R.string
-
- google_app_id - Static variable in class inventionstudio.inventionstudioandroid.R.string
-
- google_crash_reporting_api_key - Static variable in class inventionstudio.inventionstudioandroid.R.string
-
- google_play_services_version - Static variable in class inventionstudio.inventionstudioandroid.R.integer
-
- google_storage_bucket - Static variable in class inventionstudio.inventionstudioandroid.R.string
-
- group_description - Static variable in class inventionstudio.inventionstudioandroid.R.id
-
- GroupAdapter - Class in inventionstudio.inventionstudioandroid.Adapters
-
Adapter for the equipment groups
- GroupAdapter(Context, int, ArrayList) - Constructor for class inventionstudio.inventionstudioandroid.Adapters.GroupAdapter
-
Adapter for displaying the status of the equipment in the studio
- gt2 - Static variable in class inventionstudio.inventionstudioandroid.R.drawable
-


Firas Cheaib
Software Engineer | Nationality: French | Date of Birth: 1999-01-20Work Experience
TodayAug. 2019
System Software Engineer (C, Python, Java)
Combitech (SAAB) Gothenburg, Sweden- Developed 5G Baseband Radio Software for Ericsson, Team responsible for Uplink Physical Layer in High Band
- Designed and implemented High Mobility feature (specificially linear interpolation)
- Re-designed a key component of Uplink Physical Layer, saving around 1GB of memory buffers
- Designated point of contact for the Senior Customer Unit
- Professionals of Major North American and Japanese Providers, with daily SLO
- Worked as Scrum Master for a Cross Functional Team
- Mentored new team members & represented High Band program in Competence Cell
Jun. 2019Aug. 2018
Teaching Assistant
University of Gothenburg Gothenburg, Sweden- DIT355 Mini Project: Distributed Systems Development (Javascript, Java)
- Advised four student groups (7 students per group)
- Project consisted of consolidating Software Architecture and Web/Mobile Development
- Software was expected to run on multiple devices, with no central point of failure
- DIT349 Software Processes Methodologies
- Coached five student groups
- Reviewed assignments on frameworks such as Scrum, Kaban, and methodologies such as iterative lifecycles
- DIT638 Cyber Physical Systems and Systems of Systems (C++)
- Mentored four student groups (7 students per group)
- Project consisted of producing an automated vehicle relying on image recognition
- Mentored students and assisted them in producing Machine Learning models
Dec. 2018Jan. 2017
Operations Manager
The Student Association for Knowledge in Informatics and Programming Gothenburg, Sweden- Board Member
- Server Migration and Maintenance, System Administrator (3 machines)
- Web and Database Hosting, handled around 20 Virtual Machines used for University Projects
- Server Rental Management, created and handled a process for students to easily have access to servers for personal or course projects
- Hosted and managed one event per semester to promote organization around campus
Selected Projects
Jun. 2018Feb. 2018
Vehicle-To-Vehicle Platooning Embedded Development (C++)
University of Gothenburg- Development of a Vehicle-To-Vehicle Protocol, using UDP Multicast
- Developed a platooning algorithm, miniature vehicle was able to pair to another vehicle in platoon and follow it
- Lane Following Algorithm, used a queue to process commands which presented challenges when turning or driving backwards
- Designed and Implemented input methods, using Bluetooth pairing and i2c registers
- Implemented interfaces for Ultrasonic sensors as well as an IMU
Jun. 2017Feb. 2017
Arduino Semi-Automated Miniature Vehicle (C, Java)
University of Gothenburg- Embedded system written for Arduino coupled with an Android Application
- It is an automated miniature vehicle that also comprises manual driving modes using several input methods: joystick, D-PAD and tilt controls.
Education
2019
Mini-Certificate in Real World Risk Management
Real World Risk Institute New York City, NY
Jun. 2019Aug. 2016
B.Sc in Software Engineering and Management
University of Gothenburg | Chalmers University of Technology Gothenburg, Sweden
2016
French Scientific Baccalauréat (National Exam)
Academy of Grenoble Dubai, United Arab Emirates
2015
Special Topics: Leadership
George Mason University Washington, DCAs part of the Global Young Leaders Conference: Washington DC, Philadelphia, United Nations
2014
Summer School Program
Harvard University Cambridge, MAASTR S-8: Space Exploration and Astrobiology: The Search for Life in the Cosmos
MATH S-Y: Introductory Functions with Modeling


How You Help Us
2020 was a shock to everyone's system. What it demonstrated more than ever, especially in conjunction with the Black Lives Matter protests, is that it is more important than every to reach out to all memebers of our community to ensure everyone has an equal shot at safety and stability. Our goal at H.I.R.E is to help reintegrate previously-incarcerated people back into the community of OC. With no federal or state funding, our work depends on the generosity of individuals and foundations.
As a recently-founded company, our main goals are to build up community advocacy and engagement, and strengthening our team. Through your donation, we can:
- Refine and perfect our program operations
- Invest in strategic partnerships
- Strengthen our relationship with our funders
- Design in-depth voluteer education
- Provide clients with the most effective and impactful programming
The impact of even the smallest donation can be measured, and our 100% volunteer-run organization will help get supplies to those who need them most.
- $5 - Paper and pencils for a month of the program
- $8 - Cost of shipping a box of parole clothing
- $30 - Providing a funded transportation card
- $35 - Backpacks with toiletries, snacks, other essentials
- $40 - A suitcase and a wallet
- $70 - Prepaid phone for a month
- $100 - A set of interview clothes


About
Curricula
Fellowship
Follow on Twitter
404
Page not found :(
The requested page could not be found.


hello.
-
Infomys
A workout recorder that graphically represents your calendar as well as your increase in strength.
Rails, ReactJS, Ajax, & CSS
-
TubeGenius
A video annotation site for youtube videos.
Rails, Ajax, PopcornJS, Foundation
-
Minesweeper
A clone of the only good classic Microsoft computer game.
Javascript, jQuery
-
2048
A clone of the puzzle game 2048.
Javascript, jQuery


---
Title: MoraLife Ethics
layout: nonav
---
Most non-sociopaths have a Conscience, but not everyone can literally see them. That's what MoraLife can give you. By interacting with your Conscience, you can get a better insight into the type of person you really are.
- Digital Conscience - Interact with their Conscience. It will respond to the Choices you make in your day-to-day actions. You can even customize and train your Conscience.
- Virtue and Vice - Quickly glance at their most developed Virtue and most troublesome Vice just by opening the app.
- Conscience Rank - Send your Conscience to Morathology to training in order to gain Ranks and win Accessories for your Conscience.


Xcode File Template for Kiwi Tests
I started using Kiwi to drive unit tests on my most recent project. Kiwi is an excellent BDD (Behavior Driven Development) framework that helps drive your code design by making test expectations very clear. It greatly increases the readability of your unit tests.
The Kiwi library only requires implementation files to write each spec (test). Per the documentation, you follow these steps to create a spec:
- Create a .m file (no header required)
- Add an import for the Kiwi library
#import Kiwi.h
- Add the begin and end macros that expand at compile time to include the Kiwi code:
SPEC_BEGIN(SpecDescription)
SPEC_END
- Inside the
SPEC_BEGIN()
andSPEC_END
macros, write your tests
A typical Kiwi test follows this format:
1 2 3 4 5 6 7 8 9 10 |
|
Outside of the 4 lines of code that actually run the test condition, there is a lot of boilerplate code that has to be created to get up and running with a new test spec. I decided to take this opportunity to learn how to create a new Xcode file template.
I found this excellent article on creating custom Xcode file templates by Bob McCune. You can read the link for greater detail, but basically you can create custom templates that will be picked up by Xcode’s New File dialog by creating this directory ~/Library/Developer/Xcode/Templates/File Templates/
and then placing each of your custom templates inside a folder in that directory.
I created one that accepts a spec name and the first test decription. It creates a shell that includes the Kiwi import statement, the required macros, and the framework for 1 description, context, and test. The description1 is filled in based on your input in the new file creation dialog. I’ve created a downloadable zip of the required files. You should just be able to drop this into the location specified above and be up and running.
As soon as possible, I’ll also share this on GitHub.


各种图片应有尽有，你可以登陆/注册一个账号便于保存图片
AngularJS is an MVC framework for building web applications. The core features include HTML enhanced with custom component and data-binding capabilities, dependency injection and strong focus on simplicity, testability, maintainability and boiler-plate reduction.
The most popular front-end framework for developing responsive, mobile first projects on the web.The most popular front-end framework for developing responsive, mobile first projects on the web.The most popular front-end framework for developing responsive, mobile first projects on the web.


Your to-go place for all documentation, technical info, and competition specific resources.
To scout a team at a competition, use the Scouting link in the top bar.


public class LithoViewRule
extends java.lang.Object
LithoView
, ComponentTree
, width, and height specs.
@RunWith(LithoTestRunner.class)
public class LithoSampleTest {
public final @Rule LithoViewRule mLithoViewRule = new LithoViewRule();
@Test
public void test() {
final ComponentContext c = mLithoViewRule.getContext();
final Component component = MyComponent.create(c).build();
mLithoViewRule.setRoot(component)
.attachToWindow()
.setRoot(component)
.measure()
.layout();
LithoView lithoView = mLithoViewRule.getLithoView();
// Test your assertions on the litho view.
}
}
}
| Modifier and Type | Field and Description |
|---|---|
static int |
DEFAULT_HEIGHT_SPEC |
static int |
DEFAULT_WIDTH_SPEC |
| Constructor and Description |
|---|
LithoViewRule() |
| Modifier and Type | Method and Description |
|---|---|
Statement |
apply(Statement base,
Description description) |
LithoViewRule |
attachToWindow()
Explicitly attaches current root
LithoView |
LithoViewRule |
detachFromWindow()
Explicitly detaches current root
LithoView |
View |
findViewWithTag(java.lang.Object tag)
Finds the first
View with the specified tag in the rendered hierarchy, throwing if it
doesn't exist. |
View |
findViewWithTagOrNull(java.lang.Object tag)
Finds the first
View with the specified tag in the rendered hierarchy, returning null
if is doesn't exist. |
protected LayoutState |
getCommittedLayoutState() |
ComponentTree |
getComponentTree()
Gets the current
ComponentTree ; creates a new instance if null . |
ComponentContext |
getContext()
Gets the current
ComponentContext . |
protected InternalNode |
getCurrentRootNode() |
int |
getHeightSpec()
Gets the current height spec
|
LithoView |
getLithoView()
Gets the current
LithoView ; creates a new instance if null . |
int |
getWidthSpec()
Gets the current width spec
|
LithoViewRule |
layout()
Explicitly calls layout on the current root
LithoView |
LithoViewRule |
measure()
Explicitly calls measure on the current root
LithoView |
LithoViewRule |
release()
Explicitly releases current root
LithoView |
LithoViewRule |
setRoot(Component.Builder builder)
Sets the new root
Component.Builder to render. |
LithoViewRule |
setRoot(Component component)
Sets the new root
Component to render. |
LithoViewRule |
setRootAndSizeSpec(Component component,
int widthSpec,
int heightSpec)
Sets the new root
Component with new size spec to render. |
LithoViewRule |
setRootAsync(Component.Builder builder)
Sets the new root
Component.Builder to render asynchronously. |
LithoViewRule |
setRootAsync(Component component)
Sets the new root
Component to render asynchronously. |
LithoViewRule |
setSizePx(int widthPx,
int heightPx)
Sets a new width and height which should be used to render.
|
LithoViewRule |
setSizeSpecs(int widthSpec,
int heightSpec)
Sets a new width spec and height spec which should be used to render.
|
LithoViewRule |
setTreeProp(java.lang.Class<?> klass,
java.lang.Object instance)
Sets a new
TreeProp for the next layout pass. |
LithoViewRule |
useComponentTree(ComponentTree componentTree)
Sets a new
ComponentTree which should be used to render. |
LithoViewRule |
useLithoView(LithoView lithoView)
Sets a new
LithoView which should be used to render. |
public static final int DEFAULT_WIDTH_SPEC
public static final int DEFAULT_HEIGHT_SPEC
public Statement apply(Statement base, Description description)
public ComponentContext getContext()
ComponentContext
.public LithoView getLithoView()
LithoView
; creates a new instance if null
.public LithoViewRule useLithoView(LithoView lithoView)
LithoView
which should be used to render.public ComponentTree getComponentTree()
ComponentTree
; creates a new instance if null
.public LithoViewRule useComponentTree(ComponentTree componentTree)
ComponentTree
which should be used to render.public LithoViewRule setRoot(Component component)
Component
to render.public LithoViewRule setRoot(Component.Builder builder)
Component.Builder
to render.public LithoViewRule setRootAsync(Component component)
Component
to render asynchronously.public LithoViewRule setRootAsync(Component.Builder builder)
Component.Builder
to render asynchronously.public LithoViewRule setRootAndSizeSpec(Component component, int widthSpec, int heightSpec)
Component
with new size spec to render.public LithoViewRule setSizePx(int widthPx, int heightPx)
public LithoViewRule setSizeSpecs(int widthSpec, int heightSpec)
public LithoViewRule setTreeProp(java.lang.Class<?> klass, java.lang.Object instance)
TreeProp
for the next layout pass.public LithoViewRule measure()
LithoView
public LithoViewRule layout()
LithoView
public LithoViewRule attachToWindow()
LithoView
public LithoViewRule detachFromWindow()
LithoView
public LithoViewRule release()
LithoView
public int getWidthSpec()
public int getHeightSpec()
public View findViewWithTagOrNull(java.lang.Object tag)
View
with the specified tag in the rendered hierarchy, returning null
if is doesn't exist.public View findViewWithTag(java.lang.Object tag)
View
with the specified tag in the rendered hierarchy, throwing if it
doesn't exist.protected LayoutState getCommittedLayoutState()
protected InternalNode getCurrentRootNode()


These example materials were developed for the Bridging Ecology and Applications Through High Throughput Sequencing Technology Workshop (14 March 2019) using data from a ongoing project investigating the microbial communities associated with stream macroinvertebrates in the Po River. For contact information and questions see our lab webpage or Github site.
The first step is to install and load the packages you will need. The package phyloseq is a widely used package for analyzing microbial data and has a number of excellent tutorials if you would like more information. The other packages contain more general functions such as statistical testing and plotting that we will use as well.
install.packages(c("vegan","ggplot2","RCurl","plyr","dplyr"))
source('http://bioconductor.org/biocLite.R')
biocLite('phyloseq')
After the packages are installed, they will have to be loaded each time you start a new R session. You will most likely see several messages when you run the code below but as long as there are not any errors you can move on to the next steps.
library(vegan)
library(ggplot2)
library(phyloseq)
library(RCurl)
library(plyr)
library(dplyr)
To download and import the data into R, the lines below will download the sample information.
x<-getURL("https://raw.githubusercontent.com/BenbowLab/BenbowLab.github.io/master/ItalyStreamMicrobiomeMetadata.csv")
metadata<-read.csv(text= x,header=T)
head(metadata) # To see the variables in the metadata file
The file containing the sequencing information is too large to directly download into R from Github easily (1,026 KB). You will have to open a browser to download the data. The first line below will take you to the page with the data. You will see a download button, click that.
After the file is downloaded, run the next line to import the data into R. This command will open a window where you will navigate to the file and click open to select the file and load it into R.
browseURL("https://github.com/BenbowLab/BenbowLab.github.io/blob/master/ItalyInvert2018WTax.biom")
biom<-import_biom(file.choose(),parseFunction= parse_taxonomy_greengenes)
The next section of code will combine together the metadata and sequencing data into a single object in R. The rarifying step accounts for differing numbers of sequencing reads per samples by randomly choosing reads up to the chosen value.
sampdat=sample_data(metadata)
sample_names(sampdat)=metadata$id
CombinedData=merge_phyloseq(biom,sampdat)
CombinedData=rarefy_even_depth(CombinedData, 3000, replace = TRUE, trimOTUs = TRUE, verbose = TRUE,rngseed = TRUE)
## `set.seed(TRUE)` was used to initialize repeatable random subsampling.
## Please record this for your records so others can reproduce.
## Try `set.seed(TRUE); .Random.seed` for the full vector
## ...
## 504OTUs were removed because they are no longer
## present in any sample after random subsampling
## ...
Sampling and methodologies:
The data that we will be looking at are the internal microbiome of aquatic insects from different functional feeding groups at two locations with different riparian conditions (Forest vs Alpine Prairie).
The data consist of an Operational Taxonomic Unit (OTU) table, sample data, and taxonomy table. The OTU table contains the number of sequence variants. The taxonomy table includes the taxonomy information for each sequence variant, from Kingdom down to Genus. The sample data contains metadata for the study.
CombinedData
## phyloseq-class experiment-level object
## otu_table() OTU Table: [ 2442 taxa and 26 samples ]
## sample_data() Sample Data: [ 26 samples by 8 sample variables ]
## tax_table() Taxonomy Table: [ 2442 taxa by 14 taxonomic ranks ]
These are the most abundant taxon by functional feeding group and sampling station.
## Sampling_station FFG Taxon_name N meanWeight sd
## 4 Ostana Shredder Tipula_(Acutitipula) 3 534.9333 425.43289
## 2 Ostana Predator Perla 2 190.5000 174.51395
## 7 PDR Shredder Tipula_(Acutitipula) 4 87.7000 42.81799
## 5 PDR Predator Dictyogenus 4 83.9500 16.27073
## 1 Ostana Filterer Hydropsyche 4 41.4500 33.70762
## se
## 4 245.623793
## 2 123.400000
## 7 21.408993
## 5 8.135365
## 1 16.853808
The next section of code filters out bacterial taxa that occured at a low abundance and makes additional files where the samples are group together at different levels (Phylum, Family, Genus).
GPr = transform_sample_counts(CombinedData, function(x) x / sum(x) ) #transform samples based on relative abundance
GPr = filter_taxa(GPr, function(x) mean(x) > 1e-5, TRUE) #Remve very low abundance samples
PhylumAll=tax_glom(GPr, "Phylum")# Group samples at the phylum level
PhylumLevel = filter_taxa(PhylumAll, function(x) mean(x) > 1e-2, TRUE) #filter out any taxa lower tha 1%
FamilyAll=tax_glom(GPr,"Family")
FamilyLevel = filter_taxa(FamilyAll, function(x) mean(x) > 2e-2, TRUE) #filter out any taxa lower than 2%
GenusAll=tax_glom(GPr,"Genus")
GenusLevel = filter_taxa(GenusAll, function(x) mean(x) > 2e-2, TRUE) #filter out any taxa lower than 2%
The next section of code summarizes the phylum level relative abundance by a variable, in this case Functional feeding group, which we will use to plot the data.
df <- psmelt(PhylumLevel)
df$Abundance=df$Abundance*100
Trtdata <- ddply(df, c("Phylum", "FFG"), summarise, #To look at other variables change "FFG", to look at other taxanomic levels change Phylum and use the coorosponding file (e.g. FamilyLevel)
N = length(Abundance),
mean = mean(Abundance),
sd = sd(Abundance),
se = sd / sqrt(N)
)
head(Trtdata)
## Phylum FFG N mean sd se
## 1 Actinobacteria Filterer 4 0.3583333 0.4085884 0.2042942
## 2 Actinobacteria Predator 6 1.2888889 0.5467751 0.2232200
## 3 Actinobacteria Scraper 9 1.1592593 1.1989321 0.3996440
## 4 Actinobacteria Shredder 7 1.3857143 1.8113692 0.6846332
## 5 Bacteroidetes Filterer 4 22.6333333 4.9739320 2.4869660
## 6 Bacteroidetes Predator 6 33.1388889 9.1587825 3.7390573
The next section of code will take the summarized data from above and plot the relative abundance by FFG at the phylum level.
PhylumLevelPlot=ggplot(Trtdata, aes(x=FFG,y=mean))+geom_bar(aes(fill = Phylum),colour="black", stat="identity")+xlab("FFG")+ylab("Relative Abundance (> 1%)")
PhylumLevelPlot
Shannon and Faith's Phylogenetic diversity have already been calculated for each sample and are already in the metadata file.
Faith's diversity takes into account richness, evenness, as well as the phylogenetic difference between samples. Bacterial species which are further apart on a phylogenetic tree are weighted differently than samples which are closer together.
ggplot(metadata,aes(x=FFG,y=shannon,fill=FFG))+ geom_boxplot()+ylab("Shannon Diversity")
ggplot(metadata,aes(x=FFG,y=faith_pd,fill=FFG))+ geom_boxplot()+ylab("Faith's PD")
Below is an example of how you would subset the data by site. For example, if you were interested in looking at the differences in alpha diversity between the bacterial communities only at the forested site.
OstanaMetadata<-subset(metadata, Sampling_station == "Ostana")#If you wanted to look at a different variable (e.g. shredders from both locations you would change the code to FFG == "Shredders")
ggplot(OstanaMetadata,aes(x=FFG,y=shannon,fill=FFG))+ geom_boxplot()+ylab("Shannon Diversity Ostana")
In addition to alpha diversity, we are also interested in looking at the differences in beta diversity between sample groups. To visualize differences in beta diversity, the code below uses PCoA plots with ovals repersenting the 95% confidence intervals for the mean of each group.
While this example uses jaccard distance, there are a number of other distance methods which can be used depending on the situation.
ord=ordinate(CombinedData,"PCoA", "jaccard") #To use a differetn metric change "jaccard" to the desired metric. For example "wunifrac" or "bray"
ordplot=plot_ordination(CombinedData, ord,"samples", color="FFG")+geom_point(size=4)
ordplot+ stat_ellipse(type= "norm",geom = "polygon", alpha = 1/4, aes(fill = FFG))
#If you were only interested in looking within a single location you could use the code Ostana<-subset_samples(physeq,Sampling_site =="Ostana")
What happens if you choose a different level to filter out low abundance bacteria before plotting? (e.g. PhylumLevel = filter_taxa(PhylumAll, function(x) mean(x) > 1e-4, TRUE))
How would you change the code above to plot the family level relative abundance rather than the phylum level?
Do the two locations show the same pattern in alpha diversity by functional feeding group? (Seperate the two locations and plot them both individually)
How does using a different distance metric change the beta diversity plots? (e.g using "bray" or "gower" instead of "jaccard")
Random forest is a modeling technique which uses machine learning to identify important predictors for groups of samples. It also tests how well the model it creates is able to classify samples based on the data and the variable chosen.
#install.packages("randomForest")
#install.packages("knitr")
library(knitr)
## Warning: package 'knitr' was built under R version 4.0.2
library(randomForest)
## randomForest 4.6-14
## Type rfNews() to see new features/changes/bug fixes.
##
## Attaching package: 'randomForest'
## The following object is masked from 'package:dplyr':
##
## combine
## The following object is masked from 'package:ggplot2':
##
## margin
ForestData=GenusAll#Change this one so you dont have to rewrite all variables
predictors=t(otu_table(ForestData))
response <- as.factor(sample_data(ForestData)$FFG)
rf.data <- data.frame(response, predictors)
FeedingGroupForest <- randomForest(response~., data = rf.data, ntree = 1000)
print(FeedingGroupForest)#returns overall Random Forest results
##
## Call:
## randomForest(formula = response ~ ., data = rf.data, ntree = 1000)
## Type of random forest: classification
## Number of trees: 1000
## No. of variables tried at each split: 12
##
## OOB estimate of error rate: 3.85%
## Confusion matrix:
## Filterer Predator Scraper Shredder class.error
## Filterer 3 1 0 0 0.25
## Predator 0 6 0 0 0.00
## Scraper 0 0 9 0 0.00
## Shredder 0 0 0 7 0.00
imp <- importance(FeedingGroupForest)#all the steps that are imp or imp. are building a dataframe that contains info about the taxa used by the Random Forest testto classify treatment
imp <- data.frame(predictors = rownames(imp), imp)
imp.sort <- arrange(imp, desc(MeanDecreaseGini))
imp.sort$predictors <- factor(imp.sort$predictors, levels = imp.sort$predictors)
imp.20 <- imp.sort[1:23, ]#22
ggplot(imp.20, aes(x = predictors, y = MeanDecreaseGini)) +
geom_bar(stat = "identity", fill = "indianred") +
coord_flip() +
ggtitle("Most important genera for classifying samples\n by Feeding Group")#\n in a string tells it to start a new line
#imp.20$MeanDecreaseGini
otunames <- imp.20$predictors
r <- rownames(tax_table(ForestData)) %in% otunames
otunames
## [1] acccb7cec4d146864bc11d37da55dcd0 X2b05a6e9e6c580f7fc168a5bbb29de2d
## [3] ad07e5885874179952e16bf2f7bb57b3 a7c725b951d62e6f6814fb8ca64a356e
## [5] X4367180b0dc40f77a063355ebab6a4bb X0fbb434b42e7241efa6451d8f1b429d0
## [7] b672de3b577f55a4350eabdce0f18904 dc7d0d97c9604c01c99c972b878e09a0
## [9] X43dc593942c5c838cdcb10dac0a39474 a046edb519c4e3cbdf77ada497c4d743
## [11] X5ba8d1715c2080f633d2e3de3ddae03a e32f997a31db6624fc4f67c269121d4c
## [13] X1036caae06a5e5c605ab8120e5b5b7bc X1e994910b44683e96c37da4cd04862a4
## [15] X07705f7fffe33ad226eab098040fbb75 X6b78b6e57cad2b7f9420cee2c46db2aa
## [17] X237f7729fcc16a8a864b826f36f307c3 d945dd1c4d20347007f6d0c0d0ec581e
## [19] ee705bbea43c68a47a9c2ba41efa2067 X5e419280ad42e77b964625f286da0f08
## [21] X6ea12a2a6eb7f0d377858aaeca4664e4 X33d90d9f698362388259881cb6ec497c
## [23] de46410fbc643aeaed03d6aa3878d71a
## 165 Levels: acccb7cec4d146864bc11d37da55dcd0 ...
PredictorTable<-kable(tax_table(ForestData)[r, ])#returns a list of the most important predictors for Random Forest Classification
PredictorTable
| Kingdom | Phylum | Class | Order | Family | Genus | Species | Rank5 | Rank6 | Rank7 | Rank4 | Rank2 | Rank3 | Rank1 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| e32f997a31db6624fc4f67c269121d4c | Bacteria | Bacteroidetes | Cytophagia | Cytophagales | Cytophagaceae | Leadbetterella | NA | NA | NA | NA | NA | NA | NA | NA |
| d945dd1c4d20347007f6d0c0d0ec581e | Bacteria | Deferribacteres | Deferribacteres | Deferribacterales | Deferribacteraceae | Mucispirillum | NA | NA | NA | NA | NA | NA | NA | NA |
| ee705bbea43c68a47a9c2ba41efa2067 | Bacteria | Armatimonadetes | Armatimonadia | Armatimonadales | Armatimonadaceae | Armatimonas | NA | NA | NA | NA | NA | NA | NA | NA |
| de46410fbc643aeaed03d6aa3878d71a | Bacteria | Verrucomicrobia | Verrucomicrobiae | Verrucomicrobiales | Verrucomicrobiaceae | Luteolibacter | NA | NA | NA | NA | NA | NA | NA | NA |
| dc7d0d97c9604c01c99c972b878e09a0 | Bacteria | Firmicutes | Clostridia | Clostridiales | Ruminococcaceae | Ruminococcus | NA | NA | NA | NA | NA | NA | NA | NA |
| a046edb519c4e3cbdf77ada497c4d743 | Bacteria | Proteobacteria | Betaproteobacteria | Burkholderiales | Comamonadaceae | Rhodoferax | NA | NA | NA | NA | NA | NA | NA | NA |
| b672de3b577f55a4350eabdce0f18904 | Bacteria | Proteobacteria | Gammaproteobacteria | Pseudomonadales | Moraxellaceae | Perlucidibaca | NA | NA | NA | NA | NA | NA | NA | NA |
| acccb7cec4d146864bc11d37da55dcd0 | Bacteria | Proteobacteria | Betaproteobacteria | Methylophilales | Methylophilaceae | Methylotenera | NA | NA | NA | NA | NA | NA | NA | NA |
| a7c725b951d62e6f6814fb8ca64a356e | Bacteria | Firmicutes | Clostridia | Clostridiales | Lachnospiraceae | Clostridium | NA | NA | NA | NA | NA | NA | NA | NA |
| ad07e5885874179952e16bf2f7bb57b3 | Bacteria | Bacteroidetes | Cytophagia | Cytophagales | Cytophagaceae | Emticicia | NA | NA | NA | NA | NA | NA | NA | NA |
There are a wide variety of statistical test that can be used to compare microbiome data. Below we will show an example of comparing beta diveristy using a PERMANOVA test.
This test will test whether the variablility within groups is significantly different (Are one group of samples more similar to each other than a different group.
GPdist=phyloseq::distance(CombinedData, "jaccard")
beta=betadisper(GPdist, sample_data(CombinedData)$FFG)
permutest(beta)
##
## Permutation test for homogeneity of multivariate dispersions
## Permutation: free
## Number of permutations: 999
##
## Response: Distances
## Df Sum Sq Mean Sq F N.Perm Pr(>F)
## Groups 3 0.045819 0.0152730 3.9334 999 0.014 *
## Residuals 22 0.085424 0.0038829
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
boxplot(beta)
The following test will compare whether the differences seen in the PCoA plots from above are significant, using a Permutational Analysis of Variance (PERMANOVA) test.
GPdist=phyloseq::distance(CombinedData, "jaccard")
adonis(GPdist ~ FFG*Sampling_station, as(sample_data(CombinedData), "data.frame"))
##
## Call:
## adonis(formula = GPdist ~ FFG * Sampling_station, data = as(sample_data(CombinedData), "data.frame"))
##
## Permutation: free
## Number of permutations: 999
##
## Terms added sequentially (first to last)
##
## Df SumsOfSqs MeanSqs F.Model R2 Pr(>F)
## FFG 3 3.0623 1.02075 3.0631 0.27091 0.001 ***
## Sampling_station 1 0.7067 0.70674 2.1208 0.06252 0.001 ***
## FFG:Sampling_station 2 1.2032 0.60158 1.8052 0.10644 0.001 ***
## Residuals 19 6.3316 0.33324 0.56013
## Total 25 11.3038 1.00000
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1


Search
Reset
Red
Blue
Mobile
Accessory
Heading
Tagline
Learn more
THis was meat to be!
map no 2 here.


Opening: March 27, 2004
Architectural design: Robert Mac Fadden
Art work: Irene Buarque
Platform length: 105 m
Code: AX
Wikipedia page


{% extends 'template.html' %} {% block name %} Twitcher - Project {% endblock %} {% block navbarId %}nav-projects{% endblock %} {% block headElem %} {% endblock %} {% block bodyElem %}
This project makes use of the BWI Project codebase. Specifically, the bwi_kr_execution, or knowledge reasoner, package. This provides a set of services to send goals to the robots.
The twitter handler is divided into 4 distinct components: The twitter connection, the manager, the interpreter and the action executor. The twitter connection essentially is in charge of connecting to twitter, both directly fetching new tweets and sending responses.
The second, the manager, coordinates all actions. It receives new tweets from the connection, decides when to send responses, and sends requests to both the interpreter and action executors.
Next up, we have the interpreter. This one is in charge of converting tweets into an action. This self-contained box is where all the research will happen going forward. Currently is uses a simple regex pattern, but the long term goal is to use NLP to identify messages accordingly.
Finally, we have the action executor. This one simply translates action messages into goals to be sent to the knowledge reasoner. From here, we can ask the robot to create a plan to go to a particular room or hallway.
Download the code here:


|
geopm-service
GEOPM Systemd Service
|
#include <NVMLDevicePool.hpp>
Public Member Functions | |
| NVMLDevicePool ()=default | |
| virtual | ~NVMLDevicePool ()=default |
| virtual int | num_gpu (void) const =0 |
| Number of GPUs on the platform. More... | |
| virtual std::unique_ptr< cpu_set_t, std::function< void(cpu_set_t *)> > | cpu_affinity_ideal_mask (int gpu_idx) const =0 |
| CPU Affinitization mask for a particular GPU. More... | |
| virtual uint64_t | frequency_status_sm (int gpu_idx) const =0 |
| Get the NVML device streaming multiprocessor frequency in MHz. More... | |
| virtual std::vector< unsigned int > | frequency_supported_sm (int gpu_idx) const =0 |
| Get the supported NVML device streaming multiprocessor frequencies in MHz. More... | |
| virtual uint64_t | utilization (int gpu_idx) const =0 |
| Get the NVML device utilization metric. More... | |
| virtual uint64_t | power (int gpu_idx) const =0 |
| Get the NVML device power in milliwatts. More... | |
| virtual uint64_t | power_limit (int gpu_idx) const =0 |
| Get the NVML device power limit in milliwatts. More... | |
| virtual uint64_t | frequency_status_mem (int gpu_idx) const =0 |
| Get the NVML device memory subsystem frequency in MHz. More... | |
| virtual uint64_t | throttle_reasons (int gpu_idx) const =0 |
| Get the current NVML device clock throttle reasons. More... | |
| virtual uint64_t | temperature (int gpu_idx) const =0 |
| Get the current NVML device temperature. More... | |
| virtual uint64_t | energy (int gpu_idx) const =0 |
| Get the total energy consumed counter value for an NVML device in millijoules. More... | |
| virtual uint64_t | performance_state (int gpu_idx) const =0 |
| Get the current performance state of an NVML device. More... | |
| virtual uint64_t | throughput_rx_pcie (int gpu_idx) const =0 |
| Get the pcie receive throughput over a 20ms period for an NVML device. More... | |
| virtual uint64_t | throughput_tx_pcie (int gpu_idx) const =0 |
| Get the pcie transmit throughput over a 20ms period for an NVML device. More... | |
| virtual uint64_t | utilization_mem (int gpu_idx) const =0 |
| Get the NVML device memory Utilization metric. More... | |
| virtual std::vector< int > | active_process_list (int gpu_idx) const =0 |
| Get the list of PIDs with an active context on an NVML device. More... | |
| virtual void | frequency_control_sm (int gpu_idx, int min_freq, int max_freq) const =0 |
| Set min and max frequency for NVML device. More... | |
| virtual void | frequency_reset_control (int gpu_idx) const =0 |
| Reset min and max frequency for NVML device. More... | |
| virtual void | power_control (int gpu_idx, int setting) const =0 |
| Set power limit for NVML device. More... | |
| virtual bool | is_privileged_access (void) const =0 |
|
default |
|
virtualdefault |
|
pure virtual |
Get the list of PIDs with an active context on an NVML device.
| [in] | gpu_idx | The index indicating a particular GPU. |
Implemented in geopm::NVMLDevicePoolImp.
|
pure virtual |
CPU Affinitization mask for a particular GPU.
| [in] | gpu_idx | The index indicating a particular GPU. |
Implemented in geopm::NVMLDevicePoolImp.
|
pure virtual |
Get the total energy consumed counter value for an NVML device in millijoules.
| [in] | gpu_idx | The index indicating a particular GPU. |
Implemented in geopm::NVMLDevicePoolImp.
|
pure virtual |
Set min and max frequency for NVML device.
| [in] | gpu_idx | The index indicating a particular GPU. |
| [in] | min_freq | Target min frequency in MHz. |
| [in] | max_freq | Target max frequency in MHz. |
Implemented in geopm::NVMLDevicePoolImp.
|
pure virtual |
Reset min and max frequency for NVML device.
| [in] | gpu_idx | The index indicating a particular GPU. |
Implemented in geopm::NVMLDevicePoolImp.
|
pure virtual |
Get the NVML device memory subsystem frequency in MHz.
| [in] | gpu_idx | The index indicating a particular GPU. |
Implemented in geopm::NVMLDevicePoolImp.
|
pure virtual |
Get the NVML device streaming multiprocessor frequency in MHz.
| [in] | gpu_idx | The index indicating a particular GPU. |
Implemented in geopm::NVMLDevicePoolImp.
|
pure virtual |
Get the supported NVML device streaming multiprocessor frequencies in MHz.
| [in] | gpu_idx | The index indicating a particular GPU. |
Implemented in geopm::NVMLDevicePoolImp.
|
pure virtual |
Implemented in geopm::NVMLDevicePoolImp.
|
pure virtual |
Number of GPUs on the platform.
Implemented in geopm::NVMLDevicePoolImp.
|
pure virtual |
Get the current performance state of an NVML device.
| [in] | gpu_idx | The index indicating a particular GPU. |
Implemented in geopm::NVMLDevicePoolImp.
|
pure virtual |
Get the NVML device power in milliwatts.
| [in] | gpu_idx | The index indicating a particular GPU. |
Implemented in geopm::NVMLDevicePoolImp.
|
pure virtual |
Set power limit for NVML device.
| [in] | gpu_idx | The index indicating a particular GPU. |
| [in] | setting | Power cap in milliwatts. |
Implemented in geopm::NVMLDevicePoolImp.
|
pure virtual |
Get the NVML device power limit in milliwatts.
| [in] | gpu_idx | The index indicating a particular GPU. |
Implemented in geopm::NVMLDevicePoolImp.
|
pure virtual |
Get the current NVML device temperature.
| [in] | gpu_idx | The index indicating a particular GPU. |
Implemented in geopm::NVMLDevicePoolImp.
|
pure virtual |
Get the current NVML device clock throttle reasons.
| [in] | gpu_idx | The index indicating a particular GPU. |
Implemented in geopm::NVMLDevicePoolImp.
|
pure virtual |
Get the pcie receive throughput over a 20ms period for an NVML device.
| [in] | gpu_idx | The index indicating a particular GPU. |
Implemented in geopm::NVMLDevicePoolImp.
|
pure virtual |
Get the pcie transmit throughput over a 20ms period for an NVML device.
| [in] | gpu_idx | The index indicating a particular GPU. |
Implemented in geopm::NVMLDevicePoolImp.
|
pure virtual |
Get the NVML device utilization metric.
| [in] | gpu_idx | The index indicating a particular GPU. |
Implemented in geopm::NVMLDevicePoolImp.
|
pure virtual |
Get the NVML device memory Utilization metric.
| [in] | gpu_idx | The index indicating a particular GPU. |
Implemented in geopm::NVMLDevicePoolImp.


PACManTokenizer¶
-
class
utils.tokenizer.
PACManTokenizer
¶ Bases:
object
This class contains the text pre-processing functionality
The tokenizer object leverages the powerful NLP model, spaCy, to perform the lemmatization and tokenization of each proposal’s text.
Attributes Summary
Base path of the pacman package
List of files to process
spaCy Natural Language Processing object
List of stop words to use
Methods Summary
get_stop_words
([fname, default_stop_words])Read in custom list of stop words stored in the input file
plot_tokens
(tokens[, title, xlim, ylim, N, fout])- param tokens
tokens extracted from the text
run_tokenization
(fname[, N, plot])Tokenize the supplied file
spacy_tokenizer
(text[, stop_words, punctuations])Tokenizer using the spaCy nlp toolkit.
Attributes Documentation
-
base
¶ Base path of the pacman package
-
flist
¶ List of files to process
-
spacy_nlp
¶ spaCy Natural Language Processing object
-
stop_words
¶ List of stop words to use
Methods Documentation
-
get_stop_words
(fname=None, default_stop_words=None)¶ Read in custom list of stop words stored in the input file
-
plot_tokens
(tokens, title=None, xlim=None, ylim=None, N=20, fout=None)¶
-
run_tokenization
(fname, N=20, plot=False)¶ Tokenize the supplied file
- Parameters
fname (str) – Path to file containing the text to tokenize
-
spacy_tokenizer
(text, stop_words=[], punctuations=[])¶ Tokenizer using the spaCy nlp toolkit.


generic content without role
generic content without role
content with a global aria prop
content with aria labelledby
content with aria labelledby
List item 1
List item 1


4 Control and Loops
4.1 If Statement
4.2 For Loops
4.2.1 For .. Else Construct
else
is only executed when the for loop completed all cycles
= [1,2,3,4,5]
mylist
for i in mylist:
print (i)
else:
print('Hooray, the loop is completed successfully')
#:> 1
#:> 2
#:> 3
#:> 4
#:> 5
#:> Hooray, the loop is completed successfully
In below exmaple, for loop encountered break
, hence the else
section is not executed.
for i in mylist:
if i < 4:
print (i)
else:
print('Oops, I am breaking out half way in the loop')
break
else:
print('Hooray, the loop is completed successfully')
#:> 1
#:> 2
#:> 3
#:> Oops, I am breaking out half way in the loop
4.2.2 Loop thorugh ‘range’
for i in range (1,10,2):
print ('Odds Number : ',i)
#:> Odds Number : 1
#:> Odds Number : 3
#:> Odds Number : 5
#:> Odds Number : 7
#:> Odds Number : 9
4.2.3 Loop through ‘list’
<IP_ADDRESS> Standard For Loop
= ['a','b','c','d']
letters for e in letters:
print ('Letter : ',e)
#:> Letter : a
#:> Letter : b
#:> Letter : c
#:> Letter : d
<IP_ADDRESS> List Comprehension
Iterate through existing list, and build new list based on conditionnew_list = [expression(i) for i in old_list]
= ['abc','abcd','bcde','bcdee','cdefg']
s for x in s] [x.upper()
#:> ['ABC', 'ABCD', 'BCDE', 'BCDEE', 'CDEFG']
Extend list comprehension can be extended with if
condition**new_list = [expression(i) for i in old_list if filter(i)]
= ['abc','abcd','bcde','bcdee','cdefg']
old_list = [ x.upper() for x in old_list if 'bcd' in x ]
matching print( matching )
#:> ['ABCD', 'BCDE', 'BCDEE']
4.3 Generators
- Generator is lazy, produce items only if asked for, hence more memory efficient
- Generator is function with ‘yield’ instead of ‘return’
- Generator contains one or more yields statement
- When called, it returns an object (iterator) but does not start execution immediately
- Methods like iter() and next() are implemented automatically. So we can iterate through the items using next()
- Once the function yields, the function is paused and the control is transferred to the caller
- Local variables and their states are remembered between successive calls
- Finally, when the function terminates, StopIteration is raised automatically on further calls
4.3.1 Basic Generator Function
Below example give clear understanding of how generator works
def my_gen():
= 1
n print('This is printed first')
# Generator function contains yield statements
yield n
+= 1
n print('This is printed second')
yield n
+= 1
n print('This is printed at last')
yield n
= my_gen()
a type(a)
#:> <class 'generator'>
next(a)
#:> This is printed first
#:> 1
next(a)
#:> This is printed second
#:> 2
4.3.2 Useful Generator Fuction
Generator is only useful when it uses for-loop - for-loop within generator - for-loop to iterate through a generator
def rev_str(my_str):
= len(my_str)
length for i in range(length - 1,-1,-1):
yield my_str[i]
for c in rev_str("hello"):
print(c)
#:> o
#:> l
#:> l
#:> e
#:> h
4.3.3 Generator Expression
Use () to create an annonymous generator function
= [1, 3, 6, 10]
my_list = (x**2 for x in my_list) a
next(a)
#:> 1
next(a)
#:> 9
sum(a) # sum the power of 6,10
#:> 136
4.3.4 Compare to Iterator Class
class PowTwo:
def __init__(self, max = 0):
self.max = max
def __iter__(self):
self.n = 0
return self
def __next__(self):
if self.n > self.max:
raise StopIteration
= 2 ** self.n
result self.n += 1
return result
Obviously, Generator is more concise and cleaner
def PowTwoGen(max = 0):
= 0
n while n < max:
yield 2 ** n
+= 1 n