geopm(7) – Global Extensible Open Power Manager
Description
The Global Extensible Open Power Manager (GEOPM) is a framework for exploring power and energy optimizations on heterogeneous platforms. This manual page outlines key tools and interfaces to configure and use GEOPM software. The rest of this description outlines the features that are described by sections of this manual page.
The GEOPM HPC runtime monitors platform-level metrics (e.g., CPU power, average core frequency, elapsed time) while an application executes on the platform. GEOPM provides Job Launch tools to execute an application with the GEOPM HPC runtime and to read the platform-level metrics. GEOPM can also report metrics with respect to application-specific regions or checkpoints by utilizing optional Application Profiling interfaces. Several Analysis Tools provide the means to directly query and modify platform state.
The GEOPM HPC runtime interacts with a C++ framework to enable custom power management algorithms (called agents) that utilize the analysis tools. Some Built-In Agents are available by default. Additional agents and platform input/output interfaces (called IOGroups) can be added to the GEOPM HPC runtime by creating a Plugin Extension.
Although GEOPM supports manual instrumentation through Application Profiling interfaces. Some automatic instrumentation is also supported. Integration With PMPI enables GEOPM to automatically account for time spent inside MPI function calls by default. Integration With OMPT enables GEOPM to account for time spent in individual OpenMP parallel regions.
Job Launch
The geopmlaunch(1) script is the recommended method for
launching the GEOPM HPC runtime. Unless modified by command-line arguments or
environment variables, GEOPM will create a geopm.report
file with a summary
of metrics from application execution. See geopmreport(7): for documentation about the output file format.
If geopmlaunch(1) does not provide an application launcher supported by your system, please make a change request to support the job launch method used on your system at the github issues page:
https://github.com/geopm/geopm/issues
Also, consider porting your job launch command into the
geopmpy.launcher
module and submitting a change request as described
in Guide for Contributors.
If the job launch application is not supported by the geopmpy.launcher
the recommended method is to use the environment variables described
in this man page including the GEOPM_CTL
environment variable.
If you use the application launch method, then you also need to launch the
geopmctl(1) application in parallel to the application you
wish to run with GEOPM.
There are legacy methods for launching the runtime programmatically. These are documented in geopm_ctl(3), but are deprecated as an application-facing interface because their use within an application is incompatible with the GEOPM launcher script.
Application Profiling
GEOPM’s provides application profiling interfaces for the C and Fortran programming languages, documented in geopm_prof(3) and geopm_fortran(3), respectively. These interfaces enable an application to inform GEOPM of key monitoring events, such as entry or exit from regions of interest, entry to a new iteration of a key looping construct, and hints about the nature of the active region of code (e.g., whether the code is expected to be compute-bound, network-bound, or something else).
The GEOPM HPC runtime profiles applications while executing as a separate process or thread within the launched application, or as a separate geopmctl(1) application. C interfaces to drive the GEOPM controller are documented in geopm_ctl(3).
Analysis Tools
GEOPM may also be used as a tooling interface for system analysis.
The geopmread(1) application reports the current values of platform signals at varying levels of scope (domains). The geopmwrite(1) application enables modulation of platform controls at varying domains. Information about signals and controls is documented at geopm_pio(7). Programmatic interfaces for read and write operations are available through geopm_pio(3).
The types of domains and their relationships with each other can be programmatically queried through geopm_topo(3).
GEOPM comes bundled with a synthetic benchmark application geopmbench(1), which can be used as an application workload for basic analysis and to experiment with the impact that signals and controls have on applications under GEOPM.
Built-In Agents
GEOPM comes packaged with several built-in power management algorithms (agents):
geopm_agent_monitor(7): An agent implementation that enforces no policies.
geopm_agent_frequency_map(7): An agent that applies user-selected frequencies at specific regions in the launched application.
geopm_agent_power_balancer(7): An agent that optimizes performance under a power cap across multiple CPU packages.
geopm_agent_power_governor(7): An agent that enforces a power cap.
geopm_agent_gpu_activity(7) : An agent that sets GPU frequency based on GPU compute activity
Use the geopmagent(1) application or the geopm_agent(3) C interface to query agent information and create static policies.
Plugin Extension
If you wish to monitor or control platform interfaces (IOGroups) that are not part of the core GEOPM distribution, or if you wish to execute GEOPM agents that are not part of the core distribution, then you can extend GEOPM with additional IOGroup and agent plugins.
Agents and IOGroups are defined as C++ classes, documented in geopm::Agent(3) and geopm::IOGroup(3), respectively. Both can be registered with GEOPM through the geopm::PluginFactory(3) interface. The geopm::PlatformIO(3) interface provides a channel through which agents and GEOPM tools can interact with IOGroups.
Integration With PMPI
Linking to libgeopm
will define symbols that intercept calls to the MPI
interface through PMPI. This can be disabled with the configure time
option --disable-mpi
, but is enabled by default. See the
LD_DYNAMIC_WEAK
environment variable description below for the
runtime requirements of the PMPI design. When using the GEOPM PMPI
interposition other profilers which use the same method will be in
conflict. The GEOPM runtime can create an application performance
profile report and a trace of the application runtime. As such, GEOPM
serves the role of an application profiler in addition to management
of power resources. The report and trace generation are controlled by
the environment variables GEOPM_REPORT
and GEOPM_TRACE
; see
description below.
Integration With OMPT
Unless the GEOPM runtime is configured to disable OpenMP, the library
is compiled against the OpenMP runtime. If the OpenMP implementation
that GEOPM is compiled against supports the OMPT callbacks, then GEOPM
will use the OMPT callbacks to wrap OpenMP parallel regions with calls
to geopm_prof_enter()
and geopm_prof_exit()
. In this way, any
OpenMP parallel region not within another application-defined region
will be reported to the GEOPM runtime. This will appear in the report
as a region name beginning with "[OMPT]"
and referencing the object
file and function name containing the OpenMP parallel region e.g.
[OMPT]geopmbench:geopm::StreamModelRegion::run()
To expressly enable this feature, pass the --enable-ompt
configure
flag at GEOPM configure time. This will build and install the LLVM OpenMP
runtime configured to support OMPT if the default OpenMP runtime does
not support the OMPT callbacks. Note that your compiler must be
compatible with the LLVM OpenMP ABI for extending it in this way.
This feature can be disabled on a per-run basis by setting the
GEOPM_OMPT_DISABLE
environment variable, or by using the
--geopm-ompt-disable
option in geopmlaunch(1)
Choosing An Agent And Policy
The Agent determines the optimization algorithm performed by the
runtime, and can be specified with the --geopm-agent
option for the
launcher. If not specified, by default the geopm_agent_monitor(7)
is used to collect runtime statistics only, which will be summarized
in the report.
The constraints for the Agent algorithm are determined by the policy.
The policy can be provided as a file, through the --geopm-policy
option for the launcher. Policy files can be generated with the
geopmagent(1) tool. The values of the policy will be printed
in the header of the report.
If GEOPM has been configured with --enable-beta
, policies can also
be set through the endpoint, which should be manipulated by a system
administrator through an authority such as the resource manager. Use
of the endpoint is described in geopm_endpoint(3). In this
scenario, users launching GEOPM may not be required or allowed to
specify the Agent or policy, if it has been set through the default
environment as described in the ENVIRONMENT
section below. If not
specified in the default environment, the location of the endpoint
should be provided through --geopm-endpoint
; this option supersedes
the use of --geopm-policy
. When GEOPM receives the policy through
the endpoint, the report will contain "DYNAMIC"
for the value of the
policy. The specific values received over time can be viewed through
use of the optional trace file enabled by
--geopm-trace-endpoint-policy
.
Refer to geopm::Agent(3) and the individual agent man pages for more
details on the behavior of the agents and their policies. See
geopmlaunch(1) for more details on the --geopm-agent
,
--geopm-policy
, --geopm-endpoint
, and
--geopm-trace-endpoint-policy
options.
Interpreting The Report
If the GEOPM_REPORT
environment variable is set then a report will
be generated. There is one report file generated for each run. The
format of the report, the data contained in it, and the controller’s
sampling are described in geopm_report(7).
Interpreting The Trace
If the GEOPM_TRACE
environment variable is set (see below) then a
trace file with time ordered information about the application runtime
is generated. A separate trace file is generated for each compute
node and each file is a pipe (the |
character) delimited ASCII
table. The file begins with a header that is marked by lines that
start with the #
character. The header contains information about
the GEOPM version, job start time, profile name (job description), and
agent that were used during the run.
The first row following the header gives a description of each field.
A simple method for selecting fields from the trace file is with the
awk
command:
$ grep -v '^#' geopm.trace-host0 | awk -F\| '{print $1, $2, $11}'
will print a subset of the fields in the trace file called
"geopm.trace-host0"
.
Environment
When using the launcher wrapper script geopmlaunch(1), the interface to the GEOPM runtime is controlled by the launcher command line options. The launcher script sets the environment variables described in this section according to the options specified on the command line. Direct use of these environment variables is only recommended when launching the GEOPM runtime without geopmlaunch(1). If launching the GEOPM controller in application mode without geopmlaunch(1), the environment variables documented below must be set to the same values in the contexts where geopmctl(1) and the compute application are executed.
In addition to the environment, there are two node-local configuration files that will impact the way the GEOPM behaves. The location of these files can be configured at compile time, but the default locations are:
/etc/geopm/environment-default.json
/etc/geopm/environment-override.json
The geopmadmin(1) tool can be used to display the location of
these files for your installation of GEOPM or to check the validity of
the system configuration. These files contain JSON objects that map
GEOPM environment variables to default or override values. The
environment-default.json
file will determine default values for the
GEOPM runtime in the case where the values are not set in the calling
environment. The environment-override.json
file will enforce that
any GEOPM process running on the compute node will use the values
specified regardless of the values set in the calling environment.
GEOPM Environment Variables
GEOPM_NUM_PROC
The number of processes to be tracked and profiled by the controller on each compute node. The controller will wait until this number of processes request profiling before starting the control loop and subsequent requests for profiling will be ignored by the controller. This environment variable is useful when executing a non-MPI application without geopmlaunch(1) and in the case where there is more than one process to be profiled. The default value for GEOPM_NUM_PROC is one.
GEOPM_REPORT
The path to which a GEOPM report file is saved. See the
--geopm-report
option description in geopmlaunch(1) for more details.GEOPM_REPORT_SIGNALS
Additional signals that are included in a GEOPM report. See the
--geopm-report-signals
option description in geopmlaunch(1) for more details.GEOPM_TRACE
The path and base name to which each per-host GEOPM trace file is saved. See the
--geopm-trace
option description in geopmlaunch(1) for more details.GEOPM_TRACE_SIGNALS
Additional signals that are included in a GEOPM trace. See the
--geopm-trace-signals
option description in geopmlaunch(1) for more details.GEOPM_TRACE_PROFILE
The path and base name to which each per-host GEOPM profile trace file is saved. See the
--geopm-trace-profile
option description in geopmlaunch(1) for more details.GEOPM_TRACE_ENDPOINT_POLICY
The path to an endpoint policy trace file is generated. See the
--geopm-trace-endpoint-policy
option description in geopmlaunch(1) for more details.GEOPM_PROFILE
The name of the profile written in the GEOPM report file. See the
--geopm-profile
option description in geopmlaunch(1) for more details.GEOPM_CTL
The type of GEOPM controller to use. See the
--geopm-ctl
option description in geopmlaunch(1) for more details.GEOPM_AGENT
The type of agent to run in the GEOPM HPC runtime. See the
--geopm-agent
option description in geopmlaunch(1) for more details.GEOPM_POLICY
The path to the GEOPM policy JSON file to use for the selected agent. See the
--geopm-policy
option description in geopmlaunch(1) for more details.GEOPM_ENDPOINT
The prefix for shared memory keys used by the GEOPM endpoint. See the
--geopm-endpoint
option description in geopmlaunch(1) for more details.GEOPM_TIMEOUT
The count of seconds that the application will wait for the GEOPM controller to connect over shared memory before timing out. See the
--geopm-timeout
option description in geopmlaunch(1) for more details.GEOPM_PLUGIN_PATH
The colon-separated list of search paths for GEOPM plugins. See the
--geopm-plugin-path
option description in geopmlaunch(1) for more details.GEOPM_DEBUG_ATTACH
An MPI rank number to wait in MPI_Init for a debugger to attach. See the
--geopm-debug-attach
option description in geopmlaunch(1) for more details.GEOPM_DISABLE_HYPERTHREADS
Set to any value to prevent the launcher from pinning to multiple hyperthreads per CPU core. See the
--geopm-hyperthreads-disable
option description in geopmlaunch(1) for more details.GEOPM_OMPT_DISABLE
Set to any value to disable OpenMP region detection as described in Integration With OMPT. See the
--geopm-ompt-disable
option description in geopmlaunch(1) for more details.GEOPM_INIT_CONTROL
The path to the control initialization file. See the
--geopm-init-control
option description in geopmlaunch(1) for more details.GEOPM_PERIOD
The control loop period in seconds, if not specified this is determined by the Agent. See the
--geopm-period
option description in geopmlaunch(1) for details.
Other Environment Variables
LD_DYNAMIC_WEAK
When dynamically linking an application to
libgeopm
for any features supported by the PMPI profiling of the MPI runtime it may be required that theLD_DYNAMIC_WEAK
environment variable be set at runtime as is documented in the ld.so(8) man page. When dynamically linking an application, if care is taken to link thelibgeopm
library before linking the library providing the weak MPI symbols, e.g."-lgeopm -lmpi"
, linking order precedence will enforce the required override of the MPI interface symbols and theLD_DYNAMIC_WEAK
environment variable is not required at runtime.
Misc
- geopmadmin(1)
Configure and check system wide GEOPM settings
- geopm_error(3)
Error code descriptions
- geopm_version(3)
GEOPM library version
- geopm_sched(3)
Interface with Linux scheduler
- geopm_time(3)
Time related helper functions
- geopm_hash(3)
Numerical encoding helper functions
See Also
geopmpy(7), geopmdpy(7), geopm_agent_frequency_map(7), geopm_agent_ffnet(7), geopm_agent_monitor(7), geopm_agent_gpu_activity(7), geopm_agent_power_balancer(7), geopm_agent_power_governor(7), geopm_pio(7), geopm_pio_const_config(7), geopm_pio_cnl(7), geopm_pio_cpuinfo(7), geopm_pio_dcgm(7), geopm_pio_levelzero(7), geopm_pio_msr(7), geopm_pio_nvml(7), geopm_pio_sst(7), geopm_pio_time(7), geopm_report(7), geopm_agent(3), geopm_ctl(3), geopm_error(3), geopm_field(3), geopm_fortran(3), geopm_hash(3), geopm_policystore(3), geopm_pio(3), geopm_prof(3), geopm_sched(3), geopm_time(3), geopm_version(3), geopm::Agent(3), geopm::Agg(3), geopm::CircularBuffer(3), geopm::CpuinfoIOGroup(3), geopm::Exception(3), geopm::Helper(3), geopm::IOGroup(3), geopm::MSRIO(3), geopm::MSRIOGroup(3), geopm::PlatformIO(3), geopm::PlatformTopo(3), geopm::PluginFactory(3), geopm::PowerBalancer(3), geopm::PowerGovernor(3), geopm::ProfileIOGroup(3), geopm::SampleAggregator(3), geopm::SharedMemory(3), geopm::TimeIOGroup(3), geopmadmin(1), geopmagent(1), geopmbench(1), geopmctl(1), geopmlaunch(1), geopmread(1), geopmwrite(1), geopmaccess(1), geopmsession(1), ld.so(8)


CiscoAutomationFramework API¶
Data Gathering API¶
-
class
CiscoAutomationFramework.BaseCommandMethods.
CommandGetMethods
¶ These are the API calls that will most often be used when gathering data from a Cisco device in an automation script. Each of these calls are abstract ways of sending specific commands to a switch, gathering the output, and parsing that output so that it is in a format that is digestable to the rest of the script. As a network administrator, worry less about what exact command it is sending to the switch and focus more on the data that it is returning to you. These calls are powerfull because of how it parses the CLI commands and presents just the relevant data to you vs the raw data as it is output from the Cisco device.
notes to any code contributer: This is the generic class that all other command classes should inherit from. When a new method is added it should be added here first, documentation for each method should be held here. Whenever a new method is implemented all reasonable efforts should be attempted to have it return a list of dictionaries as its output if it is gathering data and true/false if it is performing an action to keep the data returned from methods as consistent as possible for anyone using the package. If it is not possible to return the data in that format or is unreasonable to do so, it should be clearly documented as to the format and why it is returning that way in the docstring in this class of the method.
TODO: Break out the methods that modify configuration into a different class from this one -
arp_table
()¶ Method to return the arp table data of the Cisco device in the following format.
[{‘protocol’: str, ‘address’: str, ‘age’: str, ‘mac’: str, ‘type’: str, ‘interface’: str}]
Returns: Data from arp table Return type: list of dicts
-
cdp_neighbor_table
()¶ Method to return the data in the CDP Neighbor table in the following format.
[{deviceid: ‘str’, localinterface: ‘str’, remoteinterface: ‘str’, platform: ‘str’, remoteip: ‘str’}, etc.]
Returns: CDP neighbor table Return type: list of dicts in the format
-
configure_router_lan_subinterface
(physical_interface, vlan_number, ip_address, subnet_mask, dhcp_servers_ip_addresses)¶ Method to configure a sub interface on a Cisco router
warning This method will most likely be removed in the near future because it doesnt necessarily fit in the framework.
Parameters: - physical_interface –
- vlan_number –
- ip_address –
- subnet_mask –
- dhcp_servers_ip_addresses –
Returns:
-
find_mac_address
(mac_address, mac_table=None)¶ Parameters: - mac_address –
- mac_table –
Returns:
-
get_local_users
()¶ Gathers the local users that are configured on the Cisco device
Returns: list of local users configured Return type: list
-
get_uptime
()¶ Method to return the current uptime of the remote device.
Returns: Uptime of device. Return type: str
-
last_input_and_output
(interface)¶ Method to return the last input and last output of a specific interface on a Cisco device.
Parameters: interface – Interface to return the data on Returns: List in the format of [Interface, Last Input, Last Output] Return type: list
-
last_input_and_output_all
()¶ Method to return the last input and last output of every interface on the Cisco device vs just a single one. When you need to gather several interfaces this is a MUCH faster way to get the data as the Cisco device only needs to compile the data a single time and returns it all to the script.
Returns: Last I/O for all of the interfaces on a Cisco device Return type: list of dicts
-
list_configured_vlans
()¶ Returns:
-
list_down_ports
()¶ Method to return a list of all of the down ports on a Cisco device
Returns: List of down ports Return type: list
-
list_eigrp_configuration
()¶ Method to return the EIGRP section(s) of the running configuration of the Cisco device
Returns: EIGRP running configuration Return type: str
-
list_ospf_configuration
()¶ Method to return the OSPF section(s) of the running configuration of the Cisco device
Returns: OSPF running configuration Return type: str
-
mac_address_table
()¶ Method to return the data of the MAC address table on the Cisco device.
Returns: MAC address table Return type: list of dicts
-
no_shutdown_interface
(interface)¶ Method to enable an interface, example issuing the ‘no shutdown’ command on IOS.
Parameters: interface – Interface to enable. Returns: Nothing at this point.
-
physical_port_inventory
()¶ Gathers the physical ports of the device and returns them as a list of strings
Returns: List of strings
-
physical_port_inventory_longname
()¶ Very similar to the physical port inventory but instead of returning the abbreviated name fa1/0/1 it returns the whole name FastEthernet1/0/1
Returns: List of strings
-
port_status
()¶ Method to return the status of the ports on the Cisco device
Returns: List of dictionaries
-
power_cycle_port
(interface, delay)¶ Power cycles a specific port, leaving it in an admin down state for a specified amount of time
Parameters: - interface (str) – Interface to cycle
- delay (int) – Time in seconds to leave off
Returns:
-
power_inline
()¶ Method to return the data that corresponds to the power output of the Cisco device
Returns: List of dictionaries
-
set_access_vlan_on_interface
(interface, vlan_number)¶ Parameters: - interface –
- vlan_number –
Returns:
-
show_configured_syslog_server
()¶ Method to return a list of configured syslog servers. This method has been implemented to return a simple list as it would not make sense to store that data in a dictionary
Returns: List of the configured syslog servers Return type: list
-
show_hsrp_info
()¶ Returns the data of show standby brief in a list of dictionaries. This will alow the user to get information about HSRP such as the interfaces, group numbers, priority, status, Virtual IP’s, etc.
Raises: NotConfiguredError Returns: List of dictionaries
-
show_interface_description
()¶ Returns:
-
show_interface_status
()¶ Method to return the status of each interface on the Cisco device in the following format.
[{‘interface’: str, ‘status’: notconnected/disabled/connected}]
Returns: status of each interface Return type: list of dicts
-
show_inventory_data
()¶ Returns the data of the inventory data of a Cisco device, example the data of ‘show inventory’ IOS command
Returns: List of dictionaries containing the inventory data of the device Return type: list
-
show_routes
()¶ Returns:
-
show_run
()¶ Returns the running config of the remote device
Returns: Return type: str
-
show_run_interface
(interface)¶ Gathers the running configuration for a specific interface on the remote device.
Parameters: interface – Interface to gather the running config for Returns:
-
show_vlan
()¶ Method to return all of the vlans configured on the Cisco device and the ports associated with them. Basically this is the output of the IOS command ‘show vlan’ but presented in a way that can be used in a programmatic way. When implemented this method should return data in the following format.
[{vlan: str, description: str, interfaces [int1, int2, etc]}]
Returns: List of dictionaries with the data of the configured vlans on the Cisco device. Return type: list of dicts
-
shutdown_interface
(interface)¶ Method to place an interface in admin down, example issuing the ‘shutdown’ command on IOS.
Parameters: interface – Interface to admin down. Returns: Nothing at this point.
-
write_mem
()¶ Method to save the running config into NVRAM on the Cisco device. Example write memory or copy run start on an IOS device.
Returns:
-
Engine API¶
-
class
CiscoAutomationFramework.TransportEngines.
BaseClass
¶ This class contains all of the API calls that will be presented to the user and the rest of the package in a standard way. They are the calls that the methods of the rest of the package uses to interact with the switch, for instance the command methods held within CiscoIOS use these calls, and when writing your scripts you can access these methods via the transport variable.
All of these API calls are responsible for handling the interacting with the Cisco device ex. Opening the connection, closing the connection, sending, and recieving data.
Note that when receiving data it is the raw data as returned from the switch so you will need to parse it yourself to make it more programmatically meaningful.
-
close_connection
()¶ Closes the connection to the Cisco device
Returns:
-
connect_to_server
()¶ High level function that will call all the engine specific methods to connect to the server. For instance if it is connecting via ssh it will call whatever private methods it needs to so it has access to the console, for serial it will end up at the console but call different private methods in the serial engine class
Returns:
-
get_output
(wait_time, detecting_firmware, return_as_list, buffer_size, timeout)¶ This method gathers the data that is waiting from the Cisco device and then returns it for further parsing or directly to the user.
Note
For Developers: This method should not be overwritten but rather extended via super() as it contains code that regardless of the engine, needs to run.
Parameters: - wait_time –
- detecting_firmware –
- return_as_list –
- buffer_size –
- timeout –
Returns:
-
send_command
(command)¶ Method to send command to the device. This method will automatically send the return character so there is no need to put that in the command
Parameters: command – Command to send Returns: Nothing
-
send_command_get_output
(command, return_as_list=False, buffer_size=1, timeout=10)¶ Sends command and returns the output to the Cisco device. This method returns the raw data .. NOTE:
This will soon be replace the send_command_expect_different_prompt and send_command_expect_same_prompt methods.
Parameters: - command – Command to send to the device
- return_as_list – Set to True to return the output as a list
- buffer_size – Number of bytes to return at a time
- timeout –
Returns:
-
throw_away_buffer_data
()¶ Method to gather data from a Cisco device and throw away the output. This method is typically only used when determining what Firmware the Cisco device.
Returns: int: total bytes discarded from the buffer Return type: int
-
Util.py¶
Copyright 2018 Kyle Kowalczyk
Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
class
CiscoAutomationFramework.Util.
PingTest
¶ Class that contains code for doing ping tests against network devices
-
classmethod
ping
(ipaddr)¶ Method that sends a basic ping to an IP address and returns true or false depending on if there was a response received.
Parameters: ipaddr (String) – IP address to run a ping test against Returns: True if a response is received False if there is no response
-
classmethod
-
CiscoAutomationFramework.Util.
detect_firmware
(transport)¶ Detects the firmware running on the remote device by counting the number of times specific keywords are called out in the ‘show version’ command and tallies them up and returns the one with the highest result
Returns: str IOSXE, IOS, NXOS, ASA
-
CiscoAutomationFramework.Util.
extract_version_number_ios
(sh_ver_output)¶ Extracts the version number out of the show version command
Parameters: sh_ver_output – Full output of show version command Returns: version number string
-
CiscoAutomationFramework.Util.
extract_version_number_iosxe
(sh_ver_output)¶ Extracts the version number out of the show version command
Parameters: sh_ver_output – Full output of show version command Returns: version number string
-
CiscoAutomationFramework.Util.
extract_version_number_nxos
(sh_ver_output)¶ Extracts the version number out of the show version command
Parameters: sh_ver_output – Full output of show version command Returns: version number string
-
CiscoAutomationFramework.Util.
gather_enable
()¶ CLI method to gather an enable password
Returns: Enable password entered by user Return type: str
-
CiscoAutomationFramework.Util.
gather_user_pass
()¶ CLI method to gather a username and password
Returns: List containing username and password Return type: list


rescue.me
... bring home a new friend
Toggle Navigation
rescue.me
Show
All Favorites
READ COOL STORIES HERE


{% extends "base.html" %} {% import "bootstrap/wtf.html" as wtf %} {% block title %}JeffPD - Register{% endblock %} {% block page_content %}
Already registered? Login


Carlos López Romero
I'm passionate about the technology in mobile and Linux development.
BUY ME A COFFE
My applications
My designs
About me


Each hexagon represents an ingredient and is color-coded as a function of ingredient type: produce , meat/fish , nut , spice , herb , dairy . Click on an ingredient to see the most common food combinations with that ingredient.


THE RED VIOLIN A film review by Steve Rhodes Copyright 1999 Steve Rhodes RATING (0 TO ****): **
Watching THE RED VIOLIN is rather like going to your mailbox and getting pretty picture postcards from your vacationing neighbors. As they fly all over the globe, they send you gorgeous pictures of the places they visit. These images may be evocative but hardly involving. You're glad that they're having a good time, but receiving their cards isn't the same as experiencing the joy of travel yourself.
So it is with THE RED VIOLIN. Writer Don McKellar and writer and director François Girard, using a similar structure to the one they used on THIRTY-TWO SHORT FILMS ABOUT GLENN GOULD, take a series-of-vignettes approach to telling the story of a fictional famous violin. With handsome cinematography and lush sets, the movie is a treat for the eyes. Watching it is rather like admiring those postcards. The mind, however, is likely to become bored, as the vignettes, save the rewarding and fascinating one starring Samuel L. Jackson, are dull and unimaginative. Although we have glimpses of Jackson's story along the way, it doesn't take center stage until an hour and a half into the movie, which will test the resolve of less patient moviegoers.
The plot is an intriguing one. A dishonest violin restorer, Charles Morritz (Jackson), believes he has located Nicolo Bussotti's famous red violin. Described as the "single most perfect acoustical machine" ever, the violin has had a long and troubled history. The movie skips back to its controversial birth in 1681 and then flashes forward and backward in time as it traces the violin's world travels.
The stories have a few nice moments. One child prodigy trains with the newly invented metronome. The teacher assures his student that speed will prove his ticket to success. All the boy need do is learn how to follow the music when the beat is at the fastest possible. The scene is reminiscent of the one from THIS IS SPINAL TAP in which one of the band members decides that loudness will provide their claim to fame and fortune. The volume knob on their amplifier has a top marking of 11 rather than the normal 10, so they are assured of being the best band in the business.
The heavily cliched characters are never on the stage long enough to develop any depth. The filmmakers spend so much energy getting the images and the plot structure just right that they shortchange the script.
One of the episodes is set in China in the slogan-happy Red Guard era. As the comrades spout trite propaganda ("To every problem, there is a solution"), one is struck by how similar their lines are to the rest of the movie. The script also suffers from its absurd and labored plot devices, which are used for transitions.
An interesting contrast can be made between THE RED VIOLIN and David Mamet's THE WINSLOW BOY. The former, although unrated, contains a few, generally ludicrous, scenes that would change the picture from a PG to a R. In one, a naked violin player is lying in bed fondling his violin for erotic pleasure. This is so off-the-wall that most audiences will laugh at its ridiculousness. Trimming back on these few lurid scenes would improve the movie and make it more generally accessible. Mamet brought his picture in at a G rating. He could have thrown in some expletives and flashed a little nudity for cheap thrills; but he didn't, and his picture is better for it.
Only when the story drags -- and I do mean "drags" -- its way into the present does it finally come alive. The compelling ending segment has genuine tension and carefully crafted scripting. As Morritz schemes, viewers will finally move to the edge of their seats. There isn't much surprise to the action, but Jackson brings a warm and inviting humanity to his part that the rest of the movie lacks.
The audience will probably figure out most or all of the mysteries behind the violin. What will prove more perplexing is why the writers couldn't have put more spark into the other parts of the film. As the ending credits roll, the audience is left with little more than a collection of nice postcards for their album.
THE RED VIOLIN runs too long at 2:11. The film is in Italian, German, French and Mandarin with English subtitles and in English. It is not rated but would be an R for brief nudity, sex, profanity and drug usage. The film would be fine for older teenagers.
Email<EMAIL_ADDRESS>Web: http://www.InternetReviews.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


This example shows the default options with the maximum number of replicated elements set to 5. Start typing in the second input to see the plugin in action.
The plugin supports a set of callback for various actions: adding and removing an element and renumbering. The first two are called right before the action takes place and may veto the change. The third is called once for every element while renumbering to allow for custom changes to text.
If an element should be deleted is decided by the check
callback. By
default all triggers of an element have to be empty for the element to be
removed. If you want more complex logic, you can add your own check.
You can also change the events that trigger the addition and removal of elements. By default, adding is invoked on "change" and "keypress" events, and removing on "change", to avoid too much flickering of elements.
Try clicking multiple times on the last replicated input. Then type
del
in the first and use TAB
to jump to the
next. Repeat. Then click one of the inputs (not the last).
By default the complete contents of the dynform element is used
as the element template, but you can define others in the tpl
option. The template may contain multiple inputs and each of these may
be an trigger for the replication.


Written by Greg Chertok on July 26, 2020
Written by Sesh on July 26, 2020
Sign up for more exclusive Sesh content to your inbox


Structure
MultipeerConfiguration
public struct MultipeerConfiguration
Configures several aspects of the multipeer communication.
Relationships
Nested Types
MultipeerConfiguration.Invitation
Defines how the multipeer connection handles newly discovered peers. New peers can be invited automatically, invited with a custom context and timeout, or not invited at all, in which case you must invite them manually.
MultipeerConfiguration.Security
Configures security-related aspects of the multipeer connection.
Initializers
init(serviceType:peerName:defaults:security:invitation:)
public init(serviceType: String, peerName: String, defaults: UserDefaults, security: Security, invitation: Invitation)
Creates a new configuration.
Parameters
| Name | Type | Description |
|---|---|---|
| serviceType | String |
|
| peerName | String |
|
| defaults | UserDefaults |
|
| security | Security |
|
| invitation | Invitation |
|
Properties
serviceType
var serviceType: String
This must be the same accross your app running on multiple devices, it must be a short string.
Check Apple's docs on MCNearbyServiceAdvertiser
for more info on the limitations for this field.
peerName
var peerName: String
A display name for this peer that will be shown to nearby peers.
defaults
var defaults: UserDefaults
An instance of UserDefaults
that's used to store this peer's identity so that it
remains stable between different sessions. If you use MultipeerKit in app extensions,
make sure to use a shared app group if you wish to maintain a stable identity.
security
var security: Security
The security configuration.
invitation
var invitation: Invitation
Defines how the multipeer connection handles newly discovered peers.
`default`
let `default`
The default configuration, uses the service type MKSVC
, the name of the device/computer as the
display name, UserDefaults.standard
, the default security configuration and automatic invitation.


How Do I Use SPY Index™ to Support Strategic Decisions?
RampRate’s unique combination of sourcing, consulting, and research services allows us to see emerging trends in the market on a granular level, often times before typical market analysts can draw meaningful conclusions. Our street-level, in-the-field work provides us with deep visibility into business models and trends much earlier than the market at large can see them.
Each Research Service engagement leverages the continually updated SPY Index™ to provide accurate market data on the supply side — including supplier offerings, historical performance, and customer satisfaction — as well as the demand side — reflecting user needs, priorities, and willingness to pay for IT services. Our hard data is combined with focused, in-depth primary research in developing concrete recommendations for market buyers and vendors across vertical markets.
RampRate’s industry-leading research staff uses our SPY Index™ and other primary research data resources to build business plans, create new architecture models, and evaluate market alternatives for your internal planning. We can easily assess the financial and operational impact on your business so you can make the right decision for your company.
One-on-one, in-depth interviews and the SPY Index™ enable our analysts to determine the priorities, drivers, trigger points, and adoption hurdles affecting core and target customers.
RampRate will work with you to determine the optimum stage in the adoption cycle for your target markets and recommend specific actions to accelerate adoption of your products and services.
Using SPY Index™ spending data and in-depth customer interviews, we can investigate the core metrics that customers use to evaluate and justify their IT investments during and after sourcing decisions.
RampRate has extensive experience with developing interactive market sizing tools for of nascent, emerging, and mature segments using SPY Index™ data on current usage and IT spending. RampRate combines SPY Index™ data with custom primary research to identify the specific implications of the client’s go-to-market strategy.


{# Displays a table with all the assignments provided. #} {# Provided name is used if there are no assignments. #} {% macro show_assignments(assignments, name) %}
| Office | Name | Start Date | End Date | ||
|---|---|---|---|---|---|
| {{ assignment['office_name'] }} | {{ assignment['name'] }} | {{ assignment['start_date'] }} | {{ assignment['end_date'] }} | Edit | Delete |
No {{ name }} assignments
{% endif %} {% endmacro %}


Cube Medical Billing(CMB) is an online portal that is used for medical billing, patient history, doctor's scheduler and pateint reports.
It is used by medical doctors to manage all the apointments, reports and billings of patients. Patients can also login and view their reports.
Its very easy to use and manage. CMB is super organized and instantly searchable.
CMB will dandily amble alongside you everywhere. Mobiles, Desktops, Tablets.It works everywhere.All the time.
Register now and become a Tastemaker. Help us make Cube Medical Billing the best it can be. Your feedback will shape the future of Cube Medical Billing itself and all the while you will enjoy all the awesome services it has to offer.
Phone:<PHONE_NUMBER>
Mobile:<PHONE_NUMBER>
E-mail: Cmb@gmail.com


Submitted by 321liftoff on Fri, 27/11/2015 - 07:22
I'm a noob to emonTx so thanks to everyone for their contributions to getting the project this far.
I have seen a few libraries and sketches posted on the forums and github: DiscreteSampling (Trystan), ContinuousPLL (Martin), ContinuousFree (Robin), ContinuousPLL flexible (Nuno), etc. What I have noticed in all of these is that there is no standard foundation of common objects and methods. In this post, I propose we take steps to standardize the most basic and common ways of processing an ADC sample and calculating power. Regulating this to a library helps de-clutter code of higher-level sketches and reduces the amount of code that has to be repeated for each ADC channel or CT.
My proposal is for an energy monitor firmware to have three layers: (1) Standard Object/Method Library, (2) Process Library, (3) Sketch with setup() and loop(). For example, in this scheme, the standard firmware would be comprised of (1) the proposed object library, (2) EmonLib, (3) DiscreteSampling.
I have attached a very rough draft of what the new object library could look like. (The only testing I have done is that it compiles, so keep this in mind) You will notice that the concept is object-oriented in a way that I have not seen anywhere. In a sketch using this library, a user defines an array to describe which ADC channels are used and what they are for (CT or VT). Then, the user constructs an Emon object, that contains CT and VT objects and the methods for computing power. This library should contain all standard methods needed for processing ADC samples and calculating power. Also, this library should be generic enough to be used by libraries/sketches, regardless of the process or approach (Discrete, continuous, PLL, etc).
With an object-oriented approach, it's possible that there is a time cost that the existing sketches/libraries does not have. This would have to be tested to characterize what the cost in time is to using an approach such as this. Maybe this is why nobody is doing it this way?
At this stage, I'm soliciting the community for whether an approach of standardizing basic energy monitoring functions would be supported. If so, we can begin collaborating on the best way to achieve this.
Standardization of various Libraries?
Submitted by 321liftoff on Fri, 27/11/2015 - 07:22I'm a noob to emonTx so thanks to everyone for their contributions to getting the project this far.
I have seen a few libraries and sketches posted on the forums and github: DiscreteSampling (Trystan), ContinuousPLL (Martin), ContinuousFree (Robin), ContinuousPLL flexible (Nuno), etc. What I have noticed in all of these is that there is no standard foundation of common objects and methods. In this post, I propose we take steps to standardize the most basic and common ways of processing an ADC sample and calculating power. Regulating this to a library helps de-clutter code of higher-level sketches and reduces the amount of code that has to be repeated for each ADC channel or CT.
My proposal is for an energy monitor firmware to have three layers: (1) Standard Object/Method Library, (2) Process Library, (3) Sketch with setup() and loop(). For example, in this scheme, the standard firmware would be comprised of (1) the proposed object library, (2) EmonLib, (3) DiscreteSampling.
I have attached a very rough draft of what the new object library could look like. (The only testing I have done is that it compiles, so keep this in mind) You will notice that the concept is object-oriented in a way that I have not seen anywhere. In a sketch using this library, a user defines an array to describe which ADC channels are used and what they are for (CT or VT). Then, the user constructs an Emon object, that contains CT and VT objects and the methods for computing power. This library should contain all standard methods needed for processing ADC samples and calculating power. Also, this library should be generic enough to be used by libraries/sketches, regardless of the process or approach (Discrete, continuous, PLL, etc).
With an object-oriented approach, it's possible that there is a time cost that the existing sketches/libraries does not have. This would have to be tested to characterize what the cost in time is to using an approach such as this. Maybe this is why nobody is doing it this way?
At this stage, I'm soliciting the community for whether an approach of standardizing basic energy monitoring functions would be supported. If so, we can begin collaborating on the best way to achieve this.


TO-220 5v Voltage Regulator 1 A - VT251
Summary
Name: TO-220 5v Voltage Regulator 1 A
ID: VREG-T220-X-V05-A1
Hex ID: VT251
WebPage: https://github.com/oomlout/oomlout-OOMP/wiki/VREG-T220-X-V05-A1
Short URL: http://oom.lt/VT251
Revision History: https://github.com/oomlout/oomlout-OOMP/blob/master/parts/VREG-T220-X-V05-A1/
| Type |
Size |
Color |
Description |
Index |
VREG Voltage Regulator |
T220 TO-220 |
X
|
V05 5v |
A1 1 A |
Images
About
This part is awaiting a description.
Specifications
| Info |
Value |
| Type |
Voltage Regulator |
| Size |
TO-220 |
| Description |
5v |
| Index |
1 A |
Extra Details
Spotted a mistake, want to add more? Let us know<EMAIL_ADDRESS>All images and resources are licensed [CC BY-SA] unless otherwise stated (ie. the datasheets)


A general and efficient package for modeling (possibly noisy) datasets via Gaussian processes.
| Version: | 2.0.0 |
| Depends: | R (≥ 3.2.5), stats (≥ 3.2.5) |
| Imports: | Rcpp (≥ 0.12.19), lhs (≥ 0.14), randtoolbox (≥ 1.17), lattice (≥ 0.20-34) |
| LinkingTo: | Rcpp, RcppArmadillo |
| Suggests: | RcppArmadillo |
| Published: | 2018-11-14 |
| Author: | Ramin Bostanabad, Wei Chen (IDEAL) |
| Maintainer: | Ramin Bostanabad <bostanabad at u.northwestern.edu> |
| License: | GPL-2 |
| NeedsCompilation: | yes |
| CRAN checks: | GPM results |
| Reference manual: | GPM.pdf |
| Package source: | GPM_2.0.0.tar.gz |
| Windows binaries: | r-devel: GPM_2.0.0.zip, r-release: GPM_2.0.0.zip, r-oldrel: GPM_1.0.2.zip |
| OS X binaries: | r-release: GPM_2.0.0.tgz, r-oldrel: GPM_1.0.2.tgz |
| Old sources: | GPM archive |
Please use the canonical form https://CRAN.R-project.org/package=GPM to link to this page.


Current state (JSON)
Time series (JSON)
Documentation, resources, code, more data
Collection of official resources


Fire guts shops at New Rajdhani Super Market in Dhaka’s Tikatuli
by bdnews24.comA large fire has destroyed over a dozen shops at the New Rajdhani Super Market in Dhaka’s Tikatuli before the firefighters brought it under control.
As many as 25 units of the Fire Service and Civil Defence tamed the fire around 6:45pm on Wednesday after over one and a half hours of frantic efforts, Dilip Kumar Ghosh, a fire service deputy director, told bdnews24.com.
The fire was reported on the first floor of the two-storey tin-roofed market around 5:15pm, he said.
Fire service Director General Sazzad Hussain told the media at the site that the fire completely destroyed some 15 shops of undergarments.
Officials said the firefighters were dumping the burnt goods in the evening.
There have been no reports of casualties so far.
The authorities were yet to assess the extent of the damage and find out the origin of the fire.
After the Rajdhani Super Market was established in 1995, the New Rajdhani Super Market was set up on a land next to the old market.
Panicked traders and customers came out when smoke was seen billowing from the east side of the market in the afternoon, Wari Police Station Inspector Mostafizur Rahman said.
“The smoke could be seen from quite far away,” he said.
Abu Taher, the owner of Al Maher Jewellers, said his shop was among 43 jewellery shops on the ground floor.
“Many managed to just get out and shutter down, but could not lock the shops,” he said.
He believes the fire originated in the centre of the market where shops of readymade garments, tailors, foam mattress, toys, food and cosmetics are housed.
The jewellers started guarding their shops after the fire was tamed. Plainclothesmen were also there, Wari Police Station OC Azizur Rahman said.
Police managed the crowds of onlookers after closing the streets to the market.


R Lintr to SonarQube Json
Source Json
Not recognized by sonar scanner.
Target Json
Recognized by sonar scanner.
Convert


Page Links: Index Page
| DozyWannabe 29th Nov 2010, 00:39 permalink Post: 803 |
I don't want to divert this fascinating thread into acrimony, so answer at your discretion.
Quote:
Quote:
This discord really saddens me. Maybe Concorde's premature end-of-life was politically motivated and maybe it was financially motivated - but at the end of the day it doesn't make a blind bit of difference. Can't we just celebrate what was rather than end up fighting over infinitessimal might-have-beens? |
||
| ChristiaanJ 23rd Dec 2010, 18:36 permalink Post: 977 |
Quote:
OK all. On the 'blunties' and most other aircraft (subsonic or supersonic) there is a fuselage, and there is a wing. The wing is connected to the fuselage by only a few very big bolts, linking a few very big forgings. Concorde is different, right? Right. Fuselage and inner wing are the same structure, and there were no "big bolts" that allowed you to separate fuselage and inner wing once the aircraft was built. The only separate "bits" were the outer wings, the parts just outside the engine nacelles. So 'rib 12' was the rib where the inner wing ended, and where the outer wing (built by Dassault, rather than Aerospatiale, actually) was attached. Rib 12 actually was two halves, the one at the outboard side of the inner wing, and the one on the inboard side of the outer wing. Both machined numerically from single 'blanks'... And no, these two halves were NOT just bolted together with a few massive bolts. They were bolted together with hundreds of bolts in all. I did say Concorde was different, no? Words now fail me, and I'll have to find or scribble some drawings ASAP. In brief, so far.. each half of rib 12 had MANY machined "bath tub shaped" slots allowing to insert a bolt between the two halves, and bolt the outer wings to the inner wings. And simplistically, the 'bath tub covers' were just small sheet panels held in place with fasteners fitted inside the 'bath tub' slots. I should know.... I still have the scars of helping, one day, to refit a batch of them on Delta Golf at Brooklands CJ |
||
| DozyWannabe 2nd Jan 2011, 17:21 permalink Post: 1066 |
For a second, 'astings, I thought I 'ad been premature...
Later photographs of 002 show her bearing the Aerospatiale name, like her sister ship - she'd presumably been repainted at some point. However, the photo of 101 Christiaan posted is captioned on concordesst.com as being taken at her rollout, which I am presuming means that she never carried Sud Aviation titles, the companies presumably having merged before 1971. |
||
| CliveL 2nd Jan 2011, 18:25 permalink Post: 1067 |
Yes, you are right - on her first flight G-BSST had Sud Aviation logo; in 1971 and now at Yeovilton she carries Aerospatiale. Sud became AS in 1970.
My own humble black and white photos of 101 roll out show her with the Aerospatiale logo. I guess from that data one could approximately date the LE photo that Christiaan posted. |
||
| CliveL 2nd Jan 2011, 22:30 permalink Post: 1069 |
Interestingly, the 'concordesst' site has a photograph of G-AXDN under construction and I would think about 2 weeks from rollout where "British Aircraft Corporation" has been painted on but there is a big gap where "Sud Aviation/ Aerospatiale" should be. This would be in November/early December 1971 I think. Just maybe this was the time when the new French company were making up their mind how they would like to be known. I know they didn't like the simple use of company initials - Societe Nationale Industrie Aerospatiale if I remember correctly and one must admit that Aerospatiale sounds a whole lot nicer than SNIAS! Maybe Christiaan could comment?
CliveL |
||
| ChristiaanJ 2nd Jan 2011, 23:21 permalink Post: 1070 |
CliveL
,
I should have kept a diary... never did. According to the ConcordeSST site, the roll-out was on 20 September 1971, but (according to various internet items) Aerospatiale was already formed in 1970. Looking at the general mess, the photo you mention (see below) was several weeks, if not a few months, before the roll-out. Look closely.. I would say even the leading edges are not in place yet. CJ |
||
| CliveL 3rd Jan 2011, 07:40 permalink Post: 1072 |
ChristiaanJ
Although it looks messy and there are parts missing (LE, nozzles and probably tail cone) none of them would take long to fit, which is why I estimated a couple of weeks before rollout, but I wouldn't quarrel with a longer time. I knew the company merger was in 1970, but AS took a while to decide that they wanted to be known as Aerospatiale, so I thought that maybe, just maybe, this fell into that time slot. Obviously it didn't. AZR Your eyesight is better than mine! I had to fiddle with PSP to see it, but yes, the Aerospatiale logo is there. I was fooled by seeing the red fuselage stripe underneath into thinking that cover was more transparent than it actually was. CliveL |
||
| CliveL 27th Apr 2012, 22:06 permalink Post: 1608 |
SSD:- this answers your question on where the TAT probes were located. Strictly, you don't need temperature to calculate Mach as it is independent of temperature when expressed in EAS (or CAS) terms. Shane: The "crown modifications" were external straps to be applied to the upper part of the fuselage to extend its life in those areas which had been designed to safe life concepts - basically the Aerospatiale bits since BAe designed their bits according to damage tolerance rules. It wasn't a small job, but I'm afraid I can't tell you how many aircraft were modified. |
Page Links: Index Page


SHACL shapes catalogue for well-kown ontologies
In this section SHACL shapes for well-known ontologies can be found. All these shapes were generated using Astrea. When one of the download buttons is pushed, the shapes for the selected ontology are generated using our services on the file.
| Ontology | Formats | Imported ontologies | Shapes |
|---|---|---|---|
| DBpedia (2016) | RDF/XML | - | |
| W3C Time (2006) | turtle | - | |
| SAREF: the Smart Appliances REFerence ontology | html turtle | W3C Time (2006) | |
| SAREF extension for environment | html turtle xml/rdf n-triples | - | |
| SAREF extension for building devices | html turtle xml/rdf n-triples | - | |
| EU Project VICINITY, core ontology | rdf/xml turtle n3 |
VICINITY WoT ORG SOSA |
|
| Web of Things Mappings extension | rdf/xml turtle n3 |
VICINITY Core VICINITY WoT |
|
| EU Project DELTA, core ontology | rdf/xml turtle json-ld n-triples | DELTA OpenADR | |
| OpenADR | rdf/xml turtle json-ld n-triples | - | |
| SSN | turtle | SOSA | |
| oneM2M | turtle | - |


Password Generator
Choose Password Length
Choose special characters:
Lower Case Letters
Upper Case Letters
Numbers
Special Characters
Generate Password


--- layout: default-data title: ATT&CK® Mapping custom_css: default breadcrumb: ATT&CK® Mapping ---
When an adversary engages in a specific behavior, they are vulnerable to expose an unintended weakness. By looking at each ATT&CK® activity, we can examine the weaknesses revealed and identify an engagement activity or activities to exploit this weakness. The following table outlines the Adversary Vulnerabilities and Engagement Activities that are available to the defender when the adversary engages in a behaviors across any ATT&CK® Tactic.
| ATT&CK Technique | Adversary Vulnerability | Engagement Activity | Engagement Activity Description |
|---|---|---|---|
| {{ row.attack_technique }} | {{ row.eav }} | {{ row.eac }} | {{ site.data.activity_details[row.eac_id].description}} |


A client library for the https://nft.storage/ service. It provides a convenient interface for working with the Raw HTTP API from a web browser or Node.js and comes bundled with TS for out-of-the box type inference and better IntelliSense.
Install the package using npm
npm install nft.storage
Or yarn
yarn add nft.storage
First, obtain an API token from https://nft.storage and use it in place of API_TOKEN
below:
import { NFTStorage, File } from 'nft.storage'
const client = new NFTStorage({ token: API_TOKEN })
const metadata = await client.store({
name: 'Pinpie',
description: 'Pin is not delicious beef!',
image: new File(
[
/* data */
],
'pinpie.jpg',
{ type: 'image/jpg' }
),
})
console.log(metadata.url)
// ipfs://bafyreib4pff766vhpbxbhjbqqnsh5emeznvujayjj4z2iu533cprgbz23m/metadata.json
For more examples please see the API documentation or the examples directory in the project repository, which contains sample projects for both browsers and Node.js.
Generated using TypeDoc


No Products Found
Your search has not found any products. You can take the following steps to enhance your search results:
- Spellchecking
Perhaps a spelling error prevents us from finding "search query".
- Search in The Entire Catalog
You are currently only searching for "search query" in Catalog/Classgrp/Classgrp. You can reset the search by ###DETAIL MISSING###.
- Remove Filters
You have selected several filtering criteria on the left sidebar. Removing them will give you more search results.
- Search For Part of Your Search Query Only
Try using a shorter search query, perhaps just the most important part of your query.
- Use a More General Term
You could search for a general term for your query instead of a precise Product Name.
Or you can Suggest a Product


Lost connection to FlinBIT. Make sure mobile data is turned off.
Reconnect
FlinBIT
Plotter
Monitor
Logger
View Logs
Plot Data
Max Points:
Clear Plotter
Autoscroll
Max Messages:
Clear Monitor
Send
Append
Overwrite
Start Logging
Stop Logging


public class PlugInFilterRunner extends java.lang.Object implements java.lang.Runnable, DialogListener
| Constructor and Description |
|---|
PlugInFilterRunner(java.lang.Object theFilter,
java.lang.String command,
java.lang.String arg)
The constructor runs a PlugInFilter or ExtendedPlugInFilter by calling its
setup, run, etc. methods.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
dialogItemChanged(GenericDialog gd,
java.awt.AWTEvent e)
The listener to any change in the dialog.
|
int |
getSliceNumber()
Return the slice number currently processed by the calling thread.
|
void |
run()
The dispatcher for the background threads
|
void |
setDialog(GenericDialog gd) |
public PlugInFilterRunner(java.lang.Object theFilter, java.lang.String command, java.lang.String arg)
theFilter
- The PlugInFilter to be runcommand
- The command that has caused running the PlugInFilterarg
- The argument specified for this PlugInFilter in IJ_Props.txt or in the
plugins.config file of a .jar archive conatining a collection of plugins. arg
may be a string of length zero.public int getSliceNumber()
public void run()
run
in interface java.lang.Runnable
public void setDialog(GenericDialog gd)
public boolean dialogItemChanged(GenericDialog gd, java.awt.AWTEvent e)
dialogItemChanged
in interface DialogListener
e
- The event that has happened in the dialog. This method may
be also called with e=null, e.g. to start preview already
when the dialog appears.gd
- A reference to the GenericDialog.


---
title: frost.Animator.Lines
layout: doxygen
comments: false
sidebar: doxygen_sidebar
topnav: topnav
tags: false
---
Line object for frost.Animator.Display.
More...
|
| | func_p1 |
| |
| | func_p2 |
| |
| | name |
| |
| Public Attributes inherited from handle |
| | addlistener |
| | Creates a listener for the specified event and assigns a callback function to execute when the event occurs. More...
|
| |
| | notify |
| | Broadcast a notice that a specific event is occurring on a specified handle object or array of handle objects. More...
|
| |
| | delete |
| | Handle object destructor method that is called when the object's lifecycle ends. More...
|
| |
| | disp |
| | Handle object disp method which is called by the display method. See the MATLAB disp function. More...
|
| |
| | display |
| | Handle object display method called when MATLAB software interprets an expression returning a handle object that is not terminated by a semicolon. See the MATLAB display function. More...
|
| |
| | findobj |
| | Finds objects matching the specified conditions from the input array of handle objects. More...
|
| |
| | findprop |
| | Returns a meta.property objects associated with the specified property name. More...
|
| |
| | fields |
| | Returns a cell array of string containing the names of public properties. More...
|
| |
| | fieldnames |
| | Returns a cell array of string containing the names of public properties. See the MATLAB fieldnames function. More...
|
| |
| | isvalid |
| | Returns a logical array in which elements are true if the corresponding elements in the input array are valid handles. This method is Sealed so you cannot override it in a handle subclass. More...
|
| |
| | eq |
| | Relational functions example. See details for more information. More...
|
| |
| | transpose |
| | Transposes the elements of the handle object array. More...
|
| |
| | permute |
| | Rearranges the dimensions of the handle object array. See the MATLAB permute function. More...
|
| |
| | reshape |
| | hanges the dimensions of the handle object array to the specified dimensions. See the MATLAB reshape function. More...
|
| |
| | sort |
| | ort the handle objects in any array in ascending or descending order. More...
|
| |
Line object for frost.Animator.Display.
- Author
- omar
- Date
- 2017-06-01
Copyright (c) 2017, UMICH Biped Lab All right reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted only in compliance with the BSD 3-Clause license, see http://www.opensource.org/licenses/BSD-3-Clause
◆ Lines()
| frost.Animator.Lines.Lines |
( |
|
ax, |
|
|
|
model, |
|
|
|
frame1, |
|
|
|
frame2, |
|
|
|
name, |
|
|
|
varargin |
|
) |
| |
|
inline |
◆ delete()
| function obj = frost.Animator.Lines.delete |
( |
| ) |
|
|
inline |
◆ update()
| function obj = frost.Animator.Lines.update |
( |
|
x | ) |
|
|
inlinevirtual |
◆ frame1
| frost.Animator.Lines.frame1 |
|
protected |
◆ frame2
| frost.Animator.Lines.frame2 |
|
protected |
◆ func_p1
| frost.Animator.Lines.func_p1 |
◆ func_p2
| frost.Animator.Lines.func_p2 |
◆ line
| frost.Animator.Lines.line |
|
protected |
The documentation for this class was generated from the following file:
- /home/ayonga/.dropboxes/business/Dropbox/research/dzopt/frost/matlab/+frost/+Animator/Lines.m


This contains the data and code for the publication in Nature Materials.
doi: 10.1038/s41563-020-0798-1
Link to publication: Mechanically robust lattices inspired by deep-sea glass sponges
Authors: Matheus C. Fernandes, Joanna Aizenbert, James C. Weaver, and Katia Bertoldi
Harvard University -- School of Engineering and Applied Sciences
For more information, please email me at<EMAIL_ADDRESS>Corresponding Authors<EMAIL_ADDRESS><EMAIL_ADDRESS>If you would like to further improve this code, please submit a pull request and clearly state your suggestions and the reason for this improvement.
Additional codes required for reproduction of the information provided in supplemental information document of this publication are made available upon request.
Thank you!


%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% File: comments.tex %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Unsolicited student comments about course content, management and the instructor Note I included all email referring to the course content, quality or instructor %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% From: Catherine Wong Hi Tom, I've attached the final paper for my project, an implementation proposal for a system with working and reconstructive memory. Thanks again for a truly fantastic class -- it's been really one of the most thought provoking and transformative of my time at Stanford, and I'm only sorry not to have discovered it sooner (though it was a great way to ring out the years here.) Hope to stay in touch. Best, Cathy %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% From: Maurice Shyan Chiang Hi Prof Dean, I just wanted to say thanks for a great class. I didn't come into CS379c with much background, but I've learned so much over the past ten weeks.  Also thanks for sharing the donkey cart analogy -- I got a good laugh out of that. Best, Maurice %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% From: Aykan Ozturk Hi Tom, Here is my project report and the main section of the code that I've used for the project. Thanks for a great quarter. Best, Aykan %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% From: Lucy L. Wang ... Marcus, Michelle, Lucy, Rohun, Nate Hi Tom, Thank you so much for your helpful and encouraging feedback. This class has been a great experience: it has been very enjoyable to hear from all the different speakers, and to learn from their different perspectives, research, and experiences. We’d also like to express appreciation for how dedicated of a teacher you have been -- we are grateful for how thorough and prompt your feedback has been, and also for all the new ideas you’ve introduced us to. Also, thank you for sharing your wisdom and inspiring personal story during the last day of class. I know I’ll be remembering your thoughts about sacrifice and happiness for a long, long time. We’ve attached our final paper here. If it can help future students in the class, we’re very happy to have it shared. Also, we’re looking forward to reading your report on the course! Again, thanks for everything! This has truly been an inspirational course! All the best, Lucy, Marcus, Michelle, Nate and Rohun %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% From: Nikhil Bhattasali Hi Tom, Thanks for organizing a truly inspiring class and for the enthusiastic discussions throughout the quarter. I had a lot of fun working on this project. Looking forward to more conversations over the summer! Nikhil %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% From: Pedro Pablo Garzon, Sam Lowenmann Wood, Lawrence Peirson Attached is our final report and code. Thanks for a fascinating course and giving us your sage advice! Pedro, Sam and Lawrence %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% From: Eric Wang and Zheng Yan Hi Tom, Sorry about the late submission, and thank you again for the great class this quarter! Attached here is our final project paper for the course, which also links to our Github code repo. As undergraduate sophomores in math and biology respectively, neither of us had much prior experience with interdisciplinary machine learning work, and this class was a great opportunity to gain experience with it in the fascinating context of neuroscience. We really enjoyed the presentations and speakers; thank you for putting this together! Best, Eric and Zheng %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% From: Sam Lowenmann Wood Thanks for a great quarter! %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% From: Rooz Mahdavian Hi Tom, Sincere apologies for the delay on this, our final version is attached! We truly hope it’s not too late. As it’s our last paper as undergrads at Stanford, we really wanted to get it right, and would love to hear your feedback if at all possible. In either case, I also wanted to thank you for putting such a unique course together -- it brought together so much of what I’ve been personally thinking about since I arrived here, and was a great send off for my undergraduate experience. Best, Rooz Mahdavian %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% From: Nate Tyler Stockham Hi Tom, I've attached a pdf with our work thus far on the project. Were still interested in it and plan to continue working on it, and would be glad to send you updates. The github repo is referenced in the paper, though it is kind of a mess right now. Thank you again so much for the extension, and thank you for a wonderful course! Best, Nate %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


TCPMon is a utility that allows the user to monitor the messages passed along in TCP based conversation. It is based on a swing UI and works on almost all platforms that Java supports. The aim of this simple tutorial is to explain how TCPMon works and also to explain some of its features.
TCPMon has absolutely no dependencies on third party libraries. But some of the UI features rely on JDK 1.4 so TCPMon needs a JRE that is 1.4 or higher.
The most common usage pattern for the TCPMon is as an intermediary. It is called explicit since the client has to point to the intermediary rather than the original endpoint in order to monitor the messages. The following figure explains this concept.
In order to start the TCPMon in this configuration one has to provide the host name and the port for the listener in the admin screen. See image below.
Pressing the 'add' button opens up a new tab that allows the messages to be seen as in the following screen
At this point the requester should point to the listener port of the TCPMon instead of the original endpoint. Let us understand this with an example:
Say all messages passed between www.apache.org needs to be monitored.
Step 1 - Add a listener with host as www.apache.org and port as 80. Set the listener to port 8080 which may be any unused port in the local machine
Step 2 - Point the browser to localhost:8080 instead of www.apache.org.
Once the messages start flowing they can be seen in the relevant tab as seen below.
The bottom controls allow the messages to be XML formatted (useful in debugging Web services), save and resend the messages, and also to switch the layout of the message windows.
TCPMon can also be used as a request sender for Web services. The request SOAP message can be pasted on the send screen and then sent directly to the server.
TCPMon can act as a proxy. To start the TCPMon at proxy mode, just select the proxy option from the radio buttons. When acting as a proxy, TCPMon only needs the listener port to be configured.
TCPMon can simulate a slow connection, in which case the delay and the bytes to be dropped can be configured. This is specially useful in testing Web services.
If HTTP proxy support is required then that can also be set on the admin screen.
TCPMon is a simple and easy to use tool that has many benefits when developing message driven applications. It is particularly useful in developing Web services


Menu
About Us
Ethics
Branding
Sustainability
Risks
Market
Assets
Timeline
Economics
Finance Scheduling
Testimonials
Appendix
Directory
Here you can find links to each page
About us
Appendix
Assets
Branding
Economics
Ethics
Finance
Home
Justification
Market
Privacy
Risks
Subscription
Survey
Completed Survery
Sustainability
Terms and conditions
Testimonials
Timeline


The first trailer for Fantasy Island gives the TV series a bloody reboot
Follow Polygon online:
by Karen HanIf you’re getting a jump start on plans for Valentine’s Day next year, look no further, because horror production company Blumhouse have you covered.
The first iteration of Fantasy Island debuted in 1977, with Ricardo Montalbán starring as a mysterious man named “Mr. Roarke,” who would enact the fantasies of the guests upon his island — for a price. Each episode of the show would focus on a different wish, with their results usually meant to teach a life lesson.
Related
The reboot, directed by Jeff Wadlow, is a little more vicious. Michael Peña takes on the role of Roarke, with Lucy Hale, Maggie Q, Ryan Hansen, and Jimmy O. Yang as his guests. (Roarke’s assistant Tattoo, played by Hervé Villechaize, will not feature in the new film.)
At first, the island seems like a paradise, but it soon becomes apparent that the wishes they’ve made are being twisted around back upon them, and that their lives are on the line. The trailer sees each guest realizing that all is not as it seems, with even the employees of the resort suffering bloody consequences.
The movie is set to his theaters on theaters Feb. 14, 2020.


Roomba Laser Relay
Project 1: Hardware and Software Interfacing
Authors: Edgardo Cuello, Konrad Schultz
Table of Contents
Introduction
Problem Description
System Overview
Timing Specification and Measurements
Conclusion
Introduction
Problem Description
System Overview
Timing Specification and Measurements
Conclusion


NSE All-Share Index rises by 0.44 per cent
by Agency ReportThe Nigerian Stock Exchange (NSE) ended trading for the week on Friday in green, with All-Share Index improving by 0.44 per cent.
Specifically, the All-Share Index rose by 119.33 points or 0.44 per cent to close at 26,991.42 against 26,872.09 achieved on Thursday.
Also, the market capitalisation of listed equities which opened N12.969 trillion closed higher at N13.027 trillion.
Nestle led the gainers’ table during the day, gaining N100 to close at N1,250per share.
Okomuoil followed with a gain of N5 to close at N55, while Forte Oil gained N1.50 to close at N18.10 per share.
Cement Company of Northern Nigeria added N1 to close at N19, while Ikeja Hotel gained 11k to close at N1.25 per share.
On the other hand, Nigerian Breweries recorded the highest loss, dropping by N1 to close at N50.50 per share.
Dangote Cement trailed with a loss of 50k to close at N144.40, while Dangote Sugar was down by 35k to close at N12.75 per share.
READ ALSO: NSE: Trading maintains bearish trend, indices down by 0.19 per cent
United Bank for Africa declined by 10k to close at N7.50, while Access Bank also lost 10k to close at N10.05 per share.
The banking stocks maintained leadership as the most active with Access Bank emerging the most traded, exchanging 27.30 million shares valued at N276.56 million.
Zenith Bank followed with an account of 26.12 million shares worth N487.45 million, while Fidelity Bank traded 15.64 million shares valued at N31.67 million.
Guaranty Trust Bank sold 15.59 million shares worth N460.11 million, while AIICO Insurance accounted for 12.66 million shares valued at N9.02 million.
In all, investors bought and sold 207.40 million shares worth N2.84 billion in 3,630 deals.
This was against 239.22 million shares valued at N2.28 billion achieved in 3,585 deals on Thursday.
(NAN)


Country: {{clientModel.country}}
City: {{clientModel.city}}
Address: {{clientModel.address}}
IBAN: {{clientModel.iban}}


Overview
You can download this extension from the Visual Studio Marketplace
Support The Project¶
If Start Page+ has saved you time and hassle, please come back and show your support:
- you could rate Start Page+ (only takes a couple of seconds)
- or review Start Page+ (help others benefit from your experience)
- or shout me a coke (I don't drink coffee or beer lol)
Please Note¶
- feedback is welcome, just use the GitHub Issues page for new features, enhancements, bugs etc
- please consult the Roadmap page, or the GitHub Issues page before you add an issue
- for any known issues, please consult the Start Page+ website's Known Issues page
Bring Back Start Page!¶
When Visual Studio 2019 was released, many developers were dismayed to find that the Start Page had been completely replaced by a new Start Window (a big modal dialog window, with no Developer News).
Introducing Start Page+¶
So many of you, in so many posts in the Developer Community forum, pleaded for Microsoft to bring back the Visual Studio 2017 Start Page, and unfortunately those pleas fell on deaf ears.
Well, you asked for it, and now Start Page+ delivers it. All that was taken away, plus more! (get it?)
Start Page+ is a start page replacement that is a dockable tool window, not a modal window. It's been written from the ground up, and doesn't rely on any of Visual Studio's internal code. So it can't be taken away by Microsoft. And it's open source!
For a complete list of Start Page+'s features, including images, click here to go to the Features page on the Start Page+ website.
To Open The Start Page+ Window¶
-
make sure Visual Studio's Start Window is disabled
- in Tools | Options | Environment | Startup select Empty Environment
-
click on View | Start Page+
The Start Page+ window is accessed from the View menu, because it just makes sense. It's also easy to remember because you think "I want to view the start page", you don't think "I want to file the start page".
The Visual Studio 2010-2017's Start Page was always in the View menu, until Microsoft moved it to the File menu in later versions of VS 2017, and then permanently in VS 2019, which never really made any sense to me.
Theme Samples¶
Built-in themes¶
Blue Theme¶
Dark Theme¶
Light Theme¶
Custom Themes¶
Start Page+ will use colors from any custom theme.
Dark Purple¶
This is my custom Dark Purple theme, based on the built-in Dark theme.
Original Blue Theme (from VS 2017)¶
Mads Kristensen wrote an extension called Original Blue Theme to bring back the original theme from VS 2017.
Color Theme Editor Themes¶
The Color Theme Editor for Visual Studio 2019 extension adds more themes to choose from, and lets you create your own themes (which is what I did). However Microsoft has now marked it deprecated, advising users to use Visual Studio Color Theme Designer instead. However I've found it extremely frustrating, and had no success creating a decent custom theme.


Interface IEvaluatesExpression
An object which evaluates and returns the result of a TALES expression. This is the core interface for an "expression evaluator".
Namespace: ZptSharp.Expressions
Assembly: ZptSharp.Abstractions.dll
Syntax
public interface IEvaluatesExpression
Remarks
TALES - Template Attribute Language Expression Syntax - is an extensible language.
Expressions may be prefixed with a type designator such as expression_type:expression_body
,
where expression_type
indicates which expression evaluator should be used to handle the
expression body.
ZptSharp uses a registry of expression evaluators (and their type prefixes) such that prefixed expressions are automatically routed to their correct evaluator implementation. Additionally, the core logic ensures that the prefix is stripped from the expression before the evaluator receives it.
Methods
| Improve this Doc View SourceEvaluateExpressionAsync(String, ExpressionContext, CancellationToken)
Evaluates the expression asynchronously and returns the result.
Declaration
Task<object> EvaluateExpressionAsync(string expression, ExpressionContext context, CancellationToken cancellationToken = default(CancellationToken))
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | expression | The expression string. |
| ExpressionContext | context | The expression context. |
| System.Threading.CancellationToken | cancellationToken | An optional cancellation token. |
Returns
| Type | Description |
|---|---|
| System.Threading.Tasks.Task<System.Object> | The expression result. |
Remarks
This method must decisively evaluate the expression, if an expression cannot be evaluated to a conclusive result then this method must throw EvaluationException or an exception derived from an evaluation exception. It is acceptable to return null from this method though, if that is the result of evaluating the expression.
Whilst the API of this method is asynchronous (returning a task), it will not be suitable
or appropriate for all implementations to act asynchronously.
Thus, implementors are not certain to honour the cancellationToken
if
it is used to cancel/abort evalaution early.
Implementors are encouraged to act asynchronously when it is appropriate to do so, but may
choose to act synchronously and return an already-completed task.
Note that any expression result might also be an AbortZptActionToken, which is a special value indicating that the current ZPT operation should be aborted.
Exceptions
| Type | Condition |
|---|---|
| EvaluationException | Thrown if evaluating the expression fails. |
| System.AggregateException | Thrown if evaluating the expression fails asynchronously. |


SUPPORT PORTAL FOR ONLINE STUDENTS AT USFSP
FINAL REPORT
CASEY FRECHETTE, PH.D.
Assistant Professor, Journalism and Digital Communication
Assistant Professor, Journalism and Digital Communication
BERRIE WATSON, MCP, MCSE Core.
Head, Library Systems and Digital Technology
Head, Library Systems and Digital Technology
SHARON AUSTIN, MA, MSETM
Programmer/Analyst
Programmer/Analyst


Friend Finder
Answer a few basic questions
Then find the friend with the greatest compatibility
Go to Survey


Owner's Info
- Name: {{ owner.last_name }} {{ owner.first_name }}
- Date of birth: {{ owner.date_of_birth }}
- Passport: {{ owner.passport }}
- Address: {{ owner.address }}
- Nationality: {{ owner.nationality }}
{{ owner.last_name }} {{ owner.first_name }}, Possessions
{% for p in possessions %}
- {{ p.car.model }}
{% empty %}
You don't have any cars!
{% endfor %}


Dice Rolling Thing
Items
General Graph Page
Something else here evenutally
D3.JS Graph
numbers: [[numbers]]


The matplotlib pcolormesh
function is often used to plot finite volumen data via pcolormesh(X,Y,Z,...)
, with X,Y
being arrays of cell centers with the same shape as Z
. In this case, the last row and column of Z
are ignored as explained in the pcolor documentation. The values in X,Y
are used as coordinates of cell edges rather than centers and so the data is also displaced from where it should be.
When frames of output are plotted using visclaw
this does not happen because the cell edge arrays are used instead, with dimension one greater in each direction than that of Z
.
However, in plotting topography using the Topography.plot
function of GeoClaw, for example, this had not been done properly.
This notebook explains the issue and a new function visclaw.plottools.pcolorcells
that converts cell centers to edges if necessary before plotting with pcolormesh
.
This is used in an improved version of geoclaw.Topography.plot
.
This notebook also illustrates new functions to carefully choose the dpi
parameter and image size to make versions that display well in Google Earth, and to make kml files to display them. These are added to the kmltools
module.
%matplotlib inline
from pylab import *
import sys
from importlib import reload
from clawpack.visclaw import colormaps
sys.path.insert(0,'../new_python') # location of new python code for importing
import plottools, topotools, kmltools
#reload(topotools) # for debugging
xcenter = linspace(0.5,3.5,4)
ycenter = linspace(0.5,4.5,5)
X,Y = meshgrid(xcenter,ycenter)
Z = X+Y
print('Z has shape ', Z.shape, 'X and Y have shape ', X.shape)
figure()
pcolor(X,Y,Z); colorbar()
Note that only the lower 4x3 portion of Z
is plotted above, with edges at the values set in xcenter, ycenter
.
Instead we want to compute the edges and use these in the pcolormesh
command:
x = X[0,:]; y = Y[:,0]
dx=x[1]-x[0]; dy=y[1]-y[0]
xedge = np.arange(x[0]-0.5*dx, x[-1]+dx, dx)
yedge = np.arange(y[0]-0.5*dy, y[-1]+dy, dy)
pcolormesh(xedge,yedge,Z); colorbar()
plottools.pcolorcells
function¶This function will be added to visclaw.plottools
to allow passing in either cell centers or edges. You can also pass in any other **kwargs
to be passed to pcolormesh
.
figure(figsize=(12,4))
subplot(121)
plottools.pcolorcells(xcenter, ycenter, Z); colorbar()
subplot(122)
plottools.pcolorcells(xedge, yedge, Z); colorbar()
You can also pass in 2d arrays X,Y
that are either centers or edges:
plottools.pcolorcells(X, Y, Z); colorbar()
If we reduce the size of Z
then X,Y
are properly interpreted as edges:
plottools.pcolorcells(X, Y, Z[:-1,:-1]); colorbar()
Note that contour plots assume the X,Y
arrays are where pointwise values of Z
are specified, so it is correct to use cell centers for this.
As an example, define Zbowl
to be a paraboloid with minimum at (2,2)
:
plottools.pcolorcells(X, Y, Z)
Zbowl = (X-2)**2 + (Y-2)**2
contour(X,Y,Zbowl,colors='w')
When you load a topofile in GeoClaw, the internal represenation has topo.X
and topo.Y
at the cell centers of the DEM grid, and DEM values should be interpreted as either cell averages over these cells (in principle this is how they are defined) or as pointwise values at the cell centers (this is how we use them in GeoClaw when computing B
values for grid cells by cell averaging a piecewise bilinear function interpolating at the cell centers). For more information see the documentation.
The version of clawpack.geoclaw.topotools
in Clawpack 5.6.0 uses imshow
for plotting topography, unless the Z
array is a masked_array
, in which case it uses pcolor
(which is slower than imshow
and also slower than pcolormesh
, which does work with masked arrays). Neither was done exactly properly in terms of plotting all cell values and properly aligning them.
The new version uses pcolorcells
in both cases.
def topo_cmap(limits):
topo_extent = limits
data_break = 0.
land_cmap = colormaps.make_colormap({ 0.0:[0.1,0.4,0.0],
0.25:[0.0,1.0,0.0],
0.5:[0.8,1.0,0.5],
1.0:[0.8,0.5,0.2]})
sea_cmap = get_cmap('Blues_r')
if topo_extent[0] >= 0.0:
cmap = land_cmap
norm = colors.Normalize(vmin=0.0, vmax=topo_extent[1])
elif topo_extent[1] <= 0.0:
cmap = sea_cmap
norm = colors.Normalize(vmin=topo_extent[0], vmax=0.0)
else:
cmap, norm = colormaps.add_colormaps((land_cmap, sea_cmap),
data_limits=topo_extent,
data_break=data_break)
return cmap, norm
A small set of 1-minute resolution etopo1 data covering part of Puget Sound around Seattle:
topo = topotools.read_netcdf('etopo1', extent=[-122.8,-122.3,47.5,47.8])
cmap,norm = topo_cmap((topo.Z.min(), topo.Z.max()))
Plot using new version of topo.plot
, and add contour plot of shoreline and red dots at center of each grid cell (the values in topo.X, topo.Y
).
topo.plot()
contour(topo.X,topo.Y,topo.Z,[0],colors='r')
plot(topo.X, topo.Y, 'r.', markersize=0.5);
We can plot on top of a Google Earth image to check that things are lined up right:
# Expanded extent that include cells centered at the points in X,Y:
x1 = topo.x[0] - topo.delta[0]/2.; x2 = topo.x[-1] + topo.delta[0]/2.
y1 = topo.y[0] - topo.delta[1]/2.; y2 = topo.y[-1] + topo.delta[1]/2.
extent2 = [x1,x2,y1,y2]
if 0:
# make a kml file to help grab the appropriate image from GE:
kmltools.box2kml(extent2, fname='region2.kml', name='region2', width=1)
# load image for GE:
region2_png = imread('region2.png')
#figure(figsize=(12,8))
imshow(region2_png, extent=extent2)
gca().set_aspect(1./cos(48*pi/180.)) # fix aspect ratio
Plot the data on top of this image:
figure(figsize=(12,10))
imshow(region2_png, extent=extent2)
gca().set_aspect(1./cos(48*pi/180.)) # fix aspect ratio
plottools.pcolorcells(topo.X, topo.Y, topo.Z, cmap=cmap,norm=norm,alpha=0.3)
contour(topo.X,topo.Y,topo.Z,[0],colors='r')
plot(topo.X, topo.Y, 'r.', markersize=4);
A new function pcolorcells_for_kml
has been added to clawpack.geoclaw.kmltools
to create a png file that is suitable for viewing on Google Earth. The new function png2kml
can then be used to create the kml file that can be opened to view it.
The png image must be created carefully in order to get it lined up properly and also so that the interfaces between constant colors in grid cells are nice and sharp. The approach taken in pcolorcells_for_kml
is to:
dpc
to determine how many "dots per cell" are desired,dpi
(dots per inch) appropriately so there are an integer number of pixels in each grid cell,The function returns several values that are useful if you want to further augment the plot before creating the png file. This is illustrated later below, but first we use the png_filename
parameter to create the png file internally.
fig, ax, png_extent, kml_dpi = \
kmltools.pcolorcells_for_kml(topo.X, topo.Y, topo.Z,
png_filename='PStopo.png', dpc=10,verbose=True,
cmap=cmap,norm=norm, alpha=0.5)
We can now create the kml file that displays this image. Note that extent
should be the full extent out to the edges of the grid cells.
kmltools.png2kml(extent=extent2, png_files=['PStopo.png'],
png_names=['Puget Sound'],
name='PStopo',
fname='PStopo.kml')
fig, ax, png_extent, kml_dpi = \
kmltools.pcolorcells_for_kml(topo.X, topo.Y, topo.Z,
png_filename=None, dpc=10,verbose=True,
cmap=cmap,norm=norm, alpha=0.5)
ax.contour(topo.X, topo.Y, topo.Z, [0], colors='r')
savefig('PStopo2.png', transparent=True, dpi=kml_dpi)
Now make a new kml file, also illustrating that you can also specify a list of png files (and associated names) and they will all be displayed together, with a menu allowing you to turn each on or off. Setting the parameter radio_style=True
will give a version in which at most one of the png files can be displayed at a time.
kmltools.png2kml(extent=extent2, png_files=['PStopo.png','PStopo2.png'],
png_names=['Puget Sound', 'with shoreline'],
name='PStopo',
fname='PStopo.kml',
radio_style=True)
Here's a screenshot of the result:
figure(figsize=(12,10))
PStopoGE = imread('PStopoGE.png')
imshow(PStopoGE)
axis('off');
Back to Index.html or go on to the next notebook, RuledRectangles.html.


Quality Uniform Resource Identifier Truncation And Redirection Service
Enter a valid URL:
Note: your provided URL must be preceded by https:// or http://
Get URL!


Department of Electrical & Computer Engineering, Northeastern University<EMAIL_ADDRESS>I am a Ph.D. candidate of Department of Electrical & Computer Engineering, Northeastern University (NEU), supervised by Prof. Yun (Raymond) Fu. Currently, I am the remote advisor for Indian Institute of Technology, Kharagpur international relation program. Before joining NEU, I got my master and bachelor degrees majored in management at Beihang University with Prof. Junjie Wu. Now I am on the job marketing for tenure-track faculty. Here is my current CV.
EDUCATION
PhD, in College of Engineering, Northeastern University, up to now
Master, in Management Science and Engineering, Beihang University, 2011
Bachelor, in Information Systems, Beihang University, 2007
Minor Bachelor, in Applied Mathematics, Beihang University, 2007
Minor Bachelor, in Law, Beihang University, 2007
INTERN
Microsoft Research Asia, 06/2017 - 08/2017
Adobe Research, 05/2016 - 07/2016
INTERESTS
Cluster Analysis: consensus clustering, constrained clustering, balanced clustering, multi-view clustering, interpretable clustering, big data clustering
Outlier Detection: multi-view outlier detection, spammer detection, zombie user detection, bi-sampling outlier detection, jointly clustering and outlier detection
Citations: 256; H-index: 10, i10-index: 10 by Google Scholar, Jan. 2018
Hongfu Liu and Yun Fu
Consensus Guided Multi-View Clustering. ACM Transactions on Knowledge Discovery from Data (TKDD), 2018.
Xue Li and Hongfu Liu
Greedy Optimization for K-means-based Consensus Clustering. Tsinghua Science and Technology (TST), 2018.
Hongfu Liu, Zhiqiang Tao and Yun Fu
Partition Level Constrained Clustering. IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), 2017.
Hongfu Liu, Ming Shao, Sheng Li and Yun Fu
Infinite Ensemble Clustering. Data Mining and Knowledge Discovery (DMKD), 2017.
Hongfu Liu, Junjie Wu, Tongliang Liu, Dacheng Tao and Yun Fu
Spectral Ensemble Clustering via Weighted K-means: Theoretical and Practical Evidence. IEEE Transactions on Knowledge and Data Engineering (TKDE), 2017.
Hongfu Liu, Rui Zhao, Hongsheng Fang, Feixiong Chen, Yun Fu and Yuyang Liu
Entrpoy-based Consensus Clustering for Patient Stratfcation. Bioinformatics (BIOINF), 2017.
Handong Zhao, Hongfu Liu, Zhengming Ding and Yun Fu
Hongfu Liu*, Tongliang Liu*, JunjieWu, Dacheng Tao and Yun Fu (* means equal contribution)
Spectral Ensemble Clustering. ACM SIGKDD international conference on Knowledge Discovery and Data mining (KDD), 2015.
Hongfu Liu and Yun Fu
Clustering with Partition Level Side Information. IEEE International Conference on Data Mining (ICDM), 2015.
Hongfu Liu, JunjieWu, Dacheng Tao, Yuchao Zhang and Yun Fu
DIAS: A Disassemble-Assemble Framework for Highly Sparse Text Clustering. SIAM International Conference on Data Mining (SDM), 2015.
Hongfu Liu, Cheng Gong and Junjie Wu
Consensus Clustering on Big Data. IEEE International Conference on Service Systems and Service Management (ICSSSM Best Paper), 2015.
Hongfu Liu,Yuchao Zhang,Hao Lin and Junjie Wu
How Many Zombies Around You. IEEE International Conference on Data Mining (ICDM), 2013.
Junjie Wu, Hongfu Liu, Hui Xiong and Jie Cao
Theoretic Framework of K-means-based Consensus Clustering. International Joint Conference on Artifcialcial Intelligence (IJCAI), 2013.
Yaqiong Wang, Hongfu Liu, Hao Lin, Junjie Wu, Zhiang Wu and Jie Cao
SEA: A System for Event Analysis on Chinese Tweets. ACM SIGKDD international conference on Knowledge Discovery and Data mining (KDD), 2013.
Yuchao Zhang and Hongfu Liu
A Reliable QoE-aware Framework for Cloud Service Monitoring and Ranking. International Conference on Electrical and Information Technologies for Rail Transportation (EITRT), 2013.
Yuchao Zhang, Hongfu Liu and Bo Deng
SLA-Driven State Monitoring for Cloud Services. IEEE International Conference on High Performance Computing and Communications (HPCC), 2013.
Yuchao Zhang, Hongfu Liu and Bo Deng
Evolutionary Clustering with DBSCAN. International Conference on Natural Computation (ICNC), 2013.
Di Zhao, Hongfu Liu, Hongyi Li
A Method Based on Grey Correlation Clustering for Improving the Hierarchy of Analytic Hierarchy Process. IEEE/WIC/ACM International Conference on Web Intelligence and Intelligent Agent
Technology (WI-IAT), 2010.
First Place Award in MS-Celel-1M Grand Challenge, 2017
International Conference on Computer Vision
IJCAI Student Travel Award, 2017
International Joint Conference on Artifcial Intelligence
KDD Student Travel Award, 2016
ACM SIGKDD Conference on Knowledge Discovery and Data Mining
SIGIR Student Travel Award, 2016
ACM International Conference Information and Knowledge Management
ICDM Student Travel Award, 2016
IEEE Conference on Data Mining
AAAI Student Travel Award, 2016
AAAI Conference on Artificial Intelligence
IEEE BigData Student Travel Award, 2016
IEEE Conference on Big Data
Top 20 New Star in Data Mining, 2016
Microsoft Academic Search
The inaugural Adobe Research Fellowship Finalist, 2016
Adobe Research
ICDM Student Travel Award, 2015
IEEE Conference on Data Mining
Outstanding Undergraduate Thesis, 2011
Beihang University
Board Scholarships, 2011
School of Economics and Management in Beihang University
Google Student Travel Award, 2010
Student Symposium on Machine Learning and Applications
Citigroup Scholarship, 2010
Beihang University
Kwang-Hua Scholarship, 2009
Beihang University
Samsung Scholarship, 2008
Beihang University
Editorial Board
Architecture and Design Review
Annals of Mathematics and Physics
Publicity Chair
International Workshop on Big Data Transfer Learning, 2017
Program Committee
AAAI Conference on Artificial Intelligence (AAAI) 2017, 2018
International Joint Conference on Artificial Intelligence (IJCAI) 2016, 2017
International Conference on Machine Learning and Applications (ICMLA) 2016, 2017
Journal Reviewer
IEEE Transactions on Knowledge and Data Engineering (TKDE)
IEEE Transactions on Neural Networks and Learning Systems (TNNLS)
IEEE Transactions on Image Processing (TIP)
IEEE Transactions on Cybernetics (TCYB)
IEEE Computational Intelligence Magazine (CIM)
IEEE Transactions on Emerging Topics in Computational Intelligence (TETCI)
ACM Transactions on Knowledge Discovery from Data (TKDD)
Bioinformatics (BMC)
Information Science (IS)
Applied Computing and Informatics (ACI)
Computer Methods and Programs in Biomedicine (CMPB)
Human-centric Computing and Information Sciences (HCIS)
Journal of Electronic Imaging (JEI)
International Journal on Artifcialcial Intelligence Tools (IJAIT)


Your browser does not support HTML5. Please update your browser to view this video.
Your browser is out of date. Please update your browser to access all features of this video.
Ok
Big Play
Play / Pause
Mute / Unmute
Timer
Walkthrough
Credits
Credits
Open the Studio
Design and Development
Kenny Katzgrau
Interviews And Writing
Special Thanks
Ken Russell
Interview, Google
Gregg Taveras
Interview, Google
Dov Amihod
Interview, TeamUp
Thiago Costa
Interview, TeamUp
Andor Salga
Interview, Expert