Note that lots of the info that should be on this page has not been written up yet. Please see the to do list for information on how you can help.
At startup, dtnd creates an initializes a TCL interpreter. It then loads and evaluates the contents of the configuration file. For more info on the TCL language, see the TCL homepage.
The name of the configuration file is usually set with the -c argument. If the -c argument is missing, dtnd will try to load /etc/dtn.conf. If that file is not readable, it will try to read daemon/dtn.conf. If that file is not readable, it will log a warning and continue without a configuration file. You may still configure dtnd by hand at the dtn% prompt.
Each of the commands that dtnd handles is described below. These are extensions to the normal TCL command set. You may always use TCL commands and other expressions in your dtn.conf configuration file. For an example of this, search for [info hostname] in the sample daemon/dtn.conf file.
Syntax: api set variable value
Example: api set local_addr <IP_ADDRESS>
Use the api command to configure the interface between dtnd and the DTN applications (like dtnping, dtncp, etc). See also environment variables which are used to control the behavior of the API clients.
| Variable | Possible settings | Default | Comments |
|---|---|---|---|
| local_addr | An IP address or a hostname. | <IP_ADDRESS> | The IP address the API Server will listen to for requests from API clients. |
| local_port | An IP port number | 5010 | The IP port on which the API Server listens for requests from API clients. |
You can use the bundle command to see the status of bundles currently being held by your dtnd.
Syntax: bundle command [id]
Example: storage set type berkeleydb
Use the bundle command to get high level information on the bundle and bundle daemon statistcs,
| Command | Comments |
|---|---|
| stats | list bundle statistics. |
| daemon_stats | list bundle daemon statistics. |
| reset_stats | reset bundle statistics. |
| list | list all bundle. |
| ids | list all bundle IDs. |
While testing a DTN, you can also inject bundles.
Syntax: bundle inject src dest payload opt1=val1, opt2=val2 optN=valN...
Example: bundle inject dtn://source.dtn dtn://dest.dtn payload
The bundle stats command shows the following counts:
Pending is the current count of bundles in dtnd's store, which may be non-zero when the server starts if bundles are still in the store from the last time the server was running. All the other counters are zeroed when the server boots. Pending is practically limited by the storage system and the memory use of dtnd. The other counters are unsigned 32-bit integers, and will roll over accordingly.
bundle reset_stats may be used to reset currently maintained statistics.
The bundle daemon_stats command shows the following counts:
The bundle list command shows a list of all pending bundles in the system. It looks like this:
dtn% bundle list Currently Pending Bundles (2): 0 : dtn://mars/rover -> dtn://jpl/images length 8096266 1 : dtn://jpl/commands -> dtn://mars/rover length 18
To the left of the colon is the bundle ID. This number is used internally by dtnd to keep track of bundles. Remote DTN implementations will never see the bundle ID. However, you can use the bundle ID with the following commands to inspect the bundles.
Using bundle info bundle-id, you can see more information about a bundle. Using bundle dump bundle-id, you can see a hex dump of the bundle. If you know the bundle has only printable characters in it, you can see it formatted as a text file using bundle dump_ascii bundle-id.
Syntax: bundle inject source dest payload
[ length ]
Example: bundle inject dtn://jpl/commands
dtn://mars/rover "turn left 30 degrees, please"
You can use bundle inject to inject a synthetic bundle into dtnd. It will route and deliver that packet just like any other bundle, as long as it is valid. You have more control over bundles you add using the dtnsend client application, so it is probably almost always a better choice, even for testing situations.
Note: It is currently possible to crash the server using bundle inject with incorrect parameters. Please do not use this command unless you can tolerate a server crash. The crash comes from a failing assert, so the daemon notices the bad bundle, it just cannot proceed with the bad bundle in the store. Once it the bad bundle is in the store, you will need to use the "--tidy" option to remove it and any other pending bundles.
The length parameter is optional. If you inject a bundle without using it, the length of the bundle will simply be the length of the string you pass in as the payload. The length parameter can allow you to make huge bundles without having to use a huge payload string. The payload string is used for at the beginning of the bundle and the remainder of the bundle is filled with zeros. (But there's a bug that makes this not work right. Try dumping out a bundle you made this way to see an assert.)
The console command is used spawn interpreter on stdin/stdout, set the console prompt string and set the console listening address and port number.
Syntax: console set arg
Example: console set prompt "$shorthostname dtn% "
| Variable | Possible settings | Default | Comments |
|---|---|---|---|
| stdio | None | stdio | spawn interpreter on stdin/stdout |
| addr | A.B.C.D | <IP_ADDRESS> | console listening address |
| port | number | 0 | console listening port |
| prompt | string | shorthostname [lindex [split [info hostname] .] 0] dtn% | console prompt string |
The debug command exists in all versions of dtnd, but the subcommands are only available if you gave "--enable-debug-memory" to the configure script while building dtnd. It is not enabled by default. You can tell if your dtnd binary has memory debugging support by running help debug.
When memory use debugging is enabled, you can get a dump of memory in use using debug dump_memory. After doing one dump, you can get diffs with debug dump_memory_diffs.
For information on debugging and configuring logging of the dtn daemon please see the logging section and .dtndebug
The discovery command is used to configure the abstraction of a neighbor discovery agent. Much like Interface, Discovery is generally created by the configuration file / console. Derived classes (such as IPDiscovery) typically bind to a UDP socket to listen for neighbor beacons. Bluetooth has built-in discovery mechanisms, so BluetoothDiscovery polls via Inquiry instead of listening on a socket.
To advertise a local convergence layer, register its local address (and port) by calling "discovery add". For each registered CL, Discovery will advertise (outbound) the CL's presence to neighbors,and distribute (inbound) each event of neighbor discovery to each CL.
This command is used to add a discovery agent.
Syntax: discovery add discovery_name cl-type [ args ]
Example: discovery add udp0d ip port=9556
Example : discovery add btd bt
Example: discovery add bonjourd bonjour
| Variable | Possible settings | Comments |
|---|---|---|
| discovery_name | string | A name string to identify the discovery agent |
| cl-type | bt | ip | bonjour | The convergence layer type. |
| args | Possible settings | Comments |
|---|---|---|
| port | number | Discovery port number if IP based |
| continue_on_error | true or false | Whether to continue on an error |
| addr | A.B.C.D | IPv4 address of .. |
| local_addr | A.B.C.D | IPv4 address of .. |
| multicast_ttl | number | Multicast time to live |
| unicast | true or false | Whether is unicast |
This command is used to announce the address of a local interface (convergence layer).
Syntax: discovery announce cl-name discovery_name cl-type
Example discovery announce udp0 udp0d udp interval=10
Example discovery announce bt0 btd bt interval=1
| args | Possible settings | Comments |
|---|---|---|
| cl_addr | A.B.C.D | IPv4 address of CL to announce |
| cl_port | number (port) | port number of CL to announce |
This command is used to remove an announcement for a local interface.
Syntax: discovery remove announce discovery_name
Example: discovery remove bt0 btd
This command is used to delete a discovery agent.
Syntax: discovery del discovery_name
This command is used to list agents and their announcement parameters.
Syntax: discovery list
The ecla command is used to control the external convergence layer (ECL) is the gateway between DTN2 and convergence layer adapters (CLAs) running outside of DTN2. Please see ecla for details.
Syntax: ecla command
Example: ecla set create_discovered_links
The gettimeofday command is used to print the result of gettimeofday() in secs.usecs format.
Syntax: gettimeofday
Example: gettimeofday
You can get help on any of the additional TCL commands in dtnd's TCL interpreter using the help command.
Syntax: help command
Example: help interface
| Command | Comments |
|---|---|
| bundle | print bundle and bundle daemon statistics and interact with the bundle daemon. Also used to examine, dump, expire, cancel and inject bundles. |
| console | set console parameters |
| debug | Command for memory debugging. Only available if "--enable-debug-memory" was given to the configure script. |
| discovery | add, delete and list discovery agent and announce parameters |
| ecla | list and set the external convergence layer adapter parameters |
| gettimeofday | print the result of gettimeofday() in secs.usecs format. |
| help | print the help documentation for cmd. |
| interface | add, delete and list interface parameters. |
| link | add, delete, reconfigure and list link parameters and statistics. Also used to modify default CLA parameters. |
| log | set log and debug file pathname and level and prefix. Also used to rotate log file, reparse rule file and list filter rules. |
| param | set various dtnd daemon parameters and policy. |
| prophet | manipulate the prophet routing protocol. These parameters should be manipulated under the route command interface like other DTN routing algorithms and protocols. |
| quit | shutdown the daemon |
| registration | add, delete and list endpoint (EID) registrations and modify registration logger. |
| route | add, delete, list routes, select and configure routing algorithms/protocols. Can be used to set various route parameters including setting of type, next hop routes, route priority, interaction with discovery, DTLSR parameters, and external route parameters. |
| shutdown | gracefully shutdown the dtnd daemon. |
| storage | set storage backend type, parameters and view statistics. |
| test | Command for developer tests |
Use the interface command to add and delete interfaces to the networks that your dtnd will talk on.
Syntax: interface add interface-name convergence-layer [ args ]
Example: interface add tcp0 tcp
Example: interface add udp0 udp local_host=<IP_ADDRESS> local_port=9999
Example: interface add bt0 bt channel=10
Example: interface add eth string://eth0 beacon_interval=1
Example: interface add null
When dtnd encounters an interface add command, it checks to make sure the named interface has not been created before. Next, it looks for a matching convergence layer. If both of those steps succeed, it passes the remaining arguments to the convergence layer to configure a new interface which will listen for incoming bundles.
The arguments, if they exist, are a list of strings (delimited by "",
or {}, according to TCL syntax). Each string starts with the parameter
name, then an equal sign ("="), then the value.
See the following pages on the different convergence layers,
and what arguments they take.
Syntax: interface del convergence-layer
Example: interface del tcp0
Deletes an interface from the system. Each convergence layer handles this individually, but generally the convergence layer stops listening for new bundles and cleans up any resources it was using.
Syntax: interface list
Example: interface list
Prints a list of the current interfaces.
The log command deals with the log file, and the log messages in it. You can add messages of your own to the log file, or trigger various actions related to the log file.
Syntax: log log-path log-level log-string
Example: log /dtnd info "dtnd parsing configuration..."
You can use the log command to add a log message to the dtnd log file. The log-path and log-level are used to filter out messages, as described in the section on Logging.
Syntax: log prefix prefix
Example: log prefix testing
The log prefix shows up in log entries after the left bracket, and
before the timestamp. You can set it to any string.
Syntax: log rotate
Use this command to force dtnd to reopen the log file for writing.
Under Unix, even after you have renamed the log file, dtnd will
continue writing log entries into the file until it executes the
log rotate command.
You can include a procedure like this in your dtnd.conf file
to arrange for dtnd to make a new log file every hour:
Of course, for this to work, you need to start dtnd in the directory
where the log file will be, and use the "-o dtnd.log" argument to set
the log file name.
Syntax: log reparse_debug_file
The system which dtnd uses to choose which messages to log and
which to hide is described in the Logging
section of the manual. This command forces dtnd to re-read the
.dtndebug file and take into account any new rules that it
finds for showing or hiding messages.
The param command is used to configure policy parameters.
Syntax: param set arg val
Rotate the log file
Example: log rotate
# Rotate the log every 3600 seconds (1 hour)
# the initial call to rotate (after the proc) is required to
# start the proc running every hour.
proc rotate {} {
set date [ clock format [ clock seconds ] -format "%Y-%m-%d-%H" ]
set new "dtnd.$date.log"
file rename "dtnd.log" $new
log rotate
after 3600000 rotate
}
rotate
Change log level
Example: log reparse_debug_file
param
param set
Example: param set link_min_retry_interval 30
| arg | Possible settings | Default | Comments |
|---|---|---|---|
| payload_test_no_remove | true or false | false | Whether not to remove bundles (for testing). |
| early_deletion | true or false | true | Whether to delete forwarded / delivered bundles before they've expired |
| suppress_duplicates | true or false | true | Whether to not route bundles that are a duplicate of any currently pending bundle |
| accept_custody | true or false | true | Whether to accept custody when requested |
| reactive_frag_enabled | true or false | true | Whether reactive fragmentation is enabled |
| retry_reliable_unacked | true or false | true | Whether to retry unacked transmissions on reliable CLs |
| test_permuted_delivery | true or false | false | Whether to permute the order of bundles before delivering to registrations. |
| injected_bundles_in_memory | true or false | false | Whether injected bundles are held in memory by default. |
| is_singleton_default | unknown|singleton|multinode | TBC | How to set the is_singleton bit for unknown schemes. |
| glob_unknown_schemes | true or false | false | Whether unknown schemes use glob-based matching for registrations and routes. |
| link_min_retry_interval | number (interval in seconds) | TBC | Default minimum connection retry interval for links. |
| link_max_retry_interval | number (interval in seconds) | TBC | Default maximum connection retry interval for links. |
| custody_timer_min | number (seconds) | TBC | Default value for custody timer min. |
| custody_timer_lifetime_pct | number (per cent) | TBC | Default value for custody timer lifetime percentage |
| custody_timer_max | number (seconds) | TBC | Default value for custody timer max. |
The prophet command is used to configure the prophet router. This command should be a route sub command (see routeroute) as are other DTN routing protocol and algorithm commands. Please see prophet router for detailed infomation.
The quit command is used to shutdown the DTN2 daemon. It is the same as shutdown.
A registration is used to represent an "application" endpoint ID registration, loosely defined to also include internal router mechanisms that consume bundles. Registration state is stored persistently in the database.
The registration command is used add, delete and list EID registrations.
Syntax: registration add opt endpoint
Example: registration add tcl dtn:alex
| opt | Possible settings | Comments |
|---|---|---|
| opt | logger or tcl | Whether to add a logger or tcl representation |
| endpoint | An EID (URI) | The EID which you wish to add a registration for |
The logger option is used mostly for testing registrations. When created, this sets up a new registration within the daemon, and for any bundles that arrive, outputs logs of the bundle header fields as well as the payload data (if ascii). The implementation is structured as a thread that blocks (forever) waiting for bundles to arrive on the registration's bundle list, then logging the bundles and looping again. The logpath is set to /dtn/reg/logging/.
Syntax: registration del reg_id
Example: registration del 14
Syntax: registration list
Example: registration list
dump_tcl is used to dump a tcl representation of the registration using its registration id.
Syntax: registration dump_tcl reg_id
Example: registration dump_tcl 14
The shutdown command is used to shutdown the DTN2 daemon. It is the same as quit.
Syntax: shutdown
Example: shutdown
Syntax: storage set variable value
Example: storage set type berkeleydb
Use the storage command to configure the manner in which DTN2 will store persistent state like registrations. You may set the following variables:
| Variable | Possible settings | Default | Comments |
|---|---|---|---|
| dbdir | directory | /var/dtn/db | The directory where the DB files will be stored. Only used for type BerkeleyDB. |
| dbfile | name | DTN.db | The file name of the BerkeleyDB database. |
| payloaddir | directory | /var/dtn/bundles | The directory where bundles in transit will be stored. |
| payload_quota | number (bytes) | 0 | storage quota for bundle payloads (0 is unlimited). |
| payload_fd_cache_size | number | 32 | number of payload file descriptors to keep open in a cache. |
| server_port | number (port) | 0 | TCP port for IPC to external data store. |
| schema | name | none | File containing the XML schema for the external data store interface. |
| type | berkeleydb, mysql, postgres, filesysdb, memorydb, filesysdb | berkeleydb | Which database backend will be used. |
| dbname | name | DB | Set the database name (appended with .db as the filename in berkeleydb, used as-is for SQL variants. |
| init_db | true, false | false | When true, dtnd initialize the database on startup. |
| tidy | true, false | false | When true, dtnd cleans out the database and the bundle directories at startup. |
| tidy_wait | number (seconds) | 3 | How long to wait before really doing a tidy. |
| leave_clean_file | true, false | true | Leave a .ds_clean file on clean. |
| fs_fd_cache_size | number | 0 | Number of open fds to cache - if > 0 then this # of open fds will be cached when using Filesystem DB. |
| db_mpool | true, false | true | Use mpool in Berkeley DB. |
| db_log | true, false | true | Use logging in Berkeley DB. |
| db_txn | true, false | true | Use transactions in Berkeley DB. |
| db_sharefile | true, false | false | Use shared database file in Berkeley DB. |
| db_max_tx | number | 0 | Max # of active transactions in Berkeley DB. |
| db_max_locks | number | 0 | Max # of active locks in Berkeley DB. |
| db_max_lockers | number | 0 | Max # of active locking threads in Berkeley DB. |
| db_max_lockedobjs | number | 0 | Max # of active locked objects in Berkeley DB. |
| db_lockdetect | number (frequency) | 5000 | Frequency to check for Berkeley DB deadlocks (zero disables locking). |
Tidy is useful when there are pending bundles in the system that you do not want dtnd to continue to try to deliver. If you allow dtnd to tidy up when it has custody of a bundle, that bundle will be lost for all time and the sending application will not be notified.
For SQL backends, it is not possible at this time to configure a hostname, username, or password via the storage command. For MySQL, the defaults are hostname "localhost", Unix user name, and no password. For Postgres, the defaults are taken from the environment variables described in the PostgreSQL manual.
Syntax: route set variable value
Example: route set type static
Use the route command to configure the manner in which DTN2 will route. You may set the following variables:
| Variable | Possible settings | Default | Comments |
|---|---|---|---|
| type | static, prophet, flood, dtlsr, tca_router, tca_gateway, external | static | Which routing algorithm to use. |
| add_nexthop_routes | true, false | true | Whether or not to automatically add routes for next hop links . |
| add | dest link/endpoint [opts] | N/A | Add a static route |
| del | dest link/endpoint | N/A | Delete a static route |
| dump | N/A | N/A | print all of the static routes |
| open_discovered_links | true, false | true | Whether or not to automatically open discovered opportunistic links. |
| default_priority | number | 0 | Default priority for new routes. |
| max_route_to_chain | number | 10 | Maximum number of route_to links to follow. |
| subscription_timeout | number | 600 | Default timeout for upstream subscription. |
| dtlsr_area | string | tbc | DTLSR Administrative area for the local node. |
| dtlsr_weight_fn | number | 10 | DTLSR weight function for the graph. |
| dtlsr_weight_shift | number | 0 | DTLSR scale factor to scale the weight on down links factor by which to age the cost of a link based on its uptimei. As a link's uptime goes to zero, the cost increases by 10x the original cost. |
| dtlsr_uptime_factor | number | 10 | DTLSR aging pct for cost of down links. |
| dtlsr_keep_down_links | true or false | true | DTLSR whether or not to keep down links in the graph, marking them as stale. |
| dtlsr_recompute_delay | number (seconds) | 1 | DTLSR delay (in seconds) after receiving an LSA when we recompute the routes. Needed to prevent some flapping. |
| dtlsr_aging_interval | number (seconds) | 5 | DTLSR interval after which we locally recompute the routes to properly age links that we believe to be down. |
| dtlsr_lsa_interval | number (seconds) | 3600 | DTLSR interval at which we proactively send new LSA. Default is once per hour. |
| dtlsr_min_lsa_interval | number (seconds) | 5 | DTLSR minimum interval between LSA transmission. Default is once per five seconds. |
| dtlsr_lsa_lifetime | number (seconds) | 86400 | DTLSR expiration time for lsa announcements (default is 24 hours). |
| server_port | number (port) | 8001 | UDP port for IPC with external router(s) |
| hello_interval | number (seconds) | 30 | Seconds between hello messages with external router(s) |
| schema | string (pathname) | /router.xsd | Location of the external router interface message schema |
| xml_server_validation | true or false | true | Perform xml validation on plug-in interface messages when using external router(s) |
| xml_client_validation | true or false | false | Include meta-info in xml messages so plug-in routers can perform validation when using external router(s) |
TCARouter is an implementation of the TCA bundle routing algorithm. A TCARouter is a specialized TableBasedRouter where the route table is manipulated in response to certain control bundles (for example, a "register" bundle, or a "change-of-address" bundle). Specialized routing logic is then applied in order to route late-bound bundles addressed to a mobile node, to the mobile's current location in the network. The main interface point is the overridden handle_bundle_received function which tests for the special TCA bundles (control bundles and late-bound data bundles).
A link is an abstraction for a DTN link, i.e. a one way communication channel to a next hop node in the DTN overlay. Use the link command to configure the manner in which DTN2 will establish a communications channel to a next hop node. You may set the following variables:
Syntax: link cmd name
Example: link delete trinity_od
| cmd | name | Comments |
|---|---|---|
| Open | String | open a link |
| close | String | Close a link |
| delete | String | Delete a link |
| state | String | Get state of a link |
| stats | String | Get link statistics |
Syntax: link set_available name avail
Example: link set_available trinity_od true
| Variable | Possible settings | Default | Comments |
|---|---|---|---|
| name | String | N/A | Specify a name of a link |
| avail | true or false | true | hacky way to make the link available (only used with set_available) |
Syntax: link reconfigure name opt=val opt2=val2 optN=valN
Example: link reconfigure trinity_od mtu=1024 idle_close_time=35
Syntax: link set_cl_defaults name conv_layer opt=val opt2=val2 optN=valN
Example: link set_cl_defaults trinity_od tcp mtu=1024 idle_close_time=35
Syntax: link add name nexthop type conv_layer opt=val opt2=val2 optN=valN
Example: link add trinity_od <IP_ADDRESS> ONDEMAND tcp mtu=1024 potential_downtime=25
| Variable | Possible settings | Default | Comments |
|---|---|---|---|
| name | String | N/A | Specify a name of a link |
| nexthop | String (address) | N/A | Specify the next hop node. For IP-based links (tcp or udp), the nexthop should contain a DNS hostname or IP address, followed optionally by a : and a port. If the port is not specified, the default of 4556 is used. |
| type | Link type (see note) | ALLWAYSON, ONDEMAND, SCHEDULED, OPPORTUNISTIC | Specify the link type |
| conv_layer | udp, tcp, bt, file, eth, norm, null, extcl, serial | N/A | Specify a Convergence Layer Adapter (CLA) |
| opt | Possible settings | Default | Comments |
| mtu | number (MTU) | Set by link type | The MTU of the link, used to control proactive fragmentation. |
| min_retry_interval | number (seconds) | Set by link type | The minimum amount to wait between attempts to re-open the link. Default is set by the various link types but can be overridden by configuration parameters. |
| max_retry_interval | number (seconds) | Set by link type | The minimum amount to wait between attempts to re-open the link. Default is set by the various link types but can be overridden by configuration parameters. |
| idle_close_time | number (seconds) | 30 for ONDEMAND or 0 for OPPORTUNISTIC & ALLWAYSON | Idle time before the link is closed. MUST be zero for always on links (i.e. they are never closed). Default is 30 seconds for on demand links, zero for opportunistic links. |
| potential_downtime | number (seconds) | 30 | A conservative estimate of the maximum amount of time that the link may be down during 'normal' operation. Used by routing algorithms to determine how long to leave bundles queued on the down link before rerouting them. |
| prevhop_hdr | true or false | false | Indicates whether or not to send the previous hop header on this link. |
| cost | number (abstract cost) | 100 | The abstract cost of the link, used by routing algorithms. |
| qlimit_bundles_high | number (bundles) | tbc | The high limits on the number of bundles that should be queued on the link. The high limits are used to indicate whether or not more bundles can be queued onto the link to effect backpressure from the convergence layers. |
| qlimit_bundles_low | number (bundles) | tbc | The low limits on the number of bundles that should be queued on the link. The low limits can be used by the router to determine when to re-scan the pending bundle lists. |
| qlimit_bytes_high | number (bytes) | tbc | The high limits on the number of bytes that should be queued on the link. The high limits are used to indicate whether or not more bundles can be queued onto the link to effect backpressure from the convergence layers. |
| qlimit_bytes_low | number (bytes) | tbc | The low limits on the number of bytes that should be queued on the link. The low limits can be used by the router to determine when to re-scan the pending bundle lists. |
| retry_interval | number (seconds) | min_retry_interval | The seconds to wait between attempts to re-open an unavailable link. Initially set to min_retry_interval, then doubles up to max_retry_interval |
Links are of types as discussed in the DTN architecture ALWAYSON, ONDEMAND, SCHEDULED, OPPORTUNISTIC. The key differences from an implementation perspective are "who" and "when" manipulates the link state regarding availability.
ONDEMAND links are initializd in the AVAILABLE state, as one would expect. It remains in this state until a router explicitly opens it. An ONDEMAND link can then be closed either due to connection failure or because the link has been idle for too long, both triggered by the convergence layer. If an ONDEMAND link is closed due to connection failure, then the contact manager is notified of this event and periodically tries to re-establish the link.
For OPPORTUNISTIC links the availability state is set by the code which detects that there is a new link available to be used. SCHEDULED links have their availability dictated by the schedule implementation.
All links in the OPEN state have an associated contact that represents an actual connection. Every link has a unique name associated with it which is used to identify it. The name is configured explicitly when the link is created.
The link dump command shows the following attributes for all links:
The link dump name command shows the following detailed attributes for a specified link:
The link stats name command shows the following counts for a specified link:
The test command is used by developers to test the DTN2 daemon. It is capable of generating a segfault, triggering a panic or false assert.
Syntax: test cmd
Example: test segfault


Toggle navigation
book
goBB
dashboard
Dashboard
today
Calendario
hotel
Camere
perm_contact_calendar
Clienti
{{user.name}}
person
Profile
Profilo
Logout
notifications
5
Notifications
Mike John responded to your email
You have 5 new tasks
You're now friend with Andrew
Another Notification
Another One
add_alert
AGG. PRENOTAZIONE
Loading...
Success
Error


ILM and Curator!edit
Curator will not act on any index associated with an ILM policy without
setting allow_ilm_indices
to true
.
Curator and ILM can coexist. However, to prevent Curator from accidentally interfering, or colliding with ILM policies, any index associated with an ILM policy name is excluded by default. This is true whether you have a Basic license or not, or whether the ILM policy is enabled or not.
Curator can be configured to work with ILM-enabled indices by setting the
allow_ilm_indices
option to true
for any action.
Learn more about Index Lifecycle Management here.


Convert isolines or isobands to an sf geometry collection (sfg
) object. Further downstream
processing needs to happen via the sf package.
iso_to_sfg(x)
| x | The object to convert. |
|---|
The function iso_to_sfg()
is a generic that takes an object created by either isolines()
or isobands()
and turns it into a simple features (sf) geometry collection. Importantly,
the isobanding algorithm can produce polygons that do not represent valid simple features. This
happens usually when the lower limit of an isoband is exactly equal to some data values (see
examples for a demonstration). This can be worked around either by slightly shifting the data
or band limits (e.g., round all data values and then shift them by a value smaller than the
rounding error) or by fixing the geometries using the function st_make_valid()
.
library(sf)#> Warning: package ‘sf’ was built under R version 3.6.2#>library(ggplot2) # Example 1: simple 5x5 matrix m <- matrix(c(0, 2, 2, 2, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0), 5, 5, byrow = TRUE) z <- isolines(1:ncol(m), nrow(m):1, m, c(0.5, 1.5)) lines <- iso_to_sfg(z) x <- st_sf(level = names(lines), geometry = st_sfc(lines)) ggplot(x) + geom_sf(aes(color = level))# Example 2: volcano dataset m <- volcano b <- isobands((1:ncol(m))/(ncol(m)+1), (nrow(m):1)/(nrow(m)+1), m, 10*9:19, 10*10:20) bands <- iso_to_sfg(b) x <- st_sf(level = as.numeric(sub(":.*", "", names(bands))), geometry = st_sfc(bands)) ggplot(x) + geom_sf(aes(color = level, fill = level))# Example 3: invalid simple features m <- matrix(c(1.5, 1.5, 1.5, 1.5, 0.6, 0.5, 1.5, 1.5, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0.7, 0, 0.9, 1.3, 1.8, 1.4, 0.4), 5, 5, byrow = TRUE) raw <- isobands(1:5, 5:1, m, levels_low = 0:1, levels_high = 1:2) bands <- iso_to_sfg(raw) iso <- st_sf( id = factor(1:length(bands)), geometry = st_sfc(bands) ) # the geometries are not valid st_is_valid(iso, reason = TRUE)#> [1] "Self-intersection[2 2]" #> [2] "Too few points in geometry component[4 3]"## make all geometries valid #iso2 <- st_make_valid(iso) #st_is_valid(iso2, reason=TRUE) ## the plot looks unchanged (this is not always the case) #ggplot(iso2, aes(fill = id)) + geom_sf() # alternatively, if we shift all data values by a tiny # amount (here, 1e-10) so they don't coincide with the band # limits, no invalid geometries are generated. raw <- isobands(1:5, 5:1, m + 1e-10, levels_low = 0:1, levels_high = 1:2) bands <- iso_to_sfg(raw) iso <- st_sf(id = factor(1:length(bands)), geometry = st_sfc(bands)) st_is_valid(iso, reason = TRUE)#> [1] "Valid Geometry" "Valid Geometry"


Skipole WSGI generator.
Examples of using various Python packages with skipole are given here. Note: these have only been tested on Linux.
In general you will probably want to try these in a virtual environment, for example, use the following:
python3 -m venv ~/myenv
source ~/myenv/bin/activate
pip install -U pip setuptools wheel
pip install skipole
pip install skilift
pip install other packages you may want to test
create a directory, and move to it, then create a skipole project, note the trailing space dot, for current directory.
python -m skilift myproj .
which creates the file myproj.py in your current directory, then edit it appropriately.
The following links gives examples of code:
Serving svg inline charts produced by Matplotlib
Serving svg image charts produced by Matplotlib


The King of Birds
You park beside the shopping cart return,
get out and pause to breathe the tensing cold.
A line of channel drains is choked with leaves.
And then a wren rasp-clattering unseen
inside the hedge beneath a streetlight pole:
at birth, altricial in undergrowth;
your mother read its fabled, failed attempts
to be the King of Birds; at death, a clot
of decomposing feather, bone and claw.
A kindergarten teleology—
from A to B, life, death, et cetera
—takes shape as shopping carts, this cold, a wren,
the world since waking leads to here, your lungs
so bright they shape the heaving of the sky.
Reprinted from Fifth Wednesday 14 (2014).


Interface: AsyncStdControl
interface AsyncStdControl
Please refer to TEP 115 for more information about this interface and its
intended use.
This is the asynchronous counterpart to the StdContol interface. It
should be used for switching between the on and off power states of
the component providing it. This interface differs from the
StdControl interface only in the fact that any of its commands can
be called from asynchronous context.
- Author:
-
Joe Polastre
-
Kevin Klues<EMAIL_ADDRESS>Commands
command error_t start()
command error_t stop()
Commands - Details
start
command error_t start()
- Returns:
-
SUCCESS if the component was either already on or was
successfully turned on
FAIL otherwise
stop
command error_t stop()
- Returns:
-
SUCCESS if the component was either already off or was
successfully turned off
FAIL otherwise


{% extends 'base.html' %} {% load static %} {% block content %} {% include 'partials/_menu.html' %} Dear, {{ user.first_name }} Below you can go to the personal data page or the page with your products View your personal data View my products Change Password Delete Account {% include 'partials/_footer.html' %} {% endblock %}


You mean while I'm sleeping in it? Um, is this the boring, peaceful kind of taking to the streets? No! I want to live! There are still too many things I don't own! Or a guy who burns down a bar for the insurance money!
Shinier than yours, meatbag. And from now on you're all named Bender Jr. Incidentally, you have a dime up your nose. I decline the title of Iron Cook and accept the lesser title of Zinc Saucier, which I just made up. Uhh… also, comes with double prize money. Humans dating robots is sick.
You people wonder why I'm still single? It's 'cause all the fine robot sisters are dating humans! I didn't ask for a completely reasonable excuse! I asked you to get busy! Do a flip! I could if you hadn't turned on the light and shut off my stereo.
You mean while I'm sleeping in it? Um, is this the boring, peaceful kind of taking to the streets? No! I want to live! There are still too many things I don't own! Or a guy who burns down a bar for the insurance money!
Shinier than yours, meatbag. And from now on you're all named Bender Jr. Incidentally, you have a dime up your nose. I decline the title of Iron Cook and accept the lesser title of Zinc Saucier, which I just made up. Uhh… also, comes with double prize money. Humans dating robots is sick.
You people wonder why I'm still single? It's 'cause all the fine robot sisters are dating humans! I didn't ask for a completely reasonable excuse! I asked you to get busy! Do a flip! I could if you hadn't turned on the light and shut off my stereo.
You mean while I'm sleeping in it? Um, is this the boring, peaceful kind of taking to the streets? No! I want to live! There are still too many things I don't own! Or a guy who burns down a bar for the insurance money!
Shinier than yours, meatbag. And from now on you're all named Bender Jr. Incidentally, you have a dime up your nose. I decline the title of Iron Cook and accept the lesser title of Zinc Saucier, which I just made up. Uhh… also, comes with double prize money. Humans dating robots is sick.
You people wonder why I'm still single? It's 'cause all the fine robot sisters are dating humans! I didn't ask for a completely reasonable excuse! I asked you to get busy! Do a flip! I could if you hadn't turned on the light and shut off my stereo.


Programme At A Glance
Monday
| Time | Monday 27/11 | |
|---|---|---|
| 850 | Housekeeping | |
| 900 |
Welcome Samuel Mueller, President Traditonal welcome to Australia by a representative of the Bundjalung Elizabeth Thompson, President of the IBS |
|
| 940 |
Agricultural And Agri-Environmental Statistics With Support Of Geospatial Information, Methodological Issues Elisabetta Carfagna University of Bologna, Italy |
|
| 1030 | Morning Tea (30 minutes) | |
| Modelling | Sampling, Complex Surveys, And Mixed Models | |
| 1100 |
Developing A Regulatory Definition For The Authentication Of Manuka Honey Claire McDonald, Ministry for Primary Industries, NZ |
On Testing Random Effects In Linear Mixed Models Alan Welsh, ANU |
| 1120 |
Analysing Digestion Data Maryann Staincliffe, AgResearch Ltd. |
A Permutation Test For Comparing Predictive Values In Clinical Trials Kouji Yamamoto, Osaka City University |
| 1140 |
Challenges And Opportunities Working As A Consulting Statistician With A Food Science Research Group M. Gabriela Borgognone, Queensland Department of Agriculture and Fisheries |
Robust Semiparametric Inference In Random Effects Models Michael Stewart, University of Sydney |
| 1200 |
Robust Penalized Logistic Regression Through Maximum Trimmed Likelihood Estimator Tong Wang, Shanxi Medical Universty, China |
|
| 1220 | Lunch (1 hour 10 minutes) | |
| 1330 |
A Multi-Step Classifier Addressing Cohort Heterogeneity Improves Performance Of Prognostic Biomarkers In Complex Disease Jean Yang University of Sydney |
|
| General/Education | Genetics | |
| 1420 |
How To Analyse Five Data Points With Fun Pauline O’Shaughnessy, University of Wollongong |
An Approach To Poisson Mixed Models For -omics Expression Data Irene Zeng, University of Auckland |
| 1440 |
Bayesian Spatial Estimation When Areas Are Few Aswi Aswi, Queensland University of Technology |
Knowledge-guided Generalized Biclustering Analysis for integrative –omics Analysis Qi Long, University of Pennsylvania |
| 1500 |
Understanding The Variation In Harvester Yield Map Data For Estimating Crop Traits Dean Diepeveen, Curtin University |
Citizen Science To Surveillance: Estimating Reporting Probabilities Of Exotic Insect Pests Peter Caley, CSIRO |
| 1520 | Afternoon tea (30 minutes) | |
| Computing/Big Data | Environmental Statistics | |
| 1550 |
Introduction To “Deltagen” - A Comprehensive Decision Support Tool For Plant Breeders Using R And shiny Dongwen Luo, AgResearch Ltd. |
Estimating Nitrous Oxide Emission Factors Alasdair Noble, AgResearch Ltd. |
| 1630 |
Lightning Talks followed by Poster Session Kindly Sponsored by the Grains Research and Development Corporation |
Tuesday
| Time | Tuesday 28/11 | |
|---|---|---|
| 850 | Housekeeping | |
| 900 |
Cluster Capture-Recapture: A New Framework For Estimating Population Size Rachel Fewster University of Auckland |
|
| 950 | Morning Tea (30 minutes) | |
| Missing Data | High Dimensional Data | |
| 1030 |
Propensity Score Approaches In The Presence Of Missing Data: Comparison Of Balance And Treatment Effect Estimates Jannah Baker, The George Insitute for Global Health |
Visualising Model Selection Stability in High-Dimensional Regression Models Garth Tarr, University of Sydney |
| 1050 |
The Missing Link: An Equivalence Result For Likelihood Based Methods In Missing Data Problems Firouzeh Noghrehchi, University of New South Wales |
Dimensionality Reduction of LIBS Data for Bayesian Analysis Anjali Gupta, University of Auckland |
| Medical | Modelling | |
| 1110 |
Analysis of Melanoma Data with a Mixture of Survival Models Utilising Multi-class DLDA to Inform Mixture Class Sarah Romanes, University of Sydney |
Forecasting Hotspots Of Potentially Preventable Hospitalisations With Spatially Aggregated Longitudinal Health Data: All Subset Model Selection With A Novel Implementation Of Repeated k-Fold Cross-Validation Matthew Tuson, University of Western Australia |
| 1130 |
Identifying Clusters Of Patients With Diabetes Using a Markov Birth-Death Process Mugdha Manda, University of Auckland |
Challenges Analysing Combined Agricultural Field Trials With Partially Overlapping Treatments Kerry Bell, Queensland Department of Agriculture and Fisheries |
| 1150 |
A Hidden Markov Model For Sleep Stage Detection Using Raw Tri-Axial Wrist Actigraphy Michelle Trevenen, University of Western Australia |
Sparse Phenotyping Designs For Early Stage Selection Experiments In Plant Breeding Programs Nicole Cocks, University of Wollongong |
| 1210 |
Comparisons Of Two Large Long-Term Studies In Alzheimer’s Disease Charley Budgeon, University of Western Australia |
A One-Stage Mixed Model Analysis Of Canola Chemistry Trials Daniel Tolhurst, University of Wollongong |
| 1230 |
A Semi-Parametric Linear Mixed Models For Longitudinally Measured Fasting Blood Sugar Level Of Adult Diabetic Patients Legesse Kassa Debusho, University of South Africa |
Individual And Joint Analyses Of Sugarcane Experiments To Select Test Lines Renata Alcarde Sermarini, University of Sao Paulo, Brazil |
| 1250 | Lunch (1 hour 10 minutes) |
Wednesday
| Time | Wednesday 29/11 | ||
|---|---|---|---|
| 850 | Housekeeping | ||
| 900 |
Statistics On Street Corners Dianne Cook Monash University |
||
| 950 | Morning Tea (30 minutes) | ||
| Modelling | Fisheries | Biometrics I | |
| 1030 |
Estimating Overdispersion in Sparse Multinomial Data Farzana Afroz, Univerity of Otago |
Assessing Mud Crab Meat Fullness Using Non-Invasive Technologies Carole Wright, Queensland Department of Agriculture and Fisheries |
Analysis Of Multivariate Binary Longitudinal Data: Metabolic Syndrome During Menopausal Transition Geoff Jones, Massey University |
| 1050 |
Statistical Analysis Of Coastal And Oceanographic Influences On The Queensland Scallop Fishery Wen-Hsi Yang, University of Queensland |
Saved By The Experimental Design: Testing Bycatch Reduction And Turtle Exclusion Devices In The Png Prawn Trawl Fishery Emma Lawrence, CSIRO |
Rethinking Biosecurity Inspections: A Case Study Of The Asian Gypsy Moth (AGM) In Australia Petra Kuhnert, CSIRO |
| Model Selection | Agriculture/Horticulture | Biometrics II | |
| 1110 |
Subtractive Stability Measures For Improved Variable Selection Connor Smith, University of Sydney |
GxE for Genomic Prediction Models Colleen Hunt, Queensland Department of Fisheries and Agriculture |
A Comparison Of Multiple Imputation Methods For Missing Data In Longitudinal Studies Md Hamidul Huque, Murdoch Childrens Research Institute |
| 1130 |
Species Distribution Modelling For Combined Data Sources Ian Renner, University of Newcastle |
A Factor Analytic Mixed Model Approach For The Analysis Of Genotype By Treatment By Environment Data Lauren Borg, University of Wollongong |
The Impact Of Cohort Substance Use Upon Likelihood Of Transitioning Through Stages Of Alcohol And Cannabis Use And Use Disorder: Findings From The Australian National Survey On Mental Health And Well-Being Chrianna Bharat, National Drug and Alcohol Research Centre, Australia |
| 1150 |
The LASSO On Latent Indices For Ordinal Predictors in Regression Francis Hui, ANU |
Whole‑Genome QTL Analysis For Nested Association Mapping Populations Maria Valeria Paccapelo, Queensland Department of Agriculture and Fisheries |
An Asymmetric Measure of Population Differentiation Based on the Saddlepoint Approximation Method Louise McMillan, University of Auckland |
| 1210 |
Fast And Approximate Exhaustive Variable Selection For GLMs With APES Kevin Wang, University of Sydney |
Order Selection Of Factor Analytic Models For Genotype X Environment Interaction Emi Tanaka, University of Sydney |
Multiple Sample Hypothesis Testing Of The Human Microbiome Through Evolutionary Trees Martina Mincheva, Temple University, USA |
| 1230 |
Lunch (1 hour 10 minutes) AGM |
||
| 1340 |
Statistical Strategies for the Analysis of Large And Complex Data Louise Ryan University of Technology Sydney and Harvard T.H. Chan School of Public Health |
||
| Design | Multivariate | ||
| 1430 |
Optimal Experimental Design for Functional Response Experiments Christopher Drovandi, Queensland University of Technology |
To PCA Or Not To PCA Catherine McKenzie, AgResearch Ltd. |
|
| 1450 |
An Evaluation of Error Variance Bias in Spatial Designs Emlyn Williams, ANU |
New Model-Based Ordination Data Exploration Tools For Microbiome Studies Olivier Thas, Ghent University, Belgium |
|
| 1510 |
Always Randomize? Chris Brien, University of South Australia and University of Adelaide |
Comparing Classical Criteria For Selecting Intra-Class Correlated Features For Three-Mode Three-Way Data Lynette Hunt, University of Waikato |
|
| 1530 | Afternoon tea (20 minutes) | ||
| Agriculture/Horticulture | Bayesian Statistics | ||
| 1550 |
Exploring the social relationships of dairy goats Vanessa Cave, AgResearch Ltd. |
Bayesian Semi-Parametric Spectral Density Estimation With Applications To The Southern Oscillation Index Claudia Kirch, University of Magdeburg, Germany |
|
| 1610 |
Efficient Multivariate Sensitivity Analysis Of Agricultural Simulators Daniel Gladish, CSIRO |
Bayesian Hypothesis Tests With Diffuse Priors: Can We Have Our Cake And Eat It Too? John Ormerod, University of Sydney |
Thursday
| Time | Thursday 30/11 | |
|---|---|---|
| 850 | Housekeeping | |
| 900 |
A General Framework For Functional Regression Modelling Sonja Greven LM University, Munich |
|
| 950 | Morning Tea (30 minutes) | |
| Biostatistics | Theory And Methods | |
| 1030 |
Hockey Sticks And Broken Sticks – A Design For A Single-Arm, Placebo-Controlled, Double-Blind, Randomized Clinical Trial Suitable For Chronic Diseases Hans Hockey, Biometrics Matters |
Bounding IV Estimates Using Mediation Analysis Thinking Theis Lange, University of Copenhagen |
| 1050 |
Correlated Bivariate Normal Competing Risks—Structuring Estimation In An Ill-Posed Problem Malcolm Hudson, Macquarie University |
Bayesian Regression with Functional Inequality Constraints Joshua Bon, University of Western Australia |
| Genetics/Medical | Theory And Methods | |
| 1110 |
Genetic Analysis Of Renal Function In An Isolated Australian Indigenous Community Russell Thomson, Western Sydney University |
The Performance Of Model Averaged Tail Area Confidence Intervals Paul Kabaila, La Trobe University |
| 1130 |
Deconstructing The Innate Immune Component Of A Molecular Network Of The Aging Frontal Cortex Ellis Patrick, University of Sydney |
Bias Correction In Estimating Proportions by Pooled Testing Graham Hepworth, University of Melbourne |
| 1150 |
The Parametric Cure Fraction Model of Ovarian Cancer Serifat Folorunso, University of Ibadan, Nigeria |
The Skillings-Mack Statistic For Ranks Data In Blocks John Best, University of Newcastle |
| 1210 |
Conference Close Louise Ryan |
|
| 1230 | Lunch (1 hour 10 minutes) |


--- layout: page weight: 60 title: Whitelabel Wizard navigation: show: true --- {% info %} This feature is available to customers with Silver, Gold, or Platinum accounts. {% endinfo %}
Depending on the set of Apps you have chosen, SendGrid can alter or add links to emails. This includes unsubscribe links, click tracking, and open tracking. In addition, SendGrid adds email headers that reference SendGrid's servers so remote servers can verify the authenticity of emails. These links and headers reference the sendgrid.me or sendgrid.com domain.
{% info %} SendGrid does not host domains. Do not attempt to transfer a domain to SendGrid. If you have already registered a domain, then you have a registrar, and it is likely the hosting company you have your website on. {% endinfo %} {% warning %} Any changes you make to DNS can immediately affect your client's ability to reach your resources. We cannot take any responsibility for any changes you make to DNS, so please be very careful. If you have any questions, please contact our support team. {% endwarning %} {% info %} When in doubt, contact your DNS registrar or web hosting service's technical support department. All information in this document complies with the DNS standards, but some registrars and web hosting providers handle things differently. {% endinfo %}SendGrid allows companies to customize the domain that appears, a process called Whitelabeling. SendGrid does this using a subdomain for your domain. For example, if your domain is EXAMPLE.COM, you might use EMAIL.EXAMPLE.COM, where EMAIL is your sub-domain.
Your first step is to choose a subdomain. Common examples are EMAIL, MAIL, CONTACT, NEWS, NEWSLETTER, but you can make it anything you like. Now you just need to run the Whitelabel Wizard from your account and the wizard will generate the DNS records you need to add to your DNS entries. Below are links to some hosting and domain name registrars that you might be using.
{% info %} The hosting company 1&1 does not support TXT records, so SPF cannot be specified and therefore is not supported by SendGrid. {% endinfo %}Our Whitelabel Wizard makes it easier to setup your Whitelabel by walking you through the necessary steps and verifying your settings along the way. You can access the Whitelabel Wizard by navigating to the "Developers" menu and choosing "Whitelabel"
{% info %} The Whitelabel Wizard provides you with your static IP address. {% endinfo %} {% anchor h3 %} DNS Records {% endanchor %}The following records are needed for links, SPF, DomainKeys, and DKIM to work correctly.
| location | type | value |
|---|---|---|
| email.example.com. | CNAME | sendgrid.net. |
| example.com. | TXT | v=spf1 include:sendgrid.net ~all |
| smtpapi._domainkey.example.com. | CNAME | dkim.sendgrid.net. |
| smtpapi._domainkey.email.example.com. | CNAME | dkim.sendgrid.net. |
If your DNS server does not allow underscores in CNAMES you will have problems adding the smtpapi._domainkey CNAME records. If that is the case please create the following TXT records instead:
| location | type | value |
|---|---|---|
| smtpapi._domainkey.example.com. | TXT | See Below. |
| smtpapi._domainkey.email.example.com. | TXT | See Below. |
DomainKey Value:
{% codeblock %} k=rsa; t=s; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPtW5iwpXVPiH5FzJ7Nrl8USzuY9zqqzjE0D1r04xDN6qwziDnmgcFNNfMewVKN2D1O+2J9N14hRprzByFwfQW76yojh54Xu3uSbQ3JP0A7k8o8GutRF8zbFUA8n0ZH2y0cIEjMliXY4W4LwPA7m4q0ObmvSjhd63O9d8z1XkUBwIDAQAB {% endcodeblock %} {% anchor h2 %} Dedicated IP Setup {% endanchor %}SendGrid allows you to have your own dedicated IP address to help build your own reputation. These IPs need to be mapped to real names. SendGrid handles the mapping of an IP to a name, reverse DNS records (RDNS), and expects the mapping of the name to match the IP in the RDNS record. Please use the Whitelabel Wizard or contact support for the IPs and the names needed to be setup. In this case, an IP of <IP_ADDRESS> has been given the name o1.email.domain.com. SendGrid assigns the mapping of <IP_ADDRESS> to o1.email.example.com, and the following A record is needed to map o1.email.domain.com to <IP_ADDRESS>:
| location | type | value |
|---|---|---|
| o1.email.example.com. | A | <IP_ADDRESS> |


Train Scheduler
"It says 'choo-choo-choose you,' and there's a picture of a train!" – Ralph Wiggum
Current Train Schedule
Train Name
Destination
Frequency (min)
Next Arrival
Minutes Away
Add Train
Train Name
Destination
First Train Time (HH:mm - military time)
Frequency (min)


Once you launch the Gramma R. add-in, you can overview the current issues in your text.
Click on the critical issues in the status bar to toggle a check type on.


| MATLAB 文件帮助: cv.Utils.getNumThreads | 查看 cv.Utils.getNumThreads 的代码 | Index |
getNumThreads Returns number of threads used by OpenCV for parallel regions
n = cv.Utils.getNumThreads()
The exact meaning of return value depends on the threading framework used by OpenCV library:
tbb::thread_scheduler_init
in user code conflicting with
OpenCV, then function returns default number of threads
used by TBB library.setNumThreads
with
threads > 0
, otherwise returns the number of logical
CPUs, available for the process.| Access | public |
| Sealed | false |
| Static | true |


Mowing the lawn? Nah, I'm just trimming up the dandelion garden we keep.
7/10/2008, 6:10:07 PM
Favs: 0
Retweets: 0
link--- layout: tweet ---
Mowing the lawn? Nah, I'm just trimming up the dandelion garden we keep.
7/10/2008, 6:10:07 PM
Favs: 0
Retweets: 0
link


Solving The Schrodinger Equation Using Chebfun!
My first introduction to scientific computing was working with Jared L. Aurentz. Over the summer of 2014 we worked on developing an algorithm in C, Python, and eventually Matlab to solve the Schrodinger and then calculate the hyperpolerizatbility of with the given potential.
You can read through Jared’s write brief write-up through Oxford’s research group Chebfun website.
I hope to put my significantly longer write up along with all of the code on GitHub soon!
Here’s a plot from Wikipedia of the first five chebyshev polynomials.


| OLD line(s): 64
<Description>Short-Term totals from all Forms 8949 with Box A checked</Description> | NEW line(s): 64
<Description>Short-Term totals from all Forms 8949 With Box A Checked</Description> |
| OLD line(s): 74
<Description>Short-Term totals from all Forms with 8949 Box B checked</Description> | NEW line(s): 74
<Description>Short-Term totals from all Forms 8949 With Box B Checked</Description> |
| OLD line(s): 84
<Description>Short-Term totals from all Forms with 8949 Box C checked</Description> | NEW line(s): 84
<Description>Short-Term totals from all Forms 8949 With Box C Checked</Description> |
| OLD line(s): 90,91
<!-- Short Term Gain from Installment Sales --> <xsd:element name="ShortTermGainInstallmentSales" type="USAmountType" minOccurs="0"> | NEW line(s): 90,91
<!-- Short Term Capital Gain from Installment Sales --> <xsd:element name="STCapitalGainInstallmentSales" type="USAmountType" minOccurs="0"> |
| OLD line(s): 94
<Description>Short Term Gain From Installment Sales from Form 6252, lines 26 or 37</Description> | NEW line(s): 94
<Description>Short Term Capital Gain From Installment Sales from Form 6252, lines 26 or 37</Description> |
| OLD line(s): 100,101
<!-- Short Term Gain or Loss from Like-Kind Exchanges --> <xsd:element name="ShortTermGainLossFromLikeKind" type="USAmountType" minOccurs="0"> | NEW line(s): 100,101
<!-- Short Term Capital Gain or Loss from Like-Kind Exchanges --> <xsd:element name="STCapitalGainLossFromLikeKind" type="USAmountType" minOccurs="0"> |
| OLD line(s): 104
<Description>Short-term gain (loss) from like-kind exchanges from Form 8824</Description> | NEW line(s): 104
<Description>Short-term Capital gain (loss) from like-kind exchanges from Form 8824</Description> |
| OLD line(s): 136
<Description>Long-Term totals from all Forms 8949 with Box A checked</Description> | NEW line(s): 136
<Description>Long-Term totals from all Forms 8949 With Box A Checked</Description> |
| OLD line(s): 146
<Description>Long-Term totals from all Forms 8949 with Box B checked</Description> | NEW line(s): 146
<Description>Long-Term totals from all Forms 8949 With Box B Checked</Description> |
| OLD line(s): 156
<Description>Long-Term totals from all Forms 8949 with Box C checked</Description> | NEW line(s): 156
<Description>Long-Term totals from all Forms 8949 With Box C Checked</Description> |
| OLD line(s): 162,163
<!-- Long-Term Gain from Installment Sales --> <xsd:element name="LongTermGainInstallmentSales" type="USAmountType" minOccurs="0"> | NEW line(s): 162,163
<!-- Long-Term Capital Gain from Installment Sales --> <xsd:element name="LTCapitalGainInstallmentSales" type="USAmountNNType" minOccurs="0"> |
| OLD line(s): 166
<Description>Long-term gain from installment sales from Form 6252, line 26 or 37</Description> | NEW line(s): 166
<Description>Long-term Capital gain from installment sales from Form 6252, line 26 or 37</Description> |
| OLD line(s): 172,173
<!-- Long-Term Gain or Loss from Like-Kind Exchanges --> <xsd:element name="LongTermGainLossFromLikeKind" type="USAmountType" minOccurs="0"> | NEW line(s): 172,173
<!-- Long-Term Capital Gain or Loss from Like-Kind Exchanges --> <xsd:element name="LTCapitalGainLossFromLikeKind" type="USAmountType" minOccurs="0"> |
| OLD line(s): 176
<Description>Long-term gain or (loss) from like-kind exchanges from Form 8824</Description> | NEW line(s): 176
<Description>Long-term Capital gain or (loss) from like-kind exchanges from Form 8824</Description> |
| OLD line(s): 225,226
<Description>Sale Price from Form(s) 8949, Line 2, Column (f)</Description> <LineNumber>Schedule D Part I Line 1(f), Line 2(f), Line 3(f) and Part II Line 8(f), Line 9(f) Line 10(f)</LineNumber> | NEW line(s): 225,226
<Description>Sale Price from Form(s) 8949, Line 2, Column (d)</Description> <LineNumber>Schedule D Part I Line 1(d), Line 2(d), Line 3(d) and Part II Line 8(d), Line 9(d) Line 10(d)</LineNumber> |
| OLD line(s): 235,236
<Description>Cost Or Other Basis From Form(s) 8949, Line 2, Column (g)</Description> <LineNumber>Schedule D Part I Line 1(g), Line 2(g), Line 3(g) and Part II Line 8(g), Line 9(g) Line 10(g)</LineNumber> | NEW line(s): 235,236
<Description>Cost Or Other Basis From Form(s) 8949, Line 2, Column (e)</Description> <LineNumber>Schedule D Part I Line 1(e), Line 2(e), Line 3(e) and Part II Line 8(e), Line 9(e) Line 10(e)</LineNumber> |
| OLD line(s): 253,254
<Description>Adjustments to Gain or Loss from Form(s) 8949, Line 2, Column (i)</Description> <LineNumber>Schedule D Part I Line 1(i), Line 2(i), Line 3(i) and Part II Line 8(i), Line 9(i) Line 10(i)</LineNumber> | NEW line(s): 253,254
<Description>Adjustments to Gain or Loss from Form(s) 8949, Line 2, Column (g)</Description> <LineNumber>Schedule D Part I Line 1(g), Line 2(g), Line 3(g) and Part II Line 8(g), Line 9(g) Line 10(g)</LineNumber> |
| OLD line(s): 263,264
<Description>Gain or (Loss). Combine Columns (f), (g), and (i)</Description> <LineNumber>Schedule D Part I Line 1(j), Line 2(j), Line 3(j) and Part II Line 8(j), Line 9(j) Line 10(j)</LineNumber> | NEW line(s): 263,264
<Description>Gain or (Loss). Combine Columns (d), (e), and (g)</Description> <LineNumber>Schedule D Part I Line 1(h), Line 2(h), Line 3(h) and Part II Line 8(h), Line 9(h) Line 10(h)</LineNumber> |


| 022:040 Khan | : |
Those who have been expelled from their homes unjustly only because they said: "Our Lord is Allah." - For had it not been that Allah checks one set of people by means of another, monasteries, churches, synagogues, and mosques, wherein the Name of Allah is mentioned much would surely have been pulled down. Verily, Allah will help those who help His (Cause). Truly, Allah is All-Strong, All-Mighty. |
| 022:040 Maulana | : |
Those who are driven from their homes without a just cause except that they say: Our Lord is Allah. And if Allah did not repel some people by others, cloisters, and churches, and synagogues, and mosques in which Allah's name is much remembered, would have been pulled down. And surely Allah will help him who helps Him. Surely Allah is Strong, Mighty. |
| 022:040 Pickthal | : |
Those who have been driven from their homes unjustly only because they said: Our Lord is Allah - For had it not been for Allah's repelling some men by means of others, cloisters and churches and oratories and mosques, wherein the name of Allah is oft mentioned, would assuredly have been pulled down. Verily Allah helpeth one who helpeth Him. Lo! Allah is Strong, Almighty - |
| 022:040 Rashad | : |
They were evicted from their homes unjustly, for no reason other than saying, "Our Lord is GOD." If it were not for GOD's supporting of some people against others, monasteries, churches, synagogues, and masjids - where the name of GOD is commemorated frequently - would have been destroyed. Absolutely, GOD supports those who support Him. GOD is Powerful, Almighty. |
| 022:040 Sarwar | : |
to those who were unjustly expelled from their homes only because they said, "God is our Lord." Had it not been for God's repelling some people through the might of the others, the monasteries, churches, synagogues, and mosques in which God is very often worshipped would have been utterly destroyed. God shall certainly help those who help Him. He is All-powerful and Majestic. |
| 022:040 Shakir | : |
Those who have been expelled from their homes without a just cause except that they say: Our Lord is Allah. And had there not been Allah's repelling some people by others, certainly there would have been pulled down cloisters and churches and synagogues and mosques in which Allah's name is much remembered; and surely Allah will help him who helps His cause; most surely Allah is Strong, Mighty. |
| 022:040 Sherali | : |
Those who have been driven out from their homes unjustly, only because they said, 'Our Lord is ALLAH.' And if ALLAH had not repelled some people by means of others, cloisters and churches and synagogues and mosques, wherein the name of ALLAH is oft remembered, would surely have been destroyed. And ALLAH will, surely, help him who helps HIM. ALLAH is, indeed, Powerful, Mighty - |
| 022:040 Yusufali | : |
(They are) those who have been expelled from their homes in defiance of right,- (for no cause) except that they say, "our Lord is Allah". Did not Allah check one set of people by means of another, there would surely have been pulled down monasteries, churches, synagogues, and mosques, in which the name of Allah is commemorated in abundant measure. Allah will certainly aid those who aid his (cause);- for verily Allah is full of Strength, Exalted in Might, (able to enforce His Will). |
Concepts/Themes Covered: أركان الإسلام > التوحيد > توحيد الله تعالي > صفات الله تعالى > القويّ Pillars of Islam> Islamic> Oneness of Allah> His Glory's Characteristics> The All Strong أركان الإسلام > الصلاة > المساجد > مكانة المساجد وحرمتها Pillars of Islam> The Prayers> Mosques> The Mosques Rank and their Sacredness الدعوة إلى الله > حدودها > الاضطهاد بسبب العقيدة ظلم لا يجوز The Call for Allah> Its Limits> Persecution due to Belief is Impermissible Oppression الدعوة إلى الله > حدودها > التساهل مع المسالمين The Call for Allah> Its Limits> Lenient with the Peace-Loving الجهاد > الجهاد في سبيل الإسلام > الدعوة إلى الجهاد Jihad> The Call to Jihad>The Call for the Holy War العلاقات القضائية > أحكام قانونية > النفي Judicial Relationships>Legal Rules>Negation
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


An Ember JS application. The Economic Value Atlas is a decision-support tool that enables you to exhibit economic conditions among communities in the Portland-Vancouver region.
The Regional Barometer provides information about racial equity, communities, climate, the natural environment, the economy and transportation.
A custom reports generator that accepts input from ArcGIS feature layers and many other sources.


{% extends "base/base.html" %} {% block title %}Page Not Found{% endblock %} {% load static %} {% block content %}
Perhaps visit the index and seek again!


 I had no idea what it would do, and I used to think that people only smoked to make themselves look cool, and then continued smoking only because they were addicted. Almost everyone in my family smokes, and the only person that I ever asked questions to was my grandpa, who basically just told me that it has no positive effects. He said he started when he was 13, and that he had to 'force himself to start'.
Well I got busted with weed, and I was on probation for a couple months, so I was just dying for any type of high that I could get. I tried nitrous, which was nothing like I had heard. It was a good high, but I couldn't find 'whippets' anywhere and whip cream cans are expensive, plus it's very messy. So I tried to get something cheaper. After reading about various other inhalants, I concluded that nitrous is really the only 'good' inhalant, but that still wasn't really an option. I live in a crappy area and anything besides weed is nearly impossible to obtain.
So that left me with tobacco. It was easy to get, it was cheap, and my parents would provide me with it. So one day I asked my dad for a cig. He actually smokes 'mini-cigars', so he gave me one of those. At about midnight, I decided to try it. I've heard a lot about people saying that it will make you cough uncontrollably. I lit it up, and took a short puff. I didn't even inhale. I was just trying to get a taste of what the smoke is like. Not too bad. Then I decide that maybe I should try putting it in my pipe instead. So I take just a tiny bit of the tobacco out of the mini cigar, and put it in my pipe. I then proceeded to smoke it like weed. I took a long toke and sucked in air afterwards. Immediately, I realize that this is the harshest smoke I have ever inhaled. I held it for a few seconds, then exhaled. Didn't couph at all.
Within seconds, I feel a weird feeling.  I feel euphoric. After a minute or so, the dizziness went away and I just feel relaxed and an overall 'good' feeling. I'm dissipointed that it didn't last very long.
But that first time was almost as good as the first time I tried weed. I didn't want to become addicted, so I just thought that I'd only do it about once a week, or on special occasions, and never by myself. Well the next day, a couple of my friends came over (although they're drug-free). It was a special occasion, so I smoked it again. The effects weren't necessarily as intense as the first time, but still great. The next day, my best buddy comes over. He's disappointed that I have no weed, but I tell them that I have some tobacco. I told him that we're going to smoke a cigar in my pipe... he laughed at me and said I'm crazy. I told him to just pretend it's weed. So we smoked a bowl of that, and he was impressed.
So I started to do it every day... and then instead of just smoking a little bit in my pipe, I started smoking the actual cigars. Now it's been about a month and I've had about three a day. I don't feel addicted... and I don't feel any desire, craving, or 'need' to smoke tobacco. I simply do it to get the buzz, which is now nothing like it first was. But I've read at a few places that nicotine tolerance is permanant, and doesn't ever go down. So now I don't see a reason not to do it every day.
But a few days ago, I ran out of the 'full-flavor' cigars, and decided to get some 'vanilla' flavored ones.  Well I tried inhaling these... in an effort to get that intense buzz I got my first time. Well I sure got my buzz... but as I got up to go upstairs and get a coke, I thought to myself '... this is unpleasant'. By the time I got back to my couch, I realized that the 'unpleasant' feeling was now turning into nausea. I was feeling sicker by the second. I felt a desire to take a shit, so I got up to go to the toilet. I now feel an intense desire to vomit. After I took a shit, I felt a little better. I took off my shirt to help the nausea, then took a couple Tums. I grabbed some duritos and went back to my couch and layed down. The doritos seemed to help the nausea a little. But it didn't go away fully until I went to sleep. I felt fine the next morning. I didn't smoke at all the next day.
A few days later I was talking to my mom, who smokes cigarettes. She said she tried one of my dad's cigars, but inhaled it like a cigarette. She said she felt really sick and almost vomited. I told her I felt the same way.
I've only experienced the nausia with the vanilla flavored cigars. It's a good, cheap substitute when I don't have any bud, but that's all it's good for.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Thank you for your message. We will get back to you shortly.
Fill in the form below to send us a message.
* No spam from us ever!


The guiding intent of futureperfect is simple: to envision the future of our designed world, not merely in how it might develop, but in how it should develop. Gathering experts from the diverse fields of technology, design, and policy, we are here to discuss the convergence and connection between the physical, digital, and social.
Speaker Profile
Dana Chisnell is an experienced practitioner of civic design. She teaches design in government at the Harvard Kennedy School of Government, and recently came off a 2-year stint as “generalist problem solver” for the United States Digital Service.
Futureperfect will begin on Friday, July 7th and last through Sunday, July 9th. The host city for this year is Washington, D.C.
Panel Overview
intuitive interaction and the integration of technology and space
As more and more companies develop “smart” products, it has become increasingly clear that these devices are, in fact, quite dumb. As our panelists will tell you, a smart product is not made from a touch screen and an internet connection: it is made from thoughtful, considered design, that imagines new possibilities for the interaction and integration between the digital and the physical.
Through a review of a variety of design case studies, our panelists will put forward alternative ideas for what constitutes a “smart” device.
All panels and conference-related events will take place at the Walter E. Washington Convention Center, located at 801 Mt. Vernon Place NW. Attendees are advised to book hotel arrangements in the area as soon as possible; discounts are availbe to attendees for hotels in the direct vicinity of the convention center.


package metastore
- Alphabetic
- By Inheritance
- metastore
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
-
def
filterPartitions(db: String, tableName: String, partitionsToKeepLike: Seq[String])(implicit spark: SparkSession): Array[String]
Returns a list of paths to partitions which name corresponds (contains) string(s) included in partitionsToKeepLike collection
Returns a list of paths to partitions which name corresponds (contains) string(s) included in partitionsToKeepLike collection
- db
- hive database name
- tableName
- hive table name
- partitionsToKeepLike
- collection of partition names part for filtering
-
def
getListOfTableFiles(sourceDbName: String, sourceTableName: String)(implicit spark: SparkSession): Array[String]
Gets array of paths to files of a table.
Gets array of paths to files of a table. The list of files comes from hive metastore cache.
-
def
getTableL1PartitionsPaths(db: String, tableName: String)(implicit spark: SparkSession): Array[String]
Returns paths to first level partitions of a table
Returns paths to first level partitions of a table
- db
- hive database name
- tableName
- hive table name
-
def
getTableLocation(databaseName: String, tableName: String)(implicit spark: SparkSession): String
Returns location of a folder assigned to the hive table
Returns location of a folder assigned to the hive table
- databaseName
- hive database name
- tableName
- hive table name
-
def
getTableLocation(tableName: String)(implicit spark: SparkSession): String
Gets location of hive table in current database
Gets location of hive table in current database
- returns
String containing path to the table folder
-
def
refreshMetadata(db: String, table: String)(implicit spark: SparkSession): Unit
Refreshes hive metadata for hive table.
Refreshes hive metadata for hive table. It will also refresh partitions, if table is partitioned
- db
- hive database
- table
- hive table name
- object TableMetadataValidator


There are a few rules that all states must abide by when drawing their districts:
Districts must be roughly equal in population ("one person, one vote").
Districts must be contiguous (one connected shape).
Districts must comply with racial fairness via the Voting Rights Act of 1965 (see Section 4.7 for more information).
Redistricting can be controversial due to who draws the lines in each state. While some states have independent redistricting commissions comprised of citizens or politicians equally representing the two main political parties, other states' processes are controlled by the political party in power of the state government. When in control, this incentivizes a political party to manipulate the maps in an effort to maximize their own future representation. The manipulation of drawing districts to benefit one group is called gerrymandering and will be explored mathematically and politically in this module.
in-context


Web applications written as examples for software engineering coursed have not necessarily to be ugly, it is just a noble and ancient tradition. As a very exception, we today show a sort of decent application. Inside, it does not feel right. Not at all.


Technical blog from Craig Russell.
When using coroutines
in Android, you have to choose which functions will be marked as suspend
. How and where you do this across your app is an architectural decision. This post discusses whether the Repository layer should expose suspend
functions or not.
A common layer in Android app architectures is a Repository layer. Exactly where it sits in your layers, and who its immediate neighbours are, might vary depending on your architecture flavour, but a Repository will typically sit somewhere below your view layer and above your data source layer. Its purpose, in part, is to let you decouple and encapsulate the exact mechanism of data storage from the layers above.
Your Activities
, Fragments
, ViewModels
et al. should not need to know precisely how you are storing data; that is an implementation detail that can be forgotten about at those higher view layers. The view layer can talk to a Repository to get and save data, all without the need to understand Room DB
, DataStore
, SharedPreferences
, Files
etc…
This post focuses on suspend
functions, but more generally covers whether to have coroutine-specific features exposed by your Repository APIs, and so extends to whether to return Flow
or not.
In an ideal world, reading and writing data would be so quick to perform that we could do it from the main thread, but that’s not the case. Often, data access involves making network calls and even when all operations are done on local storage only, you still can’t be guaranteed they’ll happen quickly enough to be allowable on the main thread (data access speeds are so variable on Android, IO disk resource contention might slow it down etc…).
Whether making remote network calls or reading/writing from local storage, we need to assume that it can take a few moments to complete and avoid using the main thread.
If we consider the scenario where an Activity
talks to a ViewModel
which talks to a Repository
which talks to a Room DAO
, who is responsible for ensuring the data access happens off of the main thread?
Specifically at the Repository level, should the Repository internally handle the threading or should that be left up to the caller of the Repository to get it right?
Let’s say we have this Repository, which uses a Room DAO
to persist data.
class BookmarksRepository(private val bookmarksDao: BookmarksDao) {
fun insert(bookmark: Bookmark) {
bookmarksDao.insert(bookmark)
}
}
The insert
function in this example is not marked as suspend
. Should it be?
An argument against exposing suspend
functions from the Repository is that it forces all callers to be coroutine-aware.
suspend
function is from inside a coroutineAnother argument is that the calling code can (and should) make decisions about the threading
The caller can’t always make the best threading decisions without knowing the internal workings of the Repository (which we want to avoid).
For example, it might seem reasonable for the calling code to always ensure it executes the Repository function on a background thread (e.g, Dispatchers.IO
), but that might create inefficiency. If using Room
for example, it is wasteful to switch dispatcher at a higher level because Room
handles this internally.
your code should not use
withContext(Dispatchers.IO)
to call suspending room queries. It will complicate the code and make your queries run slower. (Source)
In other cases, you might need to perform some complex operations after retrieving the data from the data source, but before returning it from the Repository.
Dispatchers.IO
) and then jump to a dispatcher made for more CPU-intensive operations (e.g., Dispatchers.Default
).Another argument for exposing suspend
functions is that it’s hard for callers to get threading right by themselves and the use of suspend
can force correctness upon them.
Use of suspend
alone could still allow a caller to call it from a coroutine executing on the main thread (e.g., Dispatchers.Main
). So how does the suspend
function offer a way to reduce errors here?
suspend
function in the Repository, you can ensure the heavier operations happen on the correct dispatcher.withContext()
and provide Dispatchers.IO
, Dispatchers.Default
as well as your own custom dispatchers; ensuring each is used at the correct timesThe ability to call Repository functions in a main-safe way isn’t enforced by the compiler; you as developer of the Repository still have to do that. It’s trivial to do with withContext
, but you still have to do it. But it’s easier to get that right once when writing the Repository function than having to get it right from every caller that calls it in the future.
Interestingly, Google go so far as to state that all suspend functions should be main-safe, but that’s a different debate for a different day. 😅
Suspend functions should be main-safe, meaning they’re safe to call from the main thread. If a class is doing long-running blocking operations in a coroutine, it’s in charge of moving the execution off the main thread using withContext. This applies to all classes in your app, regardless of the part of the architecture the class is in.

It is also a recommended practice by Google, in their Coroutines Best Practices
guide: https://developer.android.com/kotlin/coroutines/coroutines-best-practices


AggOO::RectF Class Reference
#include <AggOOTypes.h>
List of all members.
Detailed Description
RectF class
Member Function Documentation
| RectF* AggOO::RectF::Clone |
( |
|
) |
const [inline] |
| VOID AggOO::RectF::GetLocation |
( |
PointF * |
pt |
) |
const [inline] |
Get the location of the RectF
| VOID AggOO::RectF::GetSize |
( |
SizeF * |
sz |
) |
const [inline] |
| VOID AggOO::RectF::GetBounds |
( |
RectF * |
rc |
) |
const [inline] |
Get the boundary of the RectF
| BOOL AggOO::RectF::IsEmptyArea |
( |
|
) |
const [inline] |
| BOOL AggOO::RectF::Equals |
( |
const RectF & |
rc |
) |
const [inline] |
| BOOL AggOO::RectF::Contains |
( |
REAL |
x, |
|
|
REAL |
y | |
|
) |
| | const [inline] |
| BOOL AggOO::RectF::Contains |
( |
const RectF & |
rc |
) |
const [inline] |
| VOID AggOO::RectF::Inflate |
( |
REAL |
dx, |
|
|
REAL |
dy | |
|
) |
| | [inline] |
| BOOL AggOO::RectF::Intersect |
( |
const RectF & |
rc |
) |
[inline] |
Intersect this RectF with another RectF
- Returns:
- True if the intersected area is not empty
| BOOL AggOO::RectF::IntersectsWith |
( |
const RectF & |
rc |
) |
const [inline] |
Check whether this RectF intersects with another
| BOOL AggOO::RectF::Union |
( |
RectF & |
out, |
|
|
const RectF & |
a, |
|
|
const RectF & |
b | |
|
) |
| | [inline] |
Create a RectF that is the union of this and another RectF
- Returns:
- True if the union is not empty
| VOID AggOO::RectF::Offset |
( |
REAL |
dx, |
|
|
REAL |
dy | |
|
) |
| | [inline] |
The documentation for this class was generated from the following file:
- C:/SDKs/AggOO/include/AggOOTypes.h


Quick Manual calibration
Quickest calibration available! It will only take 2 minutes of your time!
If the progress bar does not move:
Take the phone in your hand and gently roll it around, making the bar fill up.
Proceed to move it until the bar fills up to full. It may stop at 99%, just keep moving the phone. The entire process typically takes less than 120 seconds. Upon completion, the activity will finish and show the clock screen or the preferences screen.
Please note that this process does not adjust your phone's sleep scoring constant, rather giving you the
default value (0.0034). If you experience abnormally high activity counts when the phone is at rest (>100), you may need to recalibrate your phone using extended calibration.


(Appendix 11)
The ACK messages on receiving have a simple and compact format. The aim is to have a message as short as possible in order to avoid an unnecessary usage of the network. The title of the message is the title of the original message with a leading "ACK:". Example : ACK:Title of the original message. These ACK messages are true messages strictly speaking. They carry the origin, the destination, the route and the MID but they are of a particular type, the type A (private are of type P, bulletins of type B, etc...). This difference allows the routing of these messages without the lines "R:". This is done again with the aim of avoiding an excessive load by data which are of no use in this case. To keep the compatibility with the existing forwarding protocol, the type of these messages is changed to P (private) if the receiving BBS of the forwarding does not know the type of ACK messages (specified in the SID [FBB- 5.12-ABFHM$] by the letter A). In this case, the ack message will continue on its route as a private message. The ACK messages are of the following form : ACK:Message test. <-- Title of message Msg FD1CDC@F6FBB - 22-dec 17:28z <-- Text of message It tells that the message that you had sent to FD1CDC at F6FBB and whose title is "Message test" has been received in the BBS F6FBB on 22 dec at 12:28 GMT. This page was last updated


|
BSL430.NET
1.2.1
|
Defines the control setting for a serial communications device More...
Public Attributes | |
| int | DCBLength |
| Length of the structure in bytes More... | |
| uint | BaudRate |
| Baud rate at which the communications device operates More... | |
| DcbFlags | Flags |
| Various flags that define operation More... | |
| ushort | XonLim |
| Transmit XON threshold More... | |
| ushort | XoffLim |
| Transmit XOFF threshold More... | |
| byte | ByteSize |
| Number of bits in the bytes transmitted and received More... | |
| byte | Parity |
| The parity scheme to be used More... | |
| byte | StopBits |
| Number of stop bits to use More... | |
| byte | XonChar |
| Value of the XON character for both transmission and reception More... | |
| byte | XoffChar |
| Value of the XOFF character for both transmission and reception More... | |
| byte | ErrorChar |
| Value of the character to use when replacing bytes with a parity error More... | |
| byte | EofChar |
| Character to use to signal end of data More... | |
| byte | EvtChar |
| Character to use to signal an event More... | |
Defines the control setting for a serial communications device
| uint RJCP.IO.Ports.Native.Windows.NativeMethods.DCB.BaudRate |
Baud rate at which the communications device operates
| byte RJCP.IO.Ports.Native.Windows.NativeMethods.DCB.ByteSize |
Number of bits in the bytes transmitted and received
| int RJCP.IO.Ports.Native.Windows.NativeMethods.DCB.DCBLength |
Length of the structure in bytes
| byte RJCP.IO.Ports.Native.Windows.NativeMethods.DCB.EofChar |
Character to use to signal end of data
| byte RJCP.IO.Ports.Native.Windows.NativeMethods.DCB.ErrorChar |
Value of the character to use when replacing bytes with a parity error
| byte RJCP.IO.Ports.Native.Windows.NativeMethods.DCB.EvtChar |
Character to use to signal an event
| DcbFlags RJCP.IO.Ports.Native.Windows.NativeMethods.DCB.Flags |
Various flags that define operation
| byte RJCP.IO.Ports.Native.Windows.NativeMethods.DCB.Parity |
The parity scheme to be used
| byte RJCP.IO.Ports.Native.Windows.NativeMethods.DCB.StopBits |
Number of stop bits to use
| byte RJCP.IO.Ports.Native.Windows.NativeMethods.DCB.XoffChar |
Value of the XOFF character for both transmission and reception
| ushort RJCP.IO.Ports.Native.Windows.NativeMethods.DCB.XoffLim |
Transmit XOFF threshold
| byte RJCP.IO.Ports.Native.Windows.NativeMethods.DCB.XonChar |
Value of the XON character for both transmission and reception
| ushort RJCP.IO.Ports.Native.Windows.NativeMethods.DCB.XonLim |
Transmit XON threshold


27 static unsigned errored = 0;
33 if((battvolt < 2.0) && ((set == 1) || (set == 3)))
37 else if((battvolt > 2.3) && (set > 1))
42 if((battvolt < 0.6) && (battvolt > 0.2))
unsigned char setting_bits1
unsigned char mem_append_log(unsigned char)
saves an event to the log space.
unsigned int adc_read(unsigned char)
Read adc value out of the ADC buffer for the passed channel.


Getting started with Feathers
In the following beginner-level tutorial, we'll use our first Feathers Button
component. This is a very simple demonstration that sets a label, adds an event listener, and creates a theme that will apply a skin.
Prerequisites
You should understand how to set up a regular Starling project. Please start with the Starling guides and tutorials, if you're new to Starling.
Check the Installation section of the Feathers Help for instructions on how to add Feathers to your favorite development environment.
Look inside the
themes/MetalWorksMobileTheme/swc
directory of the Feathers ZIP file to findMetalWorksMobileTheme.swc
. Add it to your project's build settings the same way that you addedfeathers.swc
.The complete source code for the Hello World example is included with Feathers in the examples directory, so please feel free to follow along.
Final Result
See the Hello World example running live in your browser. Requires Adobe Flash Player.
Walkthrough
Below, you'll find the basic structure of the Main
class that we'll use as the root Starling display object. This walkthrough assumes that you already know how to initialize Starling. You may look through the example's full source code to see how this is done.
package feathers.examples.helloWorld
{
import feathers.controls.Button;
import feathers.controls.TextCallout;
import feathers.themes.MetalWorksMobileTheme;
import starling.display.Sprite;
import starling.event.Event;
public class Main extends Sprite
{
public function Main()
{
this.addEventListener( Event.ADDED_TO_STAGE, addedToStageHandler );
}
protected var button:Button;
protected function addedToStageHandler( event:Event ):void
{
}
}
}
In our Main
class, most of the code that we add later will go into the addedToStageHandler()
function.
Let's start by initializing a theme. By default, the Feathers components don't have skins. However, several example themes are included with Feathers to easily provide sample skins to all components. A theme can be instantiated in just one line of code.
new MetalWorksMobileTheme();
When a new component initializes, the theme will create appropriate skins, including backgrounds, icons, text formats, and skins for sub-components, and pass them in automatically.
With the theme created, let's create the Button
and set it's label:
this.button = new Button();
this.button.label = "Click Me";
this.addChild( button );
If we want to do something when the button is tapped or clicked, we should listen to the Event.TRIGGERED
event.
this.button.addEventListener( Event.TRIGGERED, button_triggeredHandler );
Our listener function should look something like this:
protected function button_triggeredHandler( event:Event ):void
{
TextCallout.show( "Hi, I'm Feathers!\nHave a nice day.", this.button );
}
The button's Event.TRIGGERED
listener displays a message in a TextCallout
component. Like with our button, this component is automatically skinned by the theme.
Finally, let's position the button in the middle of the stage. First, though, let's take note of one thing about how Feathers controls work. Feathers uses a system of invalidation that delays redraws until just immediately before Starling renders to the screen. This keeps Feathers from using too much CPU by redrawing over and over again when you need to change multiple properties all at once.
At this moment, our button still has width
and height
values of 0
because it hasn't drawn yet. Feathers controls automatically resize themselves to an ideal size when they redraw (unless you explicitly set your own width and height values). This is usually based on the original dimensions of the skins and other children.
In this case, we want to position our button immediately, without waiting for validation. To make a Feathers control draw right now, call the validate()
function:
this.button.validate();
Now, we can properly center our button on the stage because it will correctly report appropriate dimensions based on the size of the button's skin and label:
this.button.x = (this.stage.stageWidth - this.button.width) / 2;
this.button.y = (this.stage.stageHeight - this.button.height) / 2;
Conclusion
That should get you started with the very basics of working with Feathers. For more information about the capabilities of the Button
class, read How to use the Feathers Button
component. For the TextCallout
class, read How to use the Feathers TextCallout
component.
For more extensive sample code, check out the other Feathers examples included in the examples directory when you download Feathers. For example themes (including MetalWorksMobileTheme
), check out the themes directory.


PublicationServer
public class PublicationServer
The HTTP server for the publication’s manifests and assets. Serves Epubs.
-
Undocumented
Declaration
Swift
public class PublicationServer
-
The running HTTP server listening port.
Declaration
Swift
public var port: UInt?
-
The base URL of the server
Declaration
Swift
public var baseUrl: URL?
-
Return all the
Publications
sorted by title asc.Declaration
Swift
public var publications: [Publication]
-
Undocumented
Declaration
Swift
public class PublicationServer
-
Undocumented
Declaration
Swift
public class PublicationServer
-
Add a publication to the server. Also add it to the
pubBoxes
Declaration
Swift
public func add(_ publication: Publication, with container: Container, at endpoint: String = UUID().uuidString) throws
Parameters
publication
The
Publication
object containing the publication data.container
The
Container
object giving access to the resources.endpoint
The relative URL to access the resource on the server. The default value is a unique generated id.
-
Undocumented
Declaration
Swift
public class PublicationServer
-
Remove a publication from the server.
Declaration
Swift
public func remove(at endpoint: String)
Parameters
endpoint
The URI postfix of the ressource.


| CAREER OVERVIEW |
|
Hard-working iOS developer, with two years experience writing clean, maintainable Swift and Objective-C codes. Good understanding of Object Oriented Programming, Data Structures, Designing and Development of iOS native application.
|
|
WORK EXPERIENCE
|
|
Space.com -- Web Developer, California, LA
|
2/2016 -- current
|
|
App Store Link: http://www.applestore.com
|
-
Participated in all phases of design and development of new product page, new flash deals, new lists, Apple Pay, Club O Membership projects.
-
Strictly applied Object-Oriented Programming design pattern in design and development.
-
Maintained Swift and Objectve-C mix-match code base, successfully migrating legacy Objective-C codes to Swift, and keep update to date with latest Swift version.
|
|
International Ltd. -- QA Tester
|
2/2014 -- 12/2015
|
-
Working on develop customer service chatting app project.
-
Gathered specifications, consulted with UX designers and IT department, and consumed RESTFul API Web Services from backend.
|
|
TECHNICAL SKILLS
|
|
iOS Development:
|
Swift 1.x, 2.x, 3.x, Objective-C, Xcode 6.x, 7.x, 8.x, iOS 7.x – 10.x, Cocoa Touch, UIKit, Core Data
|
|
Testing Skills:
|
iOS Unit Testing, Instruments
|
|
Web Development:
|
HTML, CSS, JavaScript, AngularJS, Ionic, Cordova
|
|
Language/Tools:
|
Java, C, Git, Cocoa Pods
|
|
|
|
EDUCATION
|
|
University of Pennsalvania
|
8/2010 -- 5/2014
|
|
Bachelor of Science: Computer Engineering
|
GPA: 3.5
|


banana problem
`Prev `__
B
`Next `__
--------------
**banana problem**: n.
[from the story of the little girl who said “I know how to spell
‘banana’, but I don't know when to stop”]. Not knowing where or when to
bring a production to a close (compare `*fencepost
error* <../F/fencepost-error.html>`__). One may say there is a banana
problem of an algorithm with poorly defined or incorrect termination
conditions, or in discussing the evolution of a design that may be
succumbing to featuritis (see also `*creeping
elegance* <../C/creeping-elegance.html>`__, `*creeping
featuritis* <../C/creeping-featuritis.html>`__). See item 176 under
`*HAKMEM* <../H/HAKMEM.html>`__, which describes a banana problem in a
`*Dissociated Press* <../D/Dissociated-Press.html>`__ implementation.
Also, see `*one-banana problem* <../O/one-banana-problem.html>`__ for a
superficially similar but unrelated usage.
--------------
+-------------------------+----------------------------+------------------------------+
| `Prev `__ | `Up <../B.html>`__ | `Next `__ |
+-------------------------+----------------------------+------------------------------+
| bamf | `Home <../index.html>`__ | bandwidth |
+-------------------------+----------------------------+------------------------------+


This is the privacy declaration of Authenticator for Windows. With all respect for your privacy, we try to limit the required data to a minimal amount. We always adhere to the rules set by the Data Protection Act. For all permissions the app uses, we explain why it's being used.
This statement may be amended unilaterally at any time.
The camera in your device can be used to scan codes. While scanning, there will be searched for a QR code to read. This will always be processed locally and will NEVER be sent over the internet.
Your internet connection is being used to retrieve the most precise time from an NTP server and for cloud synchronization. You can turn this off at any time to prevent data usage.
Optionally you can turn on cloud synchronization to synchronize your accounts between al your Windows devices. This uses your internet connection and your OneDrive storage. Your accounts in the cloud are being encrypted with your personal key to guarantee your safety.


Before Change
with open(self.full_path, "rb") as source:
code = compile(source.read(), "<string>", "exec", flags=0, dont_inherit=True)
with open(self._bytecode_path, "wb") as bytecode:
marshal.dump(code, bytecode)
return code
def __eq__(self, other):
result = other and (
After Change
def code(self):
Returns the code object for this BUILD file.
with open(self.full_path, "rb") as source:
return compile(source.read(), "<string>", "exec", flags=0, dont_inherit=True)
def __eq__(self, other):
result = other and (
type(other) == BuildFile) and (


Tools and functions for managing the download of binary files.
Binary repositories are defined in 'YAML' format. Defining new
pre-download, download and post-download templates allow additional
repositories to be added.
| Version: |
0.1.1 |
| Depends: |
R (≥ 3.3) |
| Imports: |
rappdirs, yaml, httr, jsonlite, xml2, utils, stats, assertthat, semver |
| Suggests: |
testthat, covr, knitr, rmarkdown |
| Published: |
2018-07-18 |
| Author: |
John Harrison [aut] (original author),
Ju Yeong Kim [cre] (rOpenSci maintainer) |
| Maintainer: |
Ju Yeong Kim <jkim2345 at fredhutch.org> |
| BugReports: |
https://github.com/ropensci/binman/issues |
| License: |
MIT + file LICENSE |
| URL: |
https://github.com/ropensci/binman |
| NeedsCompilation: |
no |
| Materials: |
README NEWS |
| CRAN checks: |
binman results |