--- layout: post title: Squid Proxy + Mikrotik date: 2012-01-31 07:05:13.000000000 +07:00 type: post published: true status: publish categories: - how to - linux-opensource - networking tags: - cache - jaringan - mikrotik - networking - proxy - squid meta: _edit_last: '7761285' geo_latitude: '-8.588990' geo_longitude: '116.130400' geo_accuracy: '206' geo_address: mataram geo_public: '1' _wpas_skip_fb: '1' author: login: pdft email<EMAIL_ADDRESS>display_name: piko first_name: herpiko last_name: dwi aguno ---
I have installed a cache proxy to centos server and works with good TCP_HIT. i'm using centos 5.x. proxy took the data that we request from browsing activities and save it as cache. the second request will take from this cache, that means the connection uses full bandwith on the local network. we got two thing, reduce bandwith consumtion from the ISP and increase the speed. squid has other feature such as redirect, blocking, etc.
on this case, the proxy's IP set to <IP_ADDRESS>, the same level to client computers.
install squid package from repository.
[code]yum -y install[/code]
edit /etc/squid/squid.conf
change/add some.
[code]#change the proxy port to 3128 and set as transparent. The transparent parameter means, this proxy can be used over the IP with port redirect.
http_port 3128 transparent
#add the hostname
visible_hostname proxyserver
#the TCP_HIT quantities depends on the refresh pattern parameter.
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern ^http: 720 90% 432000
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Package(.gz)*)$ 0 20% 2880
refresh_pattern -i \.(gif|png|jpg|jpeg|ico)$ 10080 90% 43200 override-expire ignore-no-cache ignore-private
refresh_pattern -i \.(iso|avi|wav|mp3|mp4|mpeg|mpg|swf|flv|x-flv)$ 43200 90% 432000 override-expire ignore-no-cache ignore-private
refresh_pattern -i \.(deb|rpm|exe|ram|bin|pdf|ppt|doc|tiff)$ 10080 90% 43200 override-expire ignore-no-cache ignore-private
refresh_pattern -i \.(zip|gz|arj|lha|lzh|tar|tgz|cab|rar)$ 10080 95% 43200 override-expire ignore-no-cache ignore-private
refresh_pattern -i \.(html|htm|css|js|php|asp|aspx|cgi) 1440 40% 40320
refresh_pattern . 0 20% 4320[/code]
save the file. then, create a swap directory
[code]/usr/sbin/squid -z #swap[/code]
Check squid configuration. If there is an output, something wrong with squid.config, otherwise, all's ok.
[code]/usr/sbin/squid -k parse[/code]
start squid service
[code]/etc/rc.d/init.d/squid start[/code]
use chkconfig to set squid to load on boot.
[code]/sbin/chkconfig squid on[/code]
now, configure browser's proxy to IP port 3128. open some static webpages and check log file.
[code]tail /var/log/squid/access.log[/code]
if success, the webpage will loaded and squid will generate TCP_MISS to the logfile. we need to check again. give attention to logfile. clear the browser cache or use other computer to load the same pages. if TCP_HIT appears on the log, then your squid server is working fine. TCP_MISS means the data is not exist on cache and proxy server will load it from the internet. You will get TCP_HIT when data is exists and client load it from cache. the more you get TCP_IP, the more browsing speed increased for lots of data.
this is not yet complete. we need to enable the proxy server on router and setup it to redirect to <IP_ADDRESS>:3128 using parent-proxy parameter.
[code]set enabled=yes src-address=<IP_ADDRESS> port=3328 parent-proxy=<IP_ADDRESS> parent-proxy-port=3128[/code]
then, add a nat rule to force all request to router's proxy (port 3328). strike the command bellow.
[code]chain=dstnat action=redirect to-ports=3328 protocol=tcp src-address=!<IP_ADDRESS> dst-port=80[/code]
voila. :)
NB : ini tulisan pertama dengan bahasa inggris. saya harap banyak yang salah dan seseorang memberitahu sehingga saya bisa belajar dari itu.


@* * Copyright 2021 HM Revenue & Customs * * 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 * * http://www.apache.org/licenses/LICENSE-2.0 * * 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. *@ @import config.FrontendAppConfig @()(implicit request: Request[_], messages: Messages, appConfig: FrontendAppConfig) @import uk.gov.hmrc.play.views.html.{helpers => govHelpers} @main_template(title = titleNoForm(messages("pages.retrySubmission.heading")), backEnabled = false) {
@Messages("pages.retrySubmission.p1")
@Messages("pages.retrySubmission.p2")
@govHelpers.form(action = controllers.routes.SummaryController.submitRegistration) { } }


--- layout: home ---
Your description
If you are not seeing a map, please disable Ad block
{{ post.date | date_to_string }}
... Full Posts List


Basics
setTimeout
Inline Tag
Templating
Loop
Class
Events
IndexOf
Controls
Select
Checkbox
Text
Advanced
Two-Way Binding
{name}


we order parts and go shopping
Quick Shopping and Build day
now with all of the materials we began building today
This is the second day of building
Lead winterim dude
Lead winterim Dude
Student- Programmer
Student-Builder
Student- Builder
Student- Rocket boy/Programmer
Student- lacrosse player
Student- Professonal texter
Student- she just does everything
Student- Cyclocross dude
Student- Builder and Programmer
Student- builder
Student- video game builder
Student- video game builder
Go to the portfolio to see our awesome Projects
>


The GENE Expression and Enrichment Vector Analyzer aggregates and analyzes gene expression signatures extracted from GEO by the crowd usingGEO2Enrichr.


By default JRemoting will deliver client server capabilty without the need for the user to make stubs classes (like RMI does with the rmic operation). Reflections's dynamic proxy capability is used to deliver that. There are problems with this approach. Foremost is that it will not work in a client that is an applet that is trying to exist inside the 'sandbox' without extra permissions. There's also a speed issue, but its barely significant.
BCEL is an Apache technology that can make Java class files at runtime. We optionally use that to make Stub classes.
Use like RMI's rmic. It can make stubs in advance of need. This will allow you to include the stub in the jar file your making for your client, or to put in a more general stubs jar that you will keep on the client side. Use in Maven2 like so:
<build> <plugins> <plugin> <groupId>org.codehaus.jremoting</groupId> <artifactId>jremoting-tools</artifactId> <executions> <execution> <id>SomeName</id> <phase>test-compile</phase> <goals> <goal>generate</goal> </goals> <configuration> <genName>SomeName</genName> <facade>com.foo.YourFacade</facade> <classGenDir>target/stub-classes</classGenDir> <secondaryFacades>com.foo.AnotherFacade,com.foo.YetAnotherFacade</secondaryFacades> <verbose>true</verbose> </configuration> </execution> </executions> </plugin> </plugins> </build>
JRemoting will look in the client's classpath for the Stub class. You will have generated the Stub class in question and bundled in the application jar destined for the client. This is good for applets, which by default cannot dynamically mount classes or classloaders.
JRemoting will ask the server for the Stub class (and mount it in a classloader meaning it will also have the applet problems above). For this mode, the server can either retrieve the Stubs from the server's classpath (FromClassLoaderStubRetriever), or from a separate jar (JarFileStubRetriever), or make them dynamically with BcelDynamicStubRetriever.
In the constructor for the SocketServer (or PipedServer, or RmiServer) the StubRetriever instance is passed in.
Stubs are made dynamically via Java's reflection. These will not be safe for applet clients that are in the sandbox, and are slightly slower than generated stubs.


|
Xerces-C++
3.1.4
|
Public Member Functions | |
Virtual destructor for derived classes | |
| virtual | ~ValidationContext () |
| virtual destructor More... | |
The ValidationContext Interface | |
| virtual RefHashTableOf < XMLRefInfo > * | getIdRefList () const =0 |
| IDRefList. More... | |
| virtual void | setIdRefList (RefHashTableOf< XMLRefInfo > *const)=0 |
| virtual void | clearIdRefList ()=0 |
| virtual void | addId (const XMLCh *const )=0 |
| virtual void | addIdRef (const XMLCh *const )=0 |
| virtual void | toCheckIdRefList (bool)=0 |
| virtual const NameIdPool < DTDEntityDecl > * | getEntityDeclPool () const =0 |
| EntityDeclPool. More... | |
| virtual const NameIdPool < DTDEntityDecl > * | setEntityDeclPool (const NameIdPool< DTDEntityDecl > *const)=0 |
| virtual void | checkEntity (const XMLCh *const ) const =0 |
| virtual DatatypeValidator * | getValidatingMemberType () const =0 |
| Union datatype handling. More... | |
| virtual void | setValidatingMemberType (DatatypeValidator *validatingMemberType)=0 |
| virtual bool | isPrefixUnknown (XMLCh *) |
| QName datatype handling Create default implementations for source code compatibility. More... | |
| virtual void | setElemStack (ElemStack *) |
| virtual const XMLCh * | getURIForPrefix (XMLCh *) |
| virtual void | setScanner (XMLScanner *) |
| virtual void | setNamespaceScope (NamespaceScope *) |
| Public Member Functions inherited from XMemory | |
| void * | operator new (size_t size) |
| This method overrides operator new. More... | |
| void * | operator new (size_t size, MemoryManager *memMgr) |
| This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More... | |
| void * | operator new (size_t size, void *ptr) |
| This method overrides placement operator new. More... | |
| void | operator delete (void *p) |
| This method overrides operator delete. More... | |
| void | operator delete (void *p, MemoryManager *memMgr) |
| This method provides a matching delete for the custom operator new. More... | |
| void | operator delete (void *p, void *ptr) |
| This method provides a matching delete for the placement new. More... | |
Protected Member Functions | |
| ValidationContext (MemoryManager *const memMgr=XMLPlatformUtils::fgMemoryManager) | |
| Hidden Constructors. More... | |
| Protected Member Functions inherited from XMemory | |
| XMemory () | |
| Protected default constructor. More... | |
Protected Attributes | |
| MemoryManager * | fMemoryManager |
|
virtual |
virtual destructor
|
protected |
Hidden Constructors.
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
EntityDeclPool.
|
pure virtual |
IDRefList.
|
pure virtual |
Union datatype handling.
|
virtual |
QName datatype handling Create default implementations for source code compatibility.
|
virtual |
|
pure virtual |
|
pure virtual |
|
virtual |
|
virtual |
|
pure virtual |
|
pure virtual |
|
protected |


pypospack.pyposmat.data package¶
Submodules¶
pypospack.pyposmat.data.badparametersfile module¶
pypospack.pyposmat.data.cluster_analysis module¶
-
class
pypospack.pyposmat.data.cluster_analysis.
PyposmatClusterAnalysis
(o_logger=None)[source]¶ Bases:
object
-
cluster_names
¶
-
init_from_ordered_dict
(o_logger=None)[source]¶ constructor from a OrderedDict
- Arg:
d(collections.OrderedDict): ordered dict o_logger(PyposmatLogFile): pyposmat log file object
-
n_error_names
¶
-
n_parameter_names
¶
-
n_qoi_names
¶
-
read_configuration
(filename)[source]¶ read in pyposmat configuration file
- Parameters
filename (str) – path of the configuraiton file
-
read_data
(filename)[source]¶ read in pyposmat data filename
- Parameters
filename (str) – path of the data file
-
scaled_names
¶
-
-
class
pypospack.pyposmat.data.cluster_analysis.
PyposmatSilhouettePlot
[source]¶ Bases:
object
Plot Silhouette Plots
pypospack.pyposmat.data.configurationfile module¶
-
class
pypospack.pyposmat.data.configurationfile.
PyposmatConfigurationFile
(filename=None)[source]¶ Bases:
object
Class for reading, writing, and analyzing configuration file
- Parameters
filename (str,optional) – the filename of the configuration file. This is the location which all IO will take place with. If this argument is passed, then the class will automatically read the class
Notes
To read a file:
from pypospack.pyposmat import PyposmatConfigurationFile o = PyposmatConfigurationFile(filename=_filename)
or
from pypospack.pyposmat import PyposmatConfigurationfile o = PyposmatConfigurationFile() o.read(filename=_filename)
-
filename
= None¶ the name for IO
- Type
str
-
latex_labels
¶
-
mc_seed
¶
-
n_iterations
¶ the number of iterations in this fitting process.
- Type
int
-
normalized_error_names
¶
-
parameter_constraints
¶
-
parameter_distribution_definitions
¶
-
potential
¶
-
qoi_constraints
¶
-
qoi_fitting
¶
-
qoi_fitting_values
¶
-
qoi_targets
¶
-
qoi_testing
¶
-
qoi_testing_values
¶
-
qoi_validation_targets
¶
-
qois
¶
-
qois_validation
¶
-
reference_potentials
¶
-
sampling_constraints
¶
-
sampling_distribution
¶
-
sampling_type
¶
-
set_free_parameter_names_from_configuration_dictionary
(o_config=None)[source]¶ - Parameters
o_config (collections.OrderedDict) – a configuration dictionary which was read in using YAML for marshalling and unmarshalling of the object. By default this is set to None, which uses the existing configuration dictionary
-
structures
¶
pypospack.pyposmat.data.data_analyzer module¶
-
class
pypospack.pyposmat.data.data_analyzer.
PyposmatDataAnalyzer
(config_fn=None, results_data_fn=None, analysis_fn=None, o_config=None, o_results_data=None, mpi_rank=0, mpi_size=1)[source]¶ Bases:
object
class to analyze the results of the simulations
- Parameters
config_fn (str) – path to the configuration file
results_data_fn (str) – path to the data file in which to do analysis
-
config_fn
¶ path to the configuration file
- Type
str
-
results_fn
¶ path to the results data file
- Type
str
-
analysis_fn
¶ path to the analysis data file
- Type
str
-
configuration
¶ instance of the configuration file
-
results_data
¶ instance of the configuration file
- Type
-
analysis
¶ instanceo of the analysis file which is used to marshal information from previous iterations, and unmarshall information to file for later analysis
- Type
PyposmatAnalysisFile
-
mpi_rank
¶ the MPI rank of the process running this code
- Type
int
-
mpi_size
¶ the MPI rank of the process running this code
- Type
int
-
cost_function_types
= ['weighted_sum', 'weighted_sum_product']¶
-
error_names
¶
-
filter_by_cost_function
(df=None, loss_function_type='abs_error', cost_function_type='weighted_sum', weighting_scheme_type='scale_by_qoi_target', pct_to_keep=None, n_potentials_min=50, n_potentials_max=10000)[source]¶ - Parameters
df (pandas,DataFrame) – a pandas dataframe object contain the results of the this iterations of sampling
loss_function_type (str) – the type of loss function to use
cost_function_type (str) – the type of cost function to use
-
filter_by_pareto_membership
(df=None, v=None)[source]¶ filter by pareto membership
Calculation of pareto membership by removal of dominated points
- Parameters
df (pandas.DataFrame) – the dataframe of results. By default this is set to None, which uses the results_df property from a PyposmatDataFile which was read into this instance.
- Returns
the results of the pareto membership consisting of a
'list
of integers which hare the indices of the of the surviving candidate parameterizations, and anOrderedDict
containing the information for Pareto membership- Return type
(tuple)
-
filter_by_qoi_constraints
(df=None)[source]¶ filter by qoi constraints
- Parameters
df (pd.DataFrame,None) –
-
get_weights_by_manual
(df=None)[source]¶ determine weights using preconfigured values
- Parameters
df (pandas.DataFrame,None) – The dataframe constaining the data. The default value is None, which sets the argument value to the property results_df.
-
get_weights_by_qoi_target_normalization
(df=None)[source]¶ determine weights using qoi target normalization
- Parameters
df (pandas.DataFrame,None) – The dataframe constraining the data. The default value is Noen, which sets the arguement value to the property results_df.
-
get_weights_by_z_error_normalization
(df=None)[source]¶ determine weights using z normalization
- Parameters
df (pandas.DataFrame,None) – The dataframe constaining the data. The default value is None, which sets the argument value to the property results_df.
-
initialize_configuration
(config_fn=None, o_config=None)[source]¶ read the configuration file
Must provide either the path of the configuration file through the config_fn argument, or provide an instance of a PyposmatConfigurationFile object. If no arguments are provided, it will read the config_fn attribute as the path of the configuration file.
- Parameters
config_fn (str,None) – the path of the configuration file to read. By default, this attribute is None.
o_config (str,None) – an instance of a PyposmatConfigurationFile object. By default, this attribute is None.
-
initialize_results_data
(results_data_fn=None, o_results_data=None)[source]¶ read results data file
This initializes the results_data attribute as PyposmatDataFile object. There are three mechanisms to initialize this object. If default None arguments, are passed into this method, it will use the results_fn attribute. Otherwise, it will use the not None arguement. If two arguments are provided, a TypeError will be raised.
- Parameters
results_data_fn (str,None) – the path to the results file. By default it is None.
o_results_data (PyposmatDataFile,None) – the path to the results data file. By default it is None
-
loss_function_types
= ['abs_error', 'squared_error']¶
-
n_potentials_start
¶
-
parameter_names
¶
-
qoi_constraints
¶
-
qoi_names
¶
-
results_df
¶
-
str__descriptive_statistics
(statistics)[source]¶ convert desciprtive statistics to a display to string
- Parameters
descriptive_statistics (OrderedDict) – a nested ordered dictionary containing the descriptive statistics of the last simulation
- Rerturn:
str
-
weighting_scheme_types
= ['scale_by_qoi_target', 'scale_by_z_normalization', 'scale_by_manual_weights']¶
pypospack.pyposmat.data.datafile module¶
-
class
pypospack.pyposmat.data.datafile.
PyposmatDataFile
(filename=None)[source]¶ Bases:
object
-
get_header_string
(w_cluster_id=False, parameter_names=None, qoi_names=None, error_names=None, qoi_v_names=None, error_v_names=None)[source]¶
-
n_samples
¶
-
names
¶
-
normalized_error_names
¶
-
subselect_by_score
(score_name, n=1000)[source]¶ - Parameters
scaling_factors (dict) – the key is the error name, the value is a scalar vaue from which the errors will be divided for the purposes of scaling.
n (int) – the number of points to return
result (str) – should be either results, pareto or culled. Default is culled.
-
types
¶
-
pypospack.pyposmat.data.logfile module¶
pypospack.pyposmat.data.manifold_analysis module¶
pypospack.pyposmat.data.pca_analysis module¶
pypospack.pyposmat.data.pipeline module¶
-
class
pypospack.pyposmat.data.pipeline.
BasePipeSegment
[source]¶ Bases:
object
Base object for Pyposmat data pipeline objects to inherit from
pypospack.pyposmat.data.plotting module¶
pypospack.pyposmat.data.post_processor module¶
-
class
pypospack.pyposmat.data.post_processor.
PyposmatPostProcessor
(configuration_fn=None, datafile_fn=None)[source]¶ Bases:
object
-
configuration
¶
-
create_normalized_errors
(normalization_type='by_qoi', qoi_names=None)[source]¶ normalize errors
This class normalizes errors
- Parameters
normalization_type (str) – normalization type
qoi_names (str,list) – allows both string arguments as well as a list of string.
If a list of strings is provided, it will create normalized errors based on the list of string. If qoi_name is set to ‘all’, it will calculate normalized error based on both the attributes based on both the fitting qoi as well as the testing qoi. If no argument is provided, normalized error will be set to ‘all’. Valid options: all, fitting, testing, or list of qoi strings.
-
datafile
¶
-
parameter_names
¶
-


Watch Last Week's Metis: Data Science Meetup (Video)
Here are Gilt’s Igor Elbert (Principal Data Scientist), Etsy’s Nell Thomas (Director of the Data Analyst Team), and New York Times Graphics Editor Kevin Quealy discussing their personal “data science passion projects and accomplishments” at the first-ever meetup of Metis: Data Science. Watch and learn more about Igor’s ideas of “the user interface of the future”!


My writing has appeared in ZYZZYVA, Crab Orchard Review, and TriQuarterly Online and has been awarded grants and fellowships from Hedgebrook, Hawthornden Castle, the Elizabeth George Foundation, and the U.S. Fulbright Commission, the Henry Luce Foundation, and the U.S. State Department. I have taught creative writing workshops in Belize, India, Montenegro, and Timor-Leste and for incarcerated writers in California and Oregon. I hold a BA from Carnegie Mellon University and an MFA from Oregon State University and live in Oregon where I run a science communications office at a UC Berkeley research institute. I can be reached at mackenzie.evan.smith [at] gmail [dot] com.


We will have a new PM by next year: Bilawal Bhutto
by https://www.facebook.com/dunyanewsISLAMABAD (Dunya News) - Pakistan Peoples Party (PPP) Chairman Bilawal Bhutto Zardari claimed that Pakistan will have a new Prime Minister by next year, and the PPP will form a public government.
Speaking to media after the meeting of Core Committee, Bilawal said that the PPP fulfilled all its promises made to Maulana Fazlur Rehman. “We participated and addressed the Azadi March”, he expressed, adding that the PPP’s public campaign will remain intact.
PPP Chairman said that the PPP will observe Foundation Day (Youm-e-Tasees) in Kashmir this year and will announce the future course of action there.
The scion of Bhutto dynasty asserted the economic situation of the country is not moving into the right direction. He went on to say that those who are claiming that the economic situation of Pakistan is fine, they should look at the misery through which the unemployed people are suffering.
Bilawal Bhutto expressed that the PPP wants democracy. He continued asserting that our foreign policy is going through a historic crisis. He added, “The burden of inflation should be less on the poor and more on the powerful, but the comman man of country has been laden with the effect of inflation.
“Pakistanis are bearing the burden of government’s incompetency.
“Ever since the ineligible government has came into power, the economic situation has worsened from bad to abysmal," he maintained.


Generate quote
God save me from my friends. I can protect myself from my enemies.
-
Claude Louis Hector De Villars


The amount of the asset being deposited.
The ID of the asset being deposited. Equivalent to product ID. AssetId = ProductId, and uses the same ID numbers.
The ID of the Asset Manager module, which interacts with the OMS and the trading venue’s matching engine. The Asset Manager accepts, holds, and disburses assets (products)
The name of the asset being deposited. USD (dollars), BTC (bitcoin), gold, NZD (New Zealand dollars) for example. This is not an enumerated field, to allow for flexibility.
A set of base-64 strings usually providing an image or a PDF. This image or file may be a transaction receipt or other information that the depositor wishes to attach to the deposit for record-keeping purposes.
Comments are sets of system-generated string/value pairs that provide information about the deposit’s process through the system. Neither users nor admins enter these comments directly.
The time and date that the deposit was created, in ISO 8601 format.
A list of strings and string/value pairs that holds information about the source of funds being deposited. This information was entered when the deposit ticket was created, and as required by the account provider.
The value of the fee for making the deposit, if any
The time and date that the deposit ticket last was updated, in ISO 8601 format.
The ID of the Order Management System handling the deposits.
The ID of the operator of the trading venue
A GUID (globally unique ID) string that identifies this specific deposit.
The on-line IP (Internet Protocol) address from which the deposit is made. This can be a traditional IPv4 dotted quad (<IP_ADDRESS>) or a 128-bit IPv6 address.
The ID of the user sending the request and making the deposit
The name of the user sending the request and making the deposit. For example, “John Smith.”
The current status of the deposit. One of:
Note: The value of Status is an integer in the request for GetAllDepositTickets. In the response, it is a string..
A system-assigned unique deposit ticket number that identifies the deposit. The value for TicketNumber is returned by the GetDepositTicket calls: GetAllDepositTickets and GetDepositTicket
The ID of the most recent user updating this deposit ticket
The name of the most recent user updating this deposit ticket, for example, “Joan Smith.”
Generated using TypeDoc
The ID of the account into which the deposit was made.
{number}
AllDepositTicketsResult


Pipeline Iterator Types
-
Skips the first
count
elements of an underlying iterator.For more documentation, please see
See morePipelineIteratorProtocol
‘sdrop
method.Declaration
Swift
public struct DropPipelineIterator<U> : PipelineIteratorProtocol where U : PipelineIteratorProtocol
-
Undocumented
See moreDeclaration
Swift
public struct FunctionGeneratorPipelineIterator<T> : PipelineIteratorProtocol
-
Interleaves the output of multiple producer pipelines.
Interleave is often leveraged for I/O-intensive operations. For additional details, please see the documentation on
PipelineIteratorProtocol
‘sinterleave
method.See moreSee also
PipelineIteratorProtocol.interleaveDeclaration
Swift
public struct InterleavePipelineIterator<Upstream, Producer> : PipelineIteratorProtocol where Upstream : PipelineIteratorProtocol, Producer : PipelineIteratorProtocol
-
Performs upstream work on a background thread, storing prefetched values in an intermediate buffer for fast retrieval.
PrefetchPipelineIterator inserts heterogeneous / pipeline parallelism into a pipeline iterator, as “upstream” computation happens on future elements while downstream elements are currently processed on the caller’s thread.
See moreDeclaration
Swift
public struct PrefetchPipelineIterator<Upstream> : PipelineIteratorProtocol where Upstream : PipelineIteratorProtocol
-
Returns a random permutation of elements in collection C.
See moreDeclaration
Swift
public struct RandomCollectionPipelineIterator<C, R> : PipelineIteratorProtocol where C : Collection, R : RandomNumberGenerator, C.Index == Int
-
Generates a random purmutation of the integers
0
tocount
.Internally, it uses a variation of the Fisher-Yates shuffle to ensure an unbaised sequence (assuming the underlying random number generator is itself unbiased).
See moreDeclaration
Swift
public struct RandomIndicesIterator<T> : PipelineIteratorProtocol where T : RandomNumberGenerator
-
A parallel iterator producing a sequence of integers.
RangePipelineIterator is used to produce counters or similar sequences. It supports non-unit stepping to allow for more complicated sequence generation.
It is often constructed using the
See morerange
functions onPipelineIterator
.Declaration
Swift
public struct RangePipelineIterator : PipelineIteratorProtocol
-
Undocumented
See moreDeclaration
Swift
public struct ReduceWindowPipelineIterator<Underlying, Output> : PipelineIteratorProtocol where Underlying : PipelineIteratorProtocol
-
Undocumented
See moreDeclaration
Swift
public struct SequencePipelineIterator<T> : PipelineIteratorProtocol where T : Sequence
-
Truncates an underlying iterator to the first
takeCount
elements.For more documentation, please see
See morePipelineIteratorProtocol
‘stake
method.Declaration
Swift
public struct TakePipelineIterator<U> : PipelineIteratorProtocol where U : PipelineIteratorProtocol
-
Undocumented
See moreDeclaration
Swift
public struct TransformPipelineIterator<Underlying, Output> : PipelineIteratorProtocol where Underlying : PipelineIteratorProtocol
-
Combines two iterators of types
L
andR
into an iterator producing elements of type(L.Element, R.Element)
.For additional documentation, please see
See morePipelineIterator
‘szip
method.Declaration
Swift
public struct Zip2PipelineIterator<L, R> : PipelineIteratorProtocol where L : PipelineIteratorProtocol, R : PipelineIteratorProtocol
-
Declaration
Swift
public extension Sequence


Intermediate JavaScript
Class Slides
Materials
Class 1 Slides
Class 2 Slides
Class 3 Slides
Class 4 Slides
Main Project Files
Resources
All Resources #1
JavaScript Cheat Sheet
Array Methods
Arrow Function - blog
Arrow Function - video
JS Object Practice Exercises #1
JS Object Practice Exercises #2
DOM Cheat Sheet by Chris Heilmann
Chris Heilmann - Blog
JSON Formatter - Chrome Extension
Public API List
CORS - Chrome Extension
All Resources #2
JS Promises by Daniel Shiffman
The Coding Train - Daniel Shiffman
Fetch by David Walsh
David Walsh - Blog
List of DOM Events
JavaScript30
Scotch.io - tutorials
Public API List
Mayuko - Vlog
Adrienne Tacke - Blog
binarybeauty - Instagram
Mina Markham - Twitter


---
layout: page
weight: 100
title: Delivery Metrics Index
navigation:
show: true
---
SendGrid offers statistics on a number of different metrics to report on what is happening with your messages.
- Alerts: SendGrid will trigger an alert to send you based on triggers you set within SendGrid.
- Categories: SendGrid will allow you to filter email statistics based on specific categories you add to your emails.
- Email Activity: A page within your account that allows you to see recent stats on your sent emails.
- Email Error Messages: All of the Error messages that you can expect from SendGrid.
- Email Reports: View and export reports about your email activity.


Instructions:
Tap a row in the table corresponding to the Arduino pin you want to control.
Select a pin mode:
- Input - monitor pin's state
- Output - enable setting of pin state
- Analog - monitor Analog pin input
- PWM - set a pin's pulse width output
Set an Output pin's state using the Low/High control.
Set a PWM pin's output value using the slider control.
Once finished setting a pin's mode or state, you can close it by tapping the empty space near it's top - or by selecting another row.


“When words become unclear, I shall focus with photographs. When images become inadequate, I shall be content with silence.” ~Ansel Adams
I’ve always felt most at home when I am outdoors. I'm a trained naturalist, having worked over 20 years in parks, outdoor education centers and summer camps. In all of those years, with all of my jobs, I've been fortunate enough to incorporate photography into my work responsibilities.
Ansel Adams' words resonate with me because I find that spending time behind a camera lens allows me to really focus on the things that are most important, both technically and personally. And yet sometimes, even pictures don't quite do justice to the beauty around us, and I have come to accept that sometimes it's ok to put the camera down and just enjoy what God has put before me. I won't get every shot, and that's ok.
I hope that you enjoy looking through the images I have shared with you here.


| Coupon |
* Sponsored Results
working girl, 1988 - WILDsound MOVIES
WORKING GIRL, 1988 Movie Review Watch, Melanie Griffith, Harrison Ford, . Cusack, Oliver Platt, Kevin Spacey, Olympia Dukakis and Sigourney Weaver .
http://www.wildsoundmovies.com/working_girl.html
girl cums up close on cam player's tennis club hilliard ohio
Sigourney Weaver - Buy Movies on DVD & Blu-ray | Movies Unlimited
1-800-4-MOVIES . Did You Mean: Sigourney Weaver .
http://www.moviesunlimited.com/musite/siteSearch.asp?search=Sigourney%20Weaver
the grid bury st edmunds state of kentucky minority business enterprises
400 Elm Ave
Yukon,
OK 73099
docx converter for free and fast
Family Night Dinner Group Studies Ministries for all ages
sat set up for 2700a slim line air conditioners and heaters info on internal and external hemoroids
900 S Littler Ave
Edmond,
OK 73034
outdoor folding sling chair
Movie Review: Working Girl (1988) starring Harrison Ford ...
Running Time: 1 hr. 53 min. Release Date: December 21st, 1988 . Working Girl movie 1988 Harrison Ford, Sigourney Weaver, Melanie Griffith, Alec Baldwin, .
http://gonewiththetwins.com/pages/80s/workinggirl.php
wich force acts on a tower escort girls stevenage herts lightning glass and screen penrose colorado
500 S Country Club Rd
Movie Lists -Sigourney Weaver Filmography
A list of movies that Sigourney Weaver has had an acting role. . In The Mist: The Story of Dian Fossey and a Best Supporting Actress nomination for the romantic comedy Working Girl (Harrison Ford). . Gorillas in the Mist, 1988, Dian Fossey .
http://www.ducksoftware.com/movies/sigourneyweavermovies.html
Sigourney Weaver through the years | Home - At The Movies
Oct 8, 2012 . 1988: Harrison Ford, Melanie Griffith and Sigourney Weaver in "Working Girl." The film earned Weaver an Oscar nomination for Best Supporting .
http://www.kjct8.com/entertainment/at-the-movies/-/163422/150788/-/cvobksz/-/index.html
lansing ks pizza hut aarp medicare supplemental drug plan paper box characters to make
Basic Listings
226 S 29th St
Siskel And Ebert review Working Girl (1988) - YouTube
Jul 3, 2012 . Siskel and Ebert review the Oscar-winning 1988 film Working Girl, starring Melanie Griffith, Harrison Ford and Sigourney Weaver. Co-starring .
http://www.youtube.com/watch?v=ZWWtoaTbnVI
western digital external hard drive cable location of storm surge license click key enter
1202 W Grand Ave
Amazon.com: Working Girl: Harrison Ford, Sigourney Weaver ...
Amazon.com: Working Girl: Harrison Ford, Sigourney Weaver, Melanie Griffith, Alec . Working Girl (1988) . Shop our Top Holiday Deals and save on thousands of movies and TV shows including DVDs under $5 and Blu-rays under $10.
http://www.amazon.com/Working-Girl-Harrison-Ford/dp/B000059HAK
home cheesecake factory baltimore md double broiler oven ranges
116 E Georgia Ave
Working Girl Movie Trivia - The 80s Movies Rewind
Part of 8 pages of info for the 1988 movie from the award .
http://www.fast-rewind.com/trivia_workinggirl.htm
agent orange and siamese twins learn spanish online free easy study exams for police test
301 S 2nd St
Working Girl - Wikipedia, the free encyclopedia
Working Girl is a 1988 romantic comedy film written by Kevin Wade and . When her boss, Katharine Parker (Sigourney Weaver), breaks her leg skiing, Tess uses . Jack Trainer (Harrison Ford), to put forward her own idea for a merger deal.
http://en.wikipedia.org/wiki/Working_Girl
page mrachek fitzgerald rose shadow of the tempers walk-through book stocker merchandiser charlotte nc
1910 S 20th St
Sigourney Weaver DVDs - Drama Movies at Movies Unlimited
Sigourney Weaver DVDs - View our list of Sigourney Weaver .
http://www.moviesunlimited.com/musite/browse_list.asp?cid=dr&dept=Sigourney+Weaver&subdept=&media=D&iCurrentPage=1
greenville auto injury attorney bible cloaked american flag wii fit new release
728 W Michigan Ave
The Pop History Dig » Working Girl soundtrack
. starring Melanie Griffith, Harrison Ford, Sigourney Weaver, and Joan Cussak. . Carly Simon's music helped make the 1988 film 'Working Girl' a memorable .
http://www.pophistorydig.com/?tag=working-girl-soundtrack
school 4 in jacksonville santa elena spain property analog alarm clock radio
3340 S 16th St
Sigourney Weaver | Movies and Biography - Yahoo! Movies
Find the complete movie career of Sigourney Weaver, including filmography, awards and . (1982), "Gorillas in the Mist" (1988), "Copycat" (1995) and "The Ice Storm" (1997). . 35th Cesar Film Awards 2010 Harrison Ford Sigourney Weaver .
http://movies.yahoo.com/person/sigourney-weaver/
heartland oakland troy michigan history of mass media in america mercyful fate curse of the pharaohs
828 S 9th St
Working Girl - Rotten Tomatoes
Her boss is Sigourney Weaver, an outwardly affable yuppie whose grinning visage hides . In Theaters: Dec 20, 1988 Wide . This intoxicating movie has an answer: let her strut her outer-borough wisdom . She's supported by an talented cast that includes Harrison Ford and Sigourney Weaver in equally memorable parts.
http://www.rottentomatoes.com/m/working_girl/
aussie awsome volumizing shampoo waste heat boiler vendors steel toe western boots
1300 S 29th St
Working Girl (1988) - IMDb
With Melanie Griffith, Harrison Ford, Sigourney Weaver, Alec Baldwin. When a . David Duchovny's film debut at Tess's surprise birthday party. He was one of .
http://www.imdb.com/title/tt0096463/
texas tech versus smu chris cagle id be lyen airlines leaving from brazil
102 E Almar Dr
Sigourney Weaver Biography (Actor) Infoplease.com
Biography of Sigourney Weaver, Ripley in the Alien film series. . with Bill Murray ), Working Girl (1988, with Harrison Ford) and the sci-fi spoof Galaxy Quest .
http://www.infoplease.com/biography/var/sigourneyweaver.html
housecleaning jobs melbourne australia lonesome road blues bill monroe cooling curve of stearic acid
320 S 4th St
Sigourney Weaver - Wikipedia, the free encyclopedia
Sigourney Weaver at the 2008 Tribeca Film Festival premiere of Baby Mama; . performances in 1988 as Dian Fossey in Gorillas in the Mist. The same year she appeared opposite Harrison Ford in a supporting role .
http://en.wikipedia.org/wiki/Sigourney_Weaver
welcome to new jersy is 110 bas california legal marriage to an australian citizen
901 W Grand Ave
Working Girl - Television Tropes & Idioms
This 1988 comedy, directed by Mike Nichols, shows that even if you come from the . up with Jack Trainer (Harrison Ford) to close the deal before Katharine's return. . The film also won four Golden Globes, with Melanie Griffith and Sigourney .
http://tvtropes.org/pmwiki/pmwiki.php/Main/WorkingGirl
changing cultural status2 of tattoo art what is symbolic speach usaopoly chicago edition monopoly
2414 State Highway 92
Working Girl: Information from Answers.com
Working Girl is a 1988 romantic comedy film written by Kevin Wade and . When her boss, Katharine Parker (Sigourney Weaver), breaks her leg skiing, Tess uses . Jack Trainer (Harrison Ford), to put forward her own idea for a merger deal.
http://www.answers.com/topic/working-girl-film
seaworthy mp3 auxiliary input the battle of yorktown summary
124 S 6th St
Working Girl [1988] [DVD]: Amazon.co.uk: Harrison Ford, Sigourney ...
Nearly twenty years on, this film has survived the test of time and exudes maximum effort from Harrison Ford, Melanie Griffith and Sigourney Weaver.They were .
http://www.amazon.co.uk/Working-Girl-DVD-Harrison-Ford/dp/B000DZ8400
3320 S 16th St
Sigourney Weaver Filmography
View Sigourney Weaver's filmography, actor bio, upcoming movie release dates, photos, and more on Fandango.
http://www.fandango.com/sigourneyweaver/filmography/p75144
vrem sa vedem operati vrem sa vedem operati ski shop burlington vt
802 Frisco Ave
Trask Development: Custom Home Builders in Southborough MA
. the company name since it's the same name as the company in the 1988 movie Working Girl that stars Harrison Ford, Sigourney Weaver, and Melanie Griffith.
http://www.traskdevelopment.com/history.html
state of kentucky minority business enterprises laboratory supply companies top 10 free kneeling africian american santa graphics
609 W Highway 277
Sigourney Weaver in <i>Working Girl</i> - StinkyLulu
Jul 29, 2007 . Sigourney Weaver in Working Girl (1988). approximately 21 minutes and 40 seconds 17 scenes roughly 21% of film's total running time .
http://stinkylulu.blogspot.com/2007/07/sigourney-weaver-in-working-girl.html
dodge 4x4 lift kit verizon wireless in niles il new pokemon series for new pokemon
2828 S 9th St
Harrison Ford, Sigourney Weaver and Melanie Griffith in Working ...
Harrison Ford, Sigourney Weaver and Melanie Griffith in Working Girl (1988) · « Back . Melanie Griffith and Harrison Ford Pictures . Featured Movie Galleries .
http://www.fanpix.net/0682505/015326965/harrison-ford-sigourney-weaver-and-melanie-griffith-in-working-girl-1988-picture.html
jelly belly authentic large bean machine gibbstown schools new jersey nelson winslow filter element
202 S 6th St
Working Girl (soundtrack) - Wikipedia, the free encyclopedia
Working Girl is the soundtrack to the 1988 movie Working Girl directed by Mike Nichols and starring Harrison Ford, Sigourney Weaver and Melanie Griffith.
http://en.wikipedia.org/wiki/Working_Girl_(soundtrack)
428 E Almar Dr
Sigourney Weaver Videos, Sigourney Weaver Pictures, and ...
These clips are from the orignal movie, "Working Girl", 1988. Starring Melanie Griffith, Sigourney Weaver, Harrison Ford and Joan Cusack. Where was the .
http://www.funnyordie.com/topic/sigourney-weaver
hp rp7410 service manual tikun olam action network how to refresh grout
Working Girl - Movie Reviews - Rotten Tomatoes
She's supported by an talented cast that includes Harrison Ford and Sigourney Weaver in equally memorable parts. Classic film director, Mike Nichols, is in top .
http://www.rottentomatoes.com/m/working_girl/reviews/?type=user
"Working Girl" (1988) - Topix
This Hollywood (USA) movie starring Sigourney Weaver, Melanie Griffith, and Harrison Ford is a elegy story about an aspiring working city girl .
http://www.topix.com/forum/religion/christian/TSA1DBQIS1HJMOE9C
The King Bulletin: Movie Review: Working Girl (1988) - 4 stars
Feb 7, 2010 . Working Girl, the fantastic film from director Mike Nichols, tells the . job working for financial executive Katharine Parker (Sigourney Weaver, in peak form). . Tess calls the well-known executive Jack Trainer (Harrison Ford) to .
http://thekingbulletin.blogspot.com/2010/02/movie-review-working-girl-1988-4-stars.html
* Sponsored Results
| Select from the listings below | (1970s version of the our father) | |
|
search firms in lexington ky 226 S 29th St Working Girl (1988), Romantic Movie Review & Trailer - Women Stalk |
||
|
webkinz cards where to buy 1202 W Grand Ave Nick's Flick Picks: The Movies of 1988 |
||
|
egg harbor business association 116 E Georgia Ave SIGOURNEY WEAVER bio, SIGOURNEY WEAVER pictures ... |
||
|
game genie rom torrent 301 S 2nd St Working Girl - Movie Lists - AMC |
||
|
hp rp7410 service manual 1910 S 20th St Qwipster's Movie Reviews - Working Girl review (1988) |
||
|
study exams for police test 728 W Michigan Ave Watch Working Girl Movie Trailers, Reviews, Interviews, Quotes ... |
||
|
exotic newcastle disease virus symptoms 3340 S 16th St 10 Best Harrison Ford Movies - With Clips! | Movie Moron |
||
|
1970 el camino lug nut pattern 828 S 9th St Harrison Ford Movies |
||
|
lonesome road blues bill monroe 1300 S 29th St Working Girl (1988) @ The Squeee |
||
|
awesome hunter pet names 102 E Almar Dr Behind The Scenes of Working Girl Movie. |
||
|
upcoming singing competitions in central pennsylvania 320 S 4th St Working Girl - Wikiquote |
||
|
piercing laws texas ears 901 W Grand Ave Working Girl (1988) Movie Review MRQE |
||
|
xena warrior princess plots 2414 State Highway 92 Top Sci-Fi Movies - FilmCrave.com |
||
|
soft air sports of oregon 124 S 6th St Working Girl | Netflix |
||
|
ballet dancer music boxes 3320 S 16th St National Boss/Employee Exchange Day: Best bad boss movies ... |
||
|
louise wright sublette ks 802 Frisco Ave Girl Detective » Blog Archive » Lots of Movies |
||
|
shannon rose irish pub 609 W Highway 277 100 Greatest Sci-Fi Movies |
||
|
west side church traverse city 2828 S 9th St The real deal | Movie Review | Arts & Entertainment | South Philly ... |
||
|
webkinz cards where to buy 202 S 6th St favorite movies - Rebecca Hagan Lee |
||
|
beatles songs on mothers 428 E Almar Dr Scrambled Chick Flicks - Fun Facts, Questions, Answers, Information |
||
| Select from the listings above | (making patterns in photoshop cs4) | |


Pirates Kidnap Crew From Greek Boat Near Togo - Navy
The Togo Navy has stated that pirates attacked a Greek oil tanker early on Monday, taking four crew members as hostages.
According to the Togo Navy, the kidnapped crew members include two Filipinos, one Greek and one Georgian.
"Monday, 4th of November 2019, around 0300, the tanker boat Elka Aristotle was attacked around 18 kilometres (11 miles) from the port of Lome by armed individuals," the statement said.
The navy stated that the tanker was guarded by armed personnel, one of whom was wounded during a shoot-out.
On Saturday, a similar incident occurred near neighbouring Benin as pirates attacked a Norwegian-flagged boat, abducting nine Filipino crew members.


Syntax:
throw tag result-form =>|
Arguments and Values:
tag---a catch tag; evaluated.
result-form---a form; evaluated as described below.
Description:
throw causes a non-local control transfer to a catch whose tag is eq to tag.
Tag is evaluated first to produce an object called the throw tag; then result-form is evaluated, and its results are saved. If the result-form produces multiple values, then all the values are saved. The most recent outstanding catch whose tag is eq to the throw tag is exited; the saved results are returned as the value or values of catch.
The transfer of control initiated by throw is performed as described in Section 5.2 (Transfer of Control to an Exit Point).
Examples:
(catch 'result (setq i 0 j 0) (loop (incf j 3) (incf i) (if (= i 3) (throw 'result (values i j))))) => 3, 9
(catch nil (unwind-protect (throw nil 1) (throw nil 2))) => 2
The consequences of the following are undefined because the catch of b is passed over by the first throw, hence portable programs must assume that its dynamic extent is terminated. The binding of the catch tag is not yet disestablished and therefore it is the target of the second throw.
(catch 'a (catch 'b (unwind-protect (throw 'a 1) (throw 'b 2))))
The following prints ``The inner catch returns :SECOND-THROW'' and then returns :outer-catch.
(catch 'foo (format t "The inner catch returns ~s.~%" (catch 'foo (unwind-protect (throw 'foo :first-throw) (throw 'foo :second-throw)))) :outer-catch) >> The inner catch returns :SECOND-THROW => :OUTER-CATCH
Affected By: None.
Exceptional Situations:
If there is no outstanding catch tag that matches the throw tag, no unwinding of the stack is performed, and an error of type control-error is signaled. When the error is signaled, the dynamic environment is that which was in force at the point of the throw.
See Also:
block, catch, return-from, unwind-protect, Section 3.1 (Evaluation)
Notes:
catch and throw are normally used when the exit point must have dynamic scope (e.g., the throw is not lexically enclosed by the catch), while block and return are used when lexical scope is sufficient.


The love that many men feel about cars inherited from their fathers and their friends, in their youth. The first gifts and toys of young boys are always small cars, so it's no wonder that in time they turn into sincere enthusiasts in the auto-moto industry
and competitions related to this lifestyle. But there are some facts that even the most ambitious industry connoisseurs do not know.  Enjoy!
The first semaphore in the world was set up in the United States in Cleveland back in 1914 at the corner of Euclid Avenue and East 105. The installation of traffic lights helped control chaos on US streets from cars, pedestrians, bicycles, horses and trams.
The first traffic accident in the world was recorded in 1769. The car is still preserved in a broken state.
In 1896, the first death occurred as a result of a car accident.
In China, for 40 euros, your car will bring someone to your house through all the city crowds, and will take you to your destination by bike.
The car is the most recycled product in the world.
The most expensive car ever produced was the Buggati Royal Kellner Coupe. Price? Only $ 8.7 million
Rolls Royce's famous ghost statue is nicknamed Spirit of Ectasy, or Spirit of Ecstasy. Yeah, he's dealing with drugs.
Only 18% of the engine generated by the gasoline ends in power on the wheels.
The oldest car that has been preserved to date has been produced in France in 1884. It has recently sold for $ 4.6 million at auction.
The record time it takes to change the complete car engine is 42 seconds. The record was set to Forda Escort in 1985.
Approximately 1 billion vehicles are active on the planet.
The car dashboard was in its original form a wooden board that protected the driver from the mud that horses were thrown while driving.
In France, alcotest is part of the obligatory equipment in every car.
The lowest legal car in the world high is only 48 centimeters. It's called Flatmobile.
While was in prison, Hitler sought a loan for Mercedes.
The most popular Volkswagen cars Passat, Polo and Jetta are named like the names of winds.
80% of cars in Albania are Mercedes.
In South Africa, BMW cars mount flame launchers for frequent attempts to steal.
People older than 75 in Japan need to have a special label on the back of the car.
Ferrari produces 14 cars each day.
Toyota produces 13,000 vehicles per day.
Every fourth car on the planet is produced in China.
Formula 1 can ride at the speed of 193 km / h by the tunnel ceiling. So much downforce produces its aerodynamics!
If the remote control key car is pressed 256 times, and if your car is not near, the key will stop working.
Formulas 1 use the same exhaust pipes as nuclear reactors.


Thank you for taking the time to fill out this survey.
All fields are required.
Submit Survey
Cancel


nulltextures
string[]
NULL_TEXTURES
;
These texture names must always be the first one in a textures list if found.
See http://doomwiki.org/wiki/AASTINKY for more information as to why.
Page generated by
Ddoc
.


--- title: Think Stats keywords: fastai sidebar: home_sidebar summary: "Notes I generated going through the *think stats* book [1,2]." ---
References
[1] Allen B. Downey, Think Stats: Probability and Statistics for programmers, 2011
[2] thinkstats2 on github


Introduced in Excel 10 (2002) the FEATHEADR record describes the common information (header) for shared features such as Protection and SmartTag. For example, if you have a worksheet that contains Protection, a Shared Feature Header ( FEATHEADER ) record is created for all Protections which may include Sheet Protection or Book Protection. Though Sheet Protection and Book Protection may have specific data that are different and are saved in the Feature Data (see FEAT record for detail) portion, their common settings are stored in this header block record.
A worksheet may contain one or more different types of Shared Feature and each type of Shared Feature has its own Shared Feature Header ( FEATHEADER) record to store common information across all Shared Feature of the same type. This FEATHEADER record will have different data structure layout according to the Shared Feature type (the isf field flags differentiate Shared Feature types). For example, if a Workbook has both Protection and SmartTag, there is one Shared Feature Header ( FEATHEADER ) created for Protection, and another Shared Feature Header ( FEATHEADER ) created for SmartTag. Therefore, the data block of the Shared Feature Header ( FEATHEADER ) may have a different data structure depending on which Shared Feature Type the record is for.
Though Excel currently has many different Shared Features such as Formula Error Checking, Protection, SmartTag etc., only 2 types of Shared Feature are persisted in Excel 2002: Protection and SmartTag.
Special note : In Excel 2003, this FEATHEADER is not used for new shared features, such as Tables, since a new record of FEATFEADER11 was introduced for better feature data round-tripping stories through earlier versions of Excel.
Record Data
|
Offset |
Field Name |
Size |
Contents |
|
4 |
rt |
2 |
Record type; this matches the BIFF rt in the first two bytes of the record; =0867h |
|
6 |
grbitFrt |
2 |
FRT cell
reference flag |
|
8 |
(Reserved) |
8 |
Currently not used and set to 0. |
|
16 |
isf |
2 |
Shared feature type index |
|
18 |
fHdr |
1 |
=1 since this is a feat header |
|
19 |
cbHdrData |
4 |
Size of rgbHdrSData |
|
23 |
rgbHdrData |
var |
Byte array of extra info, including from future versions of Excel |
The rgbHdrData block for Enhanced Protection
|
Offset |
Field Name |
Size |
Contents |
|
0 |
grbit |
4 |
Bit flag for protection rules setting (see table below for detail bit settings) |
The bit settings for protection rules settings in the grbit :
|
Bits |
Mask |
Bit Name |
Description |
|
0 |
00000001h |
iprotObject |
Edit object |
|
1 |
00000002h |
iprotScenario |
Edit scenario |
|
2 |
00000004h |
iprotFormatCells |
Format cells |
|
3 |
00000008h |
iprotFormatColumns |
Format columns |
|
4 |
00000010h |
iprotFormatrows |
Format rows |
|
5 |
00000020h |
iprotInsertColumns |
Insert columns |
|
6 |
00000040h |
iprotInsertRows |
Insert rows |
|
7 |
00000080h |
iprotInsertHyperlinks |
Insert hyperlinks |
|
8 |
00000100h |
iprotDeleteColumns |
Delete columns |
|
9 |
00000200h |
iprotDeleteRows |
Delete rows |
|
10 |
00000400h |
iprotSelLockedCells |
Select locked cells |
|
11 |
00000800h |
iprotSort |
Sort |
|
12 |
00001000h |
iprotAutoFilter |
Use Autofilter |
|
13 |
00002000h |
iprotPivotTables |
Use PivotTable reports |
|
14 |
00004000h |
iprotSelUnlockedCells |
Select unlocked cells |
The rgbHdrData block for SmartTag
|
Offset |
Field Name |
Size |
Contents |
|
0 |
cSmartTag |
4 |
Count of SmartTags |
|
4 |
rgbSmartTag |
var |
Array of SmartTag header data (see table below). |
|
var |
cbPropBagData |
2 |
Count of bytes in Property Bag store plus unknown data, i.e., rest of the data size including this count bit |
|
var |
sVersion |
2 |
Version number |
|
var |
(Reserved) |
4 |
Currently not used. |
|
var |
Cste |
4 |
String table entry |
|
var |
cbUnknown |
2 |
Count of bytes of unknown data |
|
var |
pvUnknoan |
var |
The Unknown data |
Where the rgbSmartTag , the array of SmartTag header data block, has the fields:
|
Offset |
Field Name |
Size |
Contents |
|
0 |
cbSmartTag |
4 |
Count of Byte of the SmartTag data |
|
4 |
id |
4 |
Id of this SmartTag |
|
8 |
cbUri |
2 |
Count of bytes of rgbUri |
|
10 |
rgbUri |
var |
Character string of URI (Universal Resource
Identifier) which is the name space portion of the SmartTag, of length cbUri |
|
var |
cbTag |
2 |
Count of bytes of the SmartTag tag name rgbTag |
|
var |
rgbTag |
var |
Character string of the SmartTag tag name, of length cbTag e.g., Stockticker |
|
var |
cbDownLoadURL |
2 |
Count of bytes of Download URL address string: rgbDownLoadURL |
|
var |
rgbDownLoadURL |
var |
Character string of downloading URL |
|
Var |
pvUnknown |
var |
Additional data in pvUnknown , of length cbSmartTag – cbUri – cbTag – cbDownLoadURL – 10 |
In Excel 2003, only book level SmartTags’ headers are saved. Sheet level SmatTag headers are not persisted.


12 OrberWeb
12.1 Using OrberWeb
OrberWeb is intended to make things easier when developing and testing applications using Orber. The user is able to interact with Orber via a GUI by using a web browser.
OrberWeb requires that the application WebTool is available and started on at least one node; if so OrberWeb can usually be used to to access Orber nodes supporting the Interoperable Naming Service. How to start OrberWeb is described in Starting OrberWeb
The OrberWeb GUI consists of a Menu Frame and a Data Frames.
The Menu Frame
The menu frame consists of:
- Node List - which node to access.
- Configuration - see how Orber on the current node is configured.
- Name Service - browse the NameService and add/remove a Context/Object.
- IFR Types - see which types are registered in IFR.
- Create Object - create a new object and, possibly, store it in the NameService.
Which nodes we can access is determined by what is returned when invoking [node()|nodes()]. If you cannot see a desired node in the list, you have to call net_adm:ping(Node). But this requires that the node is started with the distribution switched on (e.g. erl -sname myNode); this also goes for the node OrberWeb is running on.
The Configuration Data Frame
When accessing the Configuration page OrberWeb presents a table containing the configuration settings for the target node.
It is also possible to change those configuration parameters which can be changed when Orber is already started. The Key-Value pairs is given as a list of tuples, e.g., [{orber_debug_level, 5}, {iiop_timeout, 60}, {giop_version, {1,2}}]. If one tries to update a parameter which may not be changed an error message will be displayed.
The IFR Data Frame
All types registered in the IFR (Interface Repository) which have an associated IFR-id can be viewed via the IFR Data Frame. This gives the user an easy way to confirm that all necessary IDL-specifications have been properly registered. All available types are listed when choosing IFR Types in the menu frame:
After selecting a type all definitions of that particular type will be displayed. If no such bindings exists the table will be empty.
Since Orber adds definitions to the IFR when it is installed (e.g. CosNaming), not only types defined by the user will show up in the table. In the figure below you find the the NameService exceptions listed.
The NameService Data Frame
The NameService main purpose is to make possible to bind object references, which can client applications can resolve and invoke operations on. Initially, the NameService is empty. The most common scenario, is that user applications create Contexts and add objects in the NameService. OrberWeb allows the user to do the very same thing.
When referencing an object or context you must use stringified NameComponents. For more information see the Interoperable Naming Service. In the following example we will use the string org/erlang/TheObjectName, where org and erlang will be contexts and TheObjectName the name the object will be bound to.
Since the NameService is empty in the beginning, the only thing we can do is creating a new context. Simply write org in the input field and press New Context. If OrberWeb was able to create the context or not, is shown in the completion message. If successful, just press the Go Back button. Now, a link named org should be listed in the table. In the right column the context type is displayed. Contexts are associated with ncontext and objects with nobject.
To create the next level context (i.e. erlang), simply follow the link and repeat the procedure. If done correctly, a table containing the same data as the following figure should be the result if you follow the erlang link. Note, that the path is displayed in the yellow field.
If a context does not contain any sub-contexts or object bindings, it is possible to delete the context. If these requirements are met, a Delete Context button will appear. A completion status message will be displayed after deleting the context.
Now it is possible to bind an object using the complete name string. To find out how this is done using OrberWeb see Object Creation. For now, we will just assume that an object have been created and bound as TheObjectName.
If you follow the TheObjectName link, data about the bound object will be presented. Note, depending on which type of object it is, the information given differs. It would, for example, not be possible to display a Pid for all types of objects since it might reside on a Java-ORB. In the figure below a CosNotification FilterFactory have been bound under the name org/erlang/TheObjectName.
OrberWeb also makes it possible to remove a binding and dispose the associated object. Pressing Unbind the binding will be removed but the object will still exist. But, if the Unbind and Dispose button is pressed, the binding will be removed and the object terminated.
The Object Creation Data Frame
This part makes it possible to create a new object and, if wanted, store it the NameService.
- Module - simply type the name of the module of the object type you want to create. If the module begins with a capital letter, we normally must write 'Module_Interface'. But, when using OrberWeb, you shall NOT. Since we cannot create linked objects this is not an option.
- Arguments - the supplied arguments must be written as a single Erlang term. That is, as a list or tuple containing other Erlang terms. The arguments will be passed to the init function of the object. It is, however, not possible to use Erlang records. If OrberWeb is not able to parse the arguments, an error message will be displayed. If left empty, an empty list will be passed.
- Options - the options can be the ones listed under Module_Interface in Orber's Reference manual. Hence, they are not further described here. But, as an example, in the figure above we started the object as globally registered. If no options supplied the object will be started as default.
- Name String - if left empty the object will not be registered in the NameService. Hence, it is important that you can access the object in another way, otherwise a zombie process is created. In the previous section we used the name string org/erlang/TheObjectName. If we choose the same name here, the listed contexts (i.e. org and erlang) must be created before we can create and bind the object to TheObjectName. If this requirement is not met, OrberWeb cannot bind the object. Hence, the object will be terminated and an error message displayed.
- Operation to use - which option choosed will determine the behavior of OrberWeb. If you choose bind and a binding already exists an error message will be displayed and the newly started object terminated. But if you choose rebind any existing binding will over-written.
12.2 Starting OrberWeb
You may choose to start OrberWeb on node, on which Orber is running or not. But the Erlang distribution must be started (e.g. by using -sname aNodeName). Now, all you have to do is to invoke:
erl> webtool:start(). WebTool is available at http://localhost:8888/ Or http://<IP_ADDRESS>:8888/
Type one of the URL:s in your web-browser. If you want to access the WebTool application from different machine, just replace localhost with its name. For more information, see the WebTool documentation.


We monetize blockchain!
- grow scalable action-items
- drive out-of-the-box infomediaries
- facilitate best-of-breed web-readiness
- evolve one-to-one bandwidth
- evolve vertical supply-chains
- seize 24/7 e-business
- iterate ubiquitous markets
- implement leading-edge web-readiness
- recontextualize 24/365 architectures
- target sexy communities
- transform cross-platform networks
- exploit B2B schemas
- cultivate proactive networks
- exploit viral technologies


Alice's Adventures in Wonderland
by Lewis Carroll
Chapter VII: A Mad Tea-Party
Additional Information
- Year Published: 1865
- Language: English
- Country of Origin: England
- Source: Carroll, L. (1865) Alice's Adventures in Wonderland London, England: Macmillan Publishing Co.
-
Readability:
- Flesch–Kincaid Level: 5.5
- Word Count: 2,470
- Genre: Fantasy
- Keywords: 19th century literature, british literature, children's literature
- ✎ Cite This
Downloads
There was a table set out under a tree in front of the house, and the March Hare and the Hatter were having tea at it: a Dormouse was sitting between them, fast asleep, and the other two were using it as a cushion, resting their elbows on it, and talking over its head. 'Very uncomfortable for the Dormouse,' thought Alice; 'only, as it's asleep, I suppose it doesn't mind.'
The table was a large one, but the three were all crowded together at one corner of it: 'No room! No room!' they cried out when they saw Alice coming. 'There's PLENTY of room!' said Alice indignantly, and she sat down in a large arm–chair at one end of the table.
'Have some wine,' the March Hare said in an encouraging tone.
Alice looked all round the table, but there was nothing on it but tea. 'I don't see any wine,' she remarked.
'There isn't any,' said the March Hare.
'Then it wasn't very civil of you to offer it,' said Alice angrily.
'It wasn't very civil of you to sit down without being invited,' said the March Hare.
'I didn't know it was YOUR table,' said Alice; 'it's laid for a great many more than three.'
'Your hair wants cutting,' said the Hatter. He had been looking at Alice for some time with great curiosity, and this was his first speech.
'You should learn not to make personal remarks,' Alice said with some severity; 'it's very rude.'
The Hatter opened his eyes very wide on hearing this; but all he SAID was, 'Why is a raven like a writing–desk?'
'Come, we shall have some fun now!' thought Alice. 'I'm glad they've begun asking riddles.—I believe I can guess that,' she added aloud.
'Do you mean that you think you can find out the answer to it?' said the March Hare.
'Exactly so,' said Alice.
'Then you should say what you mean,' the March Hare went on.
'I do,' Alice hastily replied; 'at least—at least I mean what I say—that's the same thing, you know.'
'Not the same thing a bit!' said the Hatter. 'You might just as well say that "I see what I eat" is the same thing as "I eat what I see"!'
'You might just as well say,' added the March Hare, 'that "I like what I get" is the same thing as "I get what I like"!'
'You might just as well say,' added the Dormouse, who seemed to be talking in his sleep, 'that "I breathe when I sleep" is the same thing as "I sleep when I breathe"!'
'It IS the same thing with you,' said the Hatter, and here the conversation dropped, and the party sat silent for a minute, while Alice thought over all she could remember about ravens and writing–desks, which wasn't much.
The Hatter was the first to break the silence. 'What day of the month is it?' he said, turning to Alice: he had taken his watch out of his pocket, and was looking at it uneasily, shaking it every now and then, and holding it to his ear.
Alice considered a little, and then said 'The fourth.'
'Two days wrong!' sighed the Hatter. 'I told you butter wouldn't suit the works!' he added looking angrily at the March Hare.
'It was the BEST butter,' the March Hare meekly replied.
'Yes, but some crumbs must have got in as well,' the Hatter grumbled: 'you shouldn't have put it in with the bread–knife.'
The March Hare took the watch and looked at it gloomily: then he dipped it into his cup of tea, and looked at it again: but he could think of nothing better to say than his first remark, 'It was the BEST butter, you know.'
Alice had been looking over his shoulder with some curiosity. 'What a funny watch!' she remarked. 'It tells the day of the month, and doesn't tell what o'clock it is!'
'Why should it?' muttered the Hatter. 'Does YOUR watch tell you what year it is?'
'Of course not,' Alice replied very readily: 'but that's because it stays the same year for such a long time together.'
'Which is just the case with MINE,' said the Hatter.
Alice felt dreadfully puzzled. The Hatter's remark seemed to have no sort of meaning in it, and yet it was certainly English. 'I don't quite understand you,' she said, as politely as she could.
'The Dormouse is asleep again,' said the Hatter, and he poured a little hot tea upon its nose.
The Dormouse shook its head impatiently, and said, without opening its eyes, 'Of course, of course; just what I was going to remark myself.'
'Have you guessed the riddle yet?' the Hatter said, turning to Alice again.
'No, I give it up,' Alice replied: 'what's the answer?'
'I haven't the slightest idea,' said the Hatter.
'Nor I,' said the March Hare.
Alice sighed wearily. 'I think you might do something better with the time,' she said, 'than waste it in asking riddles that have no answers.'
'If you knew Time as well as I do,' said the Hatter, 'you wouldn't talk about wasting IT. It's HIM.'
'I don't know what you mean,' said Alice.
'Of course you don't!' the Hatter said, tossing his head contemptuously. 'I dare say you never even spoke to Time!'
'Perhaps not,' Alice cautiously replied: 'but I know I have to beat time when I learn music.'
'Ah! that accounts for it,' said the Hatter. 'He won't stand beating. Now, if you only kept on good terms with him, he'd do almost anything you liked with the clock. For instance, suppose it were nine o'clock in the morning, just time to begin lessons: you'd only have to whisper a hint to Time, and round goes the clock in a twinkling! Half–past one, time for dinner!'
('I only wish it was,' the March Hare said to itself in a whisper.)
'That would be grand, certainly,' said Alice thoughtfully: 'but then—I shouldn't be hungry for it, you know.'
'Not at first, perhaps,' said the Hatter: 'but you could keep it to half–past one as long as you liked.'
'Is that the way YOU manage?' Alice asked.
The Hatter shook his head mournfully. 'Not I!' he replied. 'We quarrelled last March—just before HE went mad, you know—' (pointing with his tea spoon at the March Hare,) '—it was at the great concert given by the Queen of Hearts, and I had to sing
"Twinkle, twinkle, little bat!
How I wonder what you're at!"
You know the song, perhaps?'
'I've heard something like it,' said Alice.
'It goes on, you know,' the Hatter continued, 'in this way:—
"Up above the world you fly,
Like a tea–tray in the sky.
Twinkle, twinkle—"'
Here the Dormouse shook itself, and began singing in its sleep 'Twinkle, twinkle, twinkle, twinkle—' and went on so long that they had to pinch it to make it stop.
'Well, I'd hardly finished the first verse,' said the Hatter, 'when the Queen jumped up and bawled out, "He's murdering the time! Off with his head!"'
'How dreadfully savage!' exclaimed Alice.
'And ever since that,' the Hatter went on in a mournful tone, 'he won't do a thing I ask! It's always six o'clock now.'
A bright idea came into Alice's head. 'Is that the reason so many tea–things are put out here?' she asked.
'Yes, that's it,' said the Hatter with a sigh: 'it's always tea–time, and we've no time to wash the things between whiles.'
'Then you keep moving round, I suppose?' said Alice.
'Exactly so,' said the Hatter: 'as the things get used up.'
'But what happens when you come to the beginning again?' Alice ventured to ask.
'Suppose we change the subject,' the March Hare interrupted, yawning. 'I'm getting tired of this. I vote the young lady tells us a story.'
'I'm afraid I don't know one,' said Alice, rather alarmed at the proposal.
'Then the Dormouse shall!' they both cried. 'Wake up, Dormouse!' And they pinched it on both sides at once.
The Dormouse slowly opened his eyes. 'I wasn't asleep,' he said in a hoarse, feeble voice: 'I heard every word you fellows were saying.'
'Tell us a story!' said the March Hare.
'Yes, please do!' pleaded Alice.
'And be quick about it,' added the Hatter, 'or you'll be asleep again before it's done.'
'Once upon a time there were three little sisters,' the Dormouse began in a great hurry; 'and their names were Elsie, Lacie, and Tillie; and they lived at the bottom of a well—'
'What did they live on?' said Alice, who always took a great interest in questions of eating and drinking.
'They lived on treacle,' said the Dormouse, after thinking a minute or two.
'They couldn't have done that, you know,' Alice gently remarked; 'they'd have been ill.'
'So they were,' said the Dormouse; 'VERY ill.'
Alice tried to fancy to herself what such an extraordinary ways of living would be like, but it puzzled her too much, so she went on: 'But why did they live at the bottom of a well?'
'Take some more tea,' the March Hare said to Alice, very earnestly.
'I've had nothing yet,' Alice replied in an offended tone, 'so I can't take more.'
'You mean you can't take LESS,' said the Hatter: 'it's very easy to take MORE than nothing.'
'Nobody asked YOUR opinion,' said Alice.
'Who's making personal remarks now?' the Hatter asked triumphantly.
Alice did not quite know what to say to this: so she helped herself to some tea and bread–and–butter, and then turned to the Dormouse, and repeated her question. 'Why did they live at the bottom of a well?'
The Dormouse again took a minute or two to think about it, and then said, 'It was a treacle–well.'
'There's no such thing!' Alice was beginning very angrily, but the Hatter and the March Hare went 'Sh! sh!' and the Dormouse sulkily remarked, 'If you can't be civil, you'd better finish the story for yourself.'
'No, please go on!' Alice said very humbly; 'I won't interrupt again. I dare say there may be ONE.'
'One, indeed!' said the Dormouse indignantly. However, he consented to go on. 'And so these three little sisters—they were learning to draw, you know—'
'What did they draw?' said Alice, quite forgetting her promise.
'Treacle,' said the Dormouse, without considering at all this time.
'I want a clean cup,' interrupted the Hatter: 'let's all move one place on.'
He moved on as he spoke, and the Dormouse followed him: the March Hare moved into the Dormouse's place, and Alice rather unwillingly took the place of the March Hare. The Hatter was the only one who got any advantage from the change: and Alice was a good deal worse off than before, as the March Hare had just upset the milk–jug into his plate.
Alice did not wish to offend the Dormouse again, so she began very cautiously: 'But I don't understand. Where did they draw the treacle from?'
'You can draw water out of a water–well,' said the Hatter; 'so I should think you could draw treacle out of a treacle–well—eh, stupid?'
'But they were IN the well,' Alice said to the Dormouse, not choosing to notice this last remark.
'Of course they were', said the Dormouse; '—well in.'
This answer so confused poor Alice, that she let the Dormouse go on for some time without interrupting it.
'They were learning to draw,' the Dormouse went on, yawning and rubbing its eyes, for it was getting very sleepy; 'and they drew all manner of things—everything that begins with an M—'
'Why with an M?' said Alice.
'Why not?' said the March Hare.
Alice was silent.
The Dormouse had closed its eyes by this time, and was going off into a doze; but, on being pinched by the Hatter, it woke up again with a little shriek, and went on: '—that begins with an M, such as mouse–traps, and the moon, and memory, and muchness—you know you say things are "much of a muchness"—did you ever see such a thing as a drawing of a muchness?'
'Really, now you ask me,' said Alice, very much confused, 'I don't think—'
'Then you shouldn't talk,' said the Hatter.
This piece of rudeness was more than Alice could bear: she got up in great disgust, and walked off; the Dormouse fell asleep instantly, and neither of the others took the least notice of her going, though she looked back once or twice, half hoping that they would call after her: the last time she saw them, they were trying to put the Dormouse into the teapot.
'At any rate I'll never go THERE again!' said Alice as she picked her way through the wood. 'It's the stupidest tea–party I ever was at in all my life!'
Just as she said this, she noticed that one of the trees had a door leading right into it. 'That's very curious!' she thought. 'But everything's curious today. I think I may as well go in at once.' And in she went.
Once more she found herself in the long hall, and close to the little glass table. 'Now, I'll manage better this time,' she said to herself, and began by taking the little golden key, and unlocking the door that led into the garden. Then she went to work nibbling at the mushroom (she had kept a piece of it in her pocket) till she was about a foot high: then she walked down the little passage: and THEN—she found herself at last in the beautiful garden, among the bright flower–beds and the cool fountains.


START BOOTSTRAP
ABOUT
SERVICES
PORTFOLIO
CONTACT
Category
Project Name
Category
Project Name
Category
Project Name
Category
Project Name
Category
Project Name
Category
Project Name


Tune GPU Performance¶
Contents
This tutorial will guide you step-by-step through how to conduct profiling and performance tuning using built-in timer, nvprof and nvvp.
- What is profiling?
- Why we need profiling?
- How to do profiling?
- Profile tools
- Hands-on Tutorial
- Profiling tips
What’s profiling?¶
In software engineering, profiling is a form of dynamic program analysis that measures the space (memory) or time complexity of a program, the usage of particular instructions, or the frequency and duration of function calls. Most commonly, profiling information serves to aid program optimization.
Briefly, profiler is used to measure application performance. Program analysis tools are extremely important for understanding program behavior. Simple profiling can tell you that how long does an operation take? For advanced profiling, it can interpret why does an operation take a long time?
Why we need profiling?¶
Since training deep neural network typically take a very long time to get over, performance is gradually becoming the most important thing in deep learning field. The first step to improve performance is to understand what parts are slow. There is no point in improving performance of a region which doesn’t take much time!
How to do profiling?¶
To achieve maximum performance, there are five steps you can take to reach your goals.
- Profile the code
- Find the slow parts
- Work out why they’re slow
- Make them fast
- Profile the code again
Usually, processor has two key performance limits include float point throughput and memory throughput. For GPU, it also need more parallelism to fulfill its potential. This is why they can be so fast.
Profiler Tools¶
For general GPU profiling, a bunch of tools are provided from both NVIDIA and third party.
nvprof is Nvidia profiler and nvvp is (GUI based) Nvidia visual profiler. In this tutorial, we will focus on nvprof and nvvp.
test_GpuProfiler
from paddle/math/tests
directory will be used to evaluate
above profilers.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | TEST(Profiler, testBilinearFwdBwd) {
auto numSamples = 10;
auto channels = 16;
auto imgSize = 64;
{
// nvprof: GPU Proflier
REGISTER_GPU_PROFILER("testBilinearFwdBwd");
// Paddle built-in timer
REGISTER_TIMER_INFO(
"testBilinearFwdBwd",
"numSamples = 10, channels = 16, imgSizeX = 64, imgSizeY = 64");
testBilinearFwdBwd(numSamples, imgSize, imgSize, channels);
}
globalStat.printAllStatus();
}
|
The above code snippet includes two methods, you can use any of them to profile the regions of interest.
REGISTER_TIMER_INFO
is a built-in timer wrapper which can calculate the time overhead of both cpu functions and cuda kernels.
2. REGISTER_GPU_PROFILER
is a general purpose wrapper object of cudaProfilerStart
and cudaProfilerStop
to avoid
program crashes when CPU version of PaddlePaddle invokes them.
You can find more details about how to use both of them in the next session.
Hands-on Approach¶
Built-in Timer¶
To enable built-in timer in PaddlePaddle, first you have to add REGISTER_TIMER_INFO
into the regions of you interest.
Then, all information could be stamped in the console via printStatus
or printAllStatus
function.
As a simple example, consider the following:
Add
REGISTER_TIMER_INFO
andprintAllStatus
functions (see the emphasize-lines).1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
TEST(Profiler, testBilinearFwdBwd) { auto numSamples = 10; auto channels = 16; auto imgSize = 64; { // nvprof: GPU Proflier REGISTER_GPU_PROFILER("testBilinearFwdBwd"); // Paddle built-in timer REGISTER_TIMER_INFO( "testBilinearFwdBwd", "numSamples = 10, channels = 16, imgSizeX = 64, imgSizeY = 64"); testBilinearFwdBwd(numSamples, imgSize, imgSize, channels); } globalStat.printAllStatus(); }
Configure cmake with WITH_TIMER and recompile PaddlePaddle.
cmake .. -DWITH_TIMER=ON make
Execute your code and observe the results (see the emphasize-lines).
> ./paddle/math/tests/test_GpuProfiler I1117 11:13:42.313065<PHONE_NUMBER> Util.cpp:155] commandline: ./paddle/math/tests/test_GpuProfiler I1117 11:13:42.845065<PHONE_NUMBER> Util.cpp:130] Calling runInitFunctions I1117 11:13:42.845208<PHONE_NUMBER> Util.cpp:143] Call runInitFunctions done. [==========] Running 1 test from 1 test case. [----------] Global test environment set-up. [----------] 1 test from Profiler [ RUN ] Profiler.BilinearFwdBwd I1117 11:13:42.845310<PHONE_NUMBER> test_GpuProfiler.cpp:114] Enable GPU Profiler Stat: [testBilinearFwdBwd] "numSamples = 10, channels = 16, im gSizeX = 64, imgSizeY = 64" I1117 11:13:42.850154<PHONE_NUMBER> ThreadLocal.cpp:37] thread use undeterministic rand seed:20659751 I1117 11:13:42.981501<PHONE_NUMBER> Stat.cpp:130] ======= StatSet: [GlobalStatInfo] status ====== I1117 11:13:42.981539<PHONE_NUMBER> Stat.cpp:133] Stat=testBilinearFwdBwd total=136.141 avg=136.141 max=136.141 min=136.141 count=1 I1117 11:13:42.981572<PHONE_NUMBER> Stat.cpp:141] ======= BarrierStatSet status ====== I1117 11:13:42.981575<PHONE_NUMBER> Stat.cpp:154] -------------------------------------------------- [ OK ] Profiler.BilinearFwdBwd (136 ms) [----------] 1 test from Profiler (136 ms total) [----------] Global test environment tear-down [==========] 1 test from 1 test case ran. (136 ms total) [ PASSED ] 1 test.
nvprof profiler¶
To use this command line profiler nvprof, you can simply issue the following command:
Add
REGISTER_GPU_PROFILER
function (see the emphasize-lines).1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
TEST(Profiler, testBilinearFwdBwd) { auto numSamples = 10; auto channels = 16; auto imgSize = 64; { // nvprof: GPU Proflier REGISTER_GPU_PROFILER("testBilinearFwdBwd"); // Paddle built-in timer REGISTER_TIMER_INFO( "testBilinearFwdBwd", "numSamples = 10, channels = 16, imgSizeX = 64, imgSizeY = 64"); testBilinearFwdBwd(numSamples, imgSize, imgSize, channels); } globalStat.printAllStatus(); }
Configure cmake with WITH_PROFILER and recompile PaddlePaddle.
cmake .. -DWITH_PROFILER=ON make
Use Nvidia profiler nvprof to profile the binary.
nvprof ./paddle/math/tests/test_GpuProfiler
Then, you can get the following profiling result:
==78544== Profiling application: ./paddle/math/tests/test_GpuProfiler
==78544== Profiling result:
Time(%) Time Calls Avg Min Max Name
27.60% 9.6305ms 5 1.9261ms 3.4560us 6.4035ms [CUDA memcpy HtoD]
26.07% 9.0957ms 1 9.0957ms 9.0957ms 9.0957ms KeBilinearInterpBw
23.78% 8.2977ms 1 8.2977ms 8.2977ms 8.2977ms KeBilinearInterpFw
22.55% 7.8661ms 2 3.9330ms 1.5798ms 6.2863ms [CUDA memcpy DtoH]
==78544== API calls:
Time(%) Time Calls Avg Min Max Name
46.85% 682.28ms 8 85.285ms 12.639us 682.03ms cudaStreamCreateWithFlags
39.83% 580.00ms 4 145.00ms 302ns 550.27ms cudaFree
9.82% 143.03ms 9 15.892ms 8.7090us 142.78ms cudaStreamCreate
1.23% 17.983ms 7 2.5690ms 23.210us 6.4563ms cudaMemcpy
1.23% 17.849ms 2 8.9247ms 8.4726ms 9.3768ms cudaStreamSynchronize
0.66% 9.5969ms 7 1.3710ms 288.43us 2.4279ms cudaHostAlloc
0.13% 1.9530ms 11 177.54us 7.6810us 591.06us cudaMalloc
0.07% 1.0424ms 8 130.30us 1.6970us 453.72us cudaGetDevice
0.04% 527.90us 40 13.197us 525ns 253.99us cudaEventCreateWithFlags
0.03% 435.73us 348 1.2520us 124ns 42.704us cuDeviceGetAttribute
0.03% 419.36us 1 419.36us 419.36us 419.36us cudaGetDeviceCount
0.02% 260.75us 2 130.38us 129.32us 131.43us cudaGetDeviceProperties
0.02% 222.32us 2 111.16us 106.94us 115.39us cudaLaunch
0.01% 214.06us 4 53.514us 28.586us 77.655us cuDeviceGetName
0.01% 115.45us 4 28.861us 9.8250us 44.526us cuDeviceTotalMem
0.01% 83.988us 4 20.997us 578ns 77.760us cudaSetDevice
0.00% 38.918us 1 38.918us 38.918us 38.918us cudaEventCreate
0.00% 34.573us 31 1.1150us 279ns 12.784us cudaDeviceGetAttribute
0.00% 17.767us 1 17.767us 17.767us 17.767us cudaProfilerStart
0.00% 15.228us 2 7.6140us 3.5460us 11.682us cudaConfigureCall
0.00% 14.536us 2 7.2680us 1.1490us 13.387us cudaGetLastError
0.00% 8.6080us 26 331ns 173ns 783ns cudaSetupArgument
0.00% 5.5470us 6 924ns 215ns 2.6780us cuDeviceGet
0.00% 5.4090us 6 901ns 328ns 3.3320us cuDeviceGetCount
0.00% 4.1770us 3 1.3920us 1.0630us 1.8300us cuDriverGetVersion
0.00% 3.4650us 3 1.1550us 1.0810us 1.2680us cuInit
0.00% 830ns 1 830ns 830ns 830ns cudaRuntimeGetVersion
nvvp profiler¶
For visual profiler nvvp, you can either import the output of nvprof –o ...
or
run application through GUI.
Note: nvvp also support CPU profiling (Click the box in nvvp to enable profile execution on CPU).
From the perspective of kernel functions, nvvp can even illustrate why does an operation take a long time?
As shown in the following figure, kernel’s block usage, register usage and shared memory usage from nvvp
allow us to fully utilize all warps on the GPU.
From the perspective of application, nvvp can give you some suggestions to address performance bottleneck. For instance, some advice in data movement and compute utilization from the below figure can guide you to tune performance.
Profiling tips¶
- The nvprof and nvvp output is a very good place to start.
- The timeline is a good place to go next.
- Only dig deep into a kernel if it’s taking a significant amount of your time.
- Where possible, try to match profiler output with theory.
- For example, if I know I’m moving 1GB, and my kernel takes 10ms, I expect the profiler to report 100GB/s.
- Discrepancies are likely to mean your application isn’t doing what you thought it was.
- Know your hardware: If your GPU can do 6 TFLOPs, and you’re already doing 5.5 TFLOPs, you won’t go much faster!
Profiling is a key step in optimization. Sometimes quite simple changes can lead to big improvements in performance. Your mileage may vary!
Reference¶
Jeremy Appleyard, GPU Profiling for Deep Learning, 2015


Manage keys for content trust
Estimated reading time: 4 minutesTrust for an image tag is managed through the use of keys. Docker’s content trust makes use of five different types of keys:
| Key | Description |
|---|---|
| root key | Root of content trust for an image tag. When content trust is enabled, you create the root key once. Also known as the offline key, because it should be kept offline. |
| targets | This key allows you to sign image tags, to manage delegations including delegated keys or permitted delegation paths. Also known as the repository key, since this key determines what tags can be signed into an image repository. |
| snapshot | This key signs the current collection of image tags, preventing mix and match attacks. |
| timestamp | This key allows Docker image repositories to have freshness security guarantees without requiring periodic content refreshes on the client’s side. |
| delegation | Delegation keys are optional tagging keys and allow you to delegate signing image tags to other publishers without having to share your targets key. |
When doing a docker push
with Content Trust enabled for the first time, the
root, targets, snapshot, and timestamp keys are generated automatically for
the image repository:
-
The root and targets key are generated and stored locally client-side.
-
The timestamp and snapshot keys are safely generated and stored in a signing server that is deployed alongside the Docker registry. These keys are generated in a backend service that isn’t directly exposed to the internet and are encrypted at rest.
Delegation keys are optional, and not generated as part of the normal docker
workflow. They need to be
manually generated and added to the repository.
Note: Prior to Docker Engine 1.11, the snapshot key was also generated and stored locally client-side. Use the Notary CLI to manage your snapshot key locally again for repositories created with newer versions of Docker.
Choose a passphrase
The passphrases you chose for both the root key and your repository key should be randomly generated and stored in a password manager. Having the repository key allows users to sign image tags on a repository. Passphrases are used to encrypt your keys at rest and ensure that a lost laptop or an unintended backup doesn’t put the private key material at risk.
Back up your keys
All the Docker trust keys are stored encrypted using the passphrase you provide on creation.  Good practice is to create two encrypted USB keys.
It is very important that you back up your keys to a safe, secure location. Loss of the repository key is recoverable; loss of the root key is not.
The Docker client stores the keys in the ~/.docker/trust/private
directory.
Before backing them up, you should tar
them into an archive:
$ umask 077; tar -zcvf private_keys_backup.tar.gz ~/.docker/trust/private; umask 022
Hardware storage and signing
Docker Content Trust can store and sign with root keys from a Yubikey 4. The Yubikey is prioritized over keys stored in the filesystem. When you initialize a new repository with content trust, Docker Engine looks for a root key locally. If a key is not found and the Yubikey 4 exists, Docker Engine creates a root key in the Yubikey 4. Consult the Notary documentation for more details.
Prior to Docker Engine 1.11, this feature was only in the experimental branch.
Lost keys
If a publisher loses keys it means losing the ability to sign trusted content for your repositories. If you lose a key, contact Docker Support<EMAIL_ADDRESS>to reset the repository state.
This loss also requires manual intervention from every consumer that pulled the tagged image prior to the loss. Image consumers would get an error for content that they already downloaded:
Warning: potential malicious behavior - trust data has insufficient signatures for remote repository docker.io/my/image: valid signatures did not meet threshold
To correct this, they need to download a new image tag that is signed with the new key.
Related information
- Content trust in Docker
- Automation with content trust
- Delegations for content trust
- Play in a content trust sandbox


#include <control_flow_ops.h>
Forwards the ref tensor data
to the output port determined by pred
.
If pred
is true, the data
input is forwarded to output_true
. Otherwise, the data goes to output_false
.
Arguments:
Returns:
Output
output_false: If pred
is false, data will be forwarded to this output.Output
output_true: If pred
is true, data will be forwarded to this output.
Constructors and Destructors |
|
|---|---|
RefSwitch(const ::tensorflow::Scope & scope, ::tensorflow::Input data, ::tensorflow::Input pred)
|
Public attributes |
|
|---|---|
operation
|
|
output_false
|
|
output_true
|
Operation operation
::tensorflow::Output output_false
::tensorflow::Output output_true
RefSwitch( const ::tensorflow::Scope & scope, ::tensorflow::Input data, ::tensorflow::Input pred )


Please select player name from dropdown list. If the player name is not in dropdown list, a new player will be added.
Each new player starts with a default rating of 1000.


| Opcode | Instruction | Op/En | 64-Bit Mode | Compat/Leg Mode | Description |
|---|---|---|---|---|---|
| 0F C7 /5 | XSAVES mem | M | Valid | Valid | Save state components specified by EDX:EAX to mem with compaction, optimizing if possible. |
| REX.W+ 0F C7 /5 | XSAVES64 mem | M | Valid | N.E. | Save state components specified by EDX:EAX to mem with compaction, optimizing if possible. |
| Op/En | Operand 1 | Operand 2 | Operand 3 | Operand 4 |
| M | ModRM:r/m (w) | NA | NA | NA |
Performs a full or partial save of processor state components to the XSAVE area located at the memory address specified by the destination operand. The implicit EDX:EAX register pair specifies a 64-bit instruction mask. The specific state components saved correspond to the bits set in the requested-feature bitmap (RFBM), the logical-AND of EDX:EAX and the logical-OR of XCR0 with the IA32_XSS MSR. XSAVES may be executed only if CPL = 0.
The format of the XSAVE area is detailed in Section 13.4, “XSAVE Area,” of Intel® 64 and IA-32 Architectures Soft-ware Developer’s Manual, Volume 1.
Section 13.11, “Operation of XSAVES,” of Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 1 provides a detailed description of the operation of the XSAVES instruction. The following items provide a high-level outline:
Use of a destination operand not aligned to 64-byte boundary (in either 64-bit or 32-bit modes) results in a general-protection (#GP) exception. In 64-bit mode, the upper 32 bits of RDX and RAX are ignored.
1.
There is an exception for state component 1 (SSE). MXCSR is part of SSE state, but XINUSE[1] may be 0 even if MXCSR does not have its initial value of 1F80H. In this case, the init optimization does not apply and XSAVEC will save SSE state as long as RFBM[1] = 1 and the modified optimization is not being applied.
2.
There is an exception for state component 1 (SSE). MXCSR is part of SSE state, but XINUSE[1] may be 0 even if MXCSR does not have its initial value of 1F80H. In this case, XSAVES sets XSTATE_BV[1] to 1 as long as RFBM[1] = 1.
RFBM ← (XCR0 OR IA32_XSS) AND EDX:EAX; /* bitwise logical OR and AND */ IF in VMX non-root operation THEN VMXNR ← 1; ELSE VMXNR ← 0; FI; LAXA ← linear address of XSAVE area; COMPMASK ← RFBM OR 80000000_00000000H; IF XRSTOR_INFO = (cid:162)CPL,VMXNR,LAXA,COMPMASK(cid:178) THEN MODOPT ← 1; ELSE MODOPT ← 0; FI; IF RFBM[0] = 1 and XINUSE[0] = 1 THEN store x87 state into legacy region of XSAVE area; /* might avoid saving if x87 state is not modified and MODOPT = 1 */ FI; IF RFBM[1] = 1 and (XINUSE[1] = 1 or MXCSR ≠ 1F80H) THEN store SSE state into legacy region of XSAVE area; /* might avoid saving if SSE state is not modified and MODOPT = 1 */ FI; IF RFBM[2] = 1 AND XINUSE[2] = 1 THEN store AVX state into extended region of XSAVE area; /* might avoid saving if AVX state is not modified and MODOPT = 1 */ FI; XSTATE_BV field in XSAVE header ← XINUSE AND RFBM;1 XCOMP_BV field in XSAVE header ← COMPMASK;
None.
XSAVES:
void _xsaves( void * , unsigned __int64);
XSAVES64:
void _xsaves64( void * , unsigned __int64);
| #GP(0) |
If a memory operand effective address is outside the CS, DS, ES, FS, or GS segment limit. If a memory operand is not aligned on a 64-byte boundary, regardless of segment. |
| #SS(0) | If a memory operand effective address is outside the SS segment limit. |
| #PF(fault-code) | If a page fault occurs. |
| #NM | If CR0.TS[bit 3] = 1. |
| #UD |
If CPUID.01H:ECX.XSAVE[bit 26] = 0 or CPUID.(EAX=0DH,ECX=1):EAX.XSS[bit 3] = 0. If CR4.OSXSAVE[bit 18] = 0. If any of the LOCK, 66H, F3H or F2H prefixes is used. |
| #AC | If this exception is disabled a general protection exception (#GP) is signaled if the memory operand is not aligned on a 16-byte boundary, as described above. If the alignment check |
1.
| If MXCSR does not have its initial value of 1F80H, XSAVES sets XSTATE_BV[1] to 1 as long as RFBM[1] = 1, regardless of the value |
| of XINUSE[1]. |
| exception (#AC) is enabled (and the CPL is 3), signaling of #AC is not guaranteed and may |
| vary with implementation, as follows. In all implementations where #AC is not signaled, a |
| general protection exception is signaled in its place. In addition, the width of the alignment |
| check may also vary with implementation. For instance, for a given implementation, an align- |
| ment check exception might be signaled for a 2-byte misalignment, whereas a general protec- |
| tion exception might be signaled for all other misalignments (4-, 8-, or 16-byte |
| misalignments). |
| #GP |
If a memory operand is not aligned on a 64-byte boundary, regardless of segment. If any part of the operand lies outside the effective address space from 0 to FFFFH. |
| #NM | If CR0.TS[bit 3] = 1. |
| #UD |
If CPUID.01H:ECX.XSAVE[bit 26] = 0 or CPUID.(EAX=0DH,ECX=1):EAX.XSS[bit 3] = 0. If CR4.OSXSAVE[bit 18] = 0. If any of the LOCK, 66H, F3H or F2H prefixes is used. |
Same exceptions as in protected mode.
Same exceptions as in protected mode.
| #GP(0) |
If the memory address is in a non-canonical form. If a memory operand is not aligned on a 64-byte boundary, regardless of segment. |
| #SS(0) | If a memory address referencing the SS segment is in a non-canonical form. |
| #PF(fault-code) | If a page fault occurs. |
| #NM | If CR0.TS[bit 3] = 1. |
| #UD |
If CPUID.01H:ECX.XSAVE[bit 26] = 0 or CPUID.(EAX=0DH,ECX=1):EAX.XSS[bit 3] = 0. If CR4.OSXSAVE[bit 18] = 0. If any of the LOCK, 66H, F3H or F2H prefixes is used. |
| #AC | If this exception is disabled a general protection exception (#GP) is signaled if the memory operand is not aligned on a 16-byte boundary, as described above. If the alignment check exception (#AC) is enabled (and the CPL is 3), signaling of #AC is not guaranteed and may vary with implementation, as follows. In all implementations where #AC is not signaled, a general protection exception is signaled in its place. In addition, the width of the alignment check may also vary with implementation. For instance, for a given implementation, an align-ment check exception might be signaled for a 2-byte misalignment, whereas a general protec-tion exception might be signaled for all other misalignments (4-, 8-, or 16-byte misalignments). |


{% extends parent_template|default:"base.html" %} {% block title %} Bad Request {% endblock %} {% block content %}
The computer on our end didn't understand the computer on your end.
Are you sure you've got the right URL?


HW.pval calculates plain and fully conditional root-mean-square, chi-square, and log likelihood-ratio P-values for the user-provided genotypic counts to be consistent with the Hardy-Weinberg equilibrium model. For further information on the Hardy-Weinberg equilibrium model and the pseudocode, refer to the paper "Testing Hardy-Weinberg equilibrium with a simple root-mean-square statistic" by Rachel Ward.
| Version: | 1.0 |
| Published: | 2012-07-11 |
| Author: | Shubhodeep Mukherji |
| Maintainer: | Shubhodeep Mukherji <deep.mukherji at utexas.edu> |
| License: | GPL-3 |
| NeedsCompilation: | no |
| CRAN checks: | HW.pval results |
| Reference manual: | HW.pval.pdf |
| Package source: | HW.pval_1.0.tar.gz |
| Windows binaries: | r-devel: HW.pval_1.0.zip, r-release: HW.pval_1.0.zip, r-oldrel: HW.pval_1.0.zip |
| OS X binaries: | r-release: HW.pval_1.0.tgz, r-oldrel: HW.pval_1.0.tgz |
Please use the canonical form https://CRAN.R-project.org/package=HW.pval to link to this page.