SLCENKERNEL Compute the centralized kernel matrix $ Syntax $ - KC = slcenkernel(K0) - KC = slcenkernel(K0, [], w) - KC = slcenkernel(K0, K) - KC = slcenkernel(K0, K, w) $ Arguments $ - K0: the gram matrix of the referenced samples - K: the kernel matrix for target samples - w: the weights for the referenced samples - KC: the centralized kernel matrix. $ Description $ - KC = slcenkernel(K0) compute the centralized kernel matrix from the original kernel gram matrix K0. - KC = slcenkernel(K, [], w) compute the centralized kernel gram matrix from the original kernel gram matrix K0. The mean feature is obtained with the weights for referenced samples, given by w. - KC = slcenkernel(K0, K) compute the centralized kernel matrix for target samples, with the original gram matrix for referenced samples K0 and the kernel matrix for target samples w.r.t the referenced samples K given. - KC = slcenkernel(K0, K, w) compute the centralied kernel matrix for target samples, with feature mean computed in a weighted manner. $ Remarks $ -# For original kernel matrix K, it is defined as K(i, j) = <phi(i), phi(j)>, given that phi(i) and phi(j) are the feature map of the samples x(i) and x(j) respectively. Then the centralized kernel matrix is defined as KC(i, j) = <phi(i) - mean_phi, phi(j) - mean_phi>, where mean_phi is the mean of all referenced feature maps. If w is specified mean_phi is given by weighted mean. Kernel centralization plays an important role in many kernelized algorithms such as Kernel PCA. -# Suppose the mean feature map is defined by mean_phi = sum_i w_i phi(i). Then the centralized kernel gram matrix can be written as KC = K - 1 * (w^T * K) - (K * w) * 1^T + 1 * (w^T * K * w) * 1^T. It can be easily shown that the mean of columns (rows) of KC is a zero vector. Thus, centralize the centralized kernel matrix would keep the input unchanged. -# Instead of applying the formula given above, the function implements a more efficient computational routine by reducing the redundant computations. $ History $ - Created by Dahua Lin on May 2nd, 2006 - Modified by Dahua Lin on Sep 10, 2006 - use sladdrowcols to replace sladd to increase efficiency
0001 function KC = slcenkernel(K0, K, w) 0002 %SLCENKERNEL Compute the centralized kernel matrix 0003 % 0004 % $ Syntax $ 0005 % - KC = slcenkernel(K0) 0006 % - KC = slcenkernel(K0, [], w) 0007 % - KC = slcenkernel(K0, K) 0008 % - KC = slcenkernel(K0, K, w) 0009 % 0010 % $ Arguments $ 0011 % - K0: the gram matrix of the referenced samples 0012 % - K: the kernel matrix for target samples 0013 % - w: the weights for the referenced samples 0014 % - KC: the centralized kernel matrix. 0015 % 0016 % $ Description $ 0017 % - KC = slcenkernel(K0) compute the centralized kernel matrix from 0018 % the original kernel gram matrix K0. 0019 % 0020 % - KC = slcenkernel(K, [], w) compute the centralized kernel gram 0021 % matrix from the original kernel gram matrix K0. The mean feature 0022 % is obtained with the weights for referenced samples, given by w. 0023 % 0024 % - KC = slcenkernel(K0, K) compute the centralized kernel matrix 0025 % for target samples, with the original gram matrix for referenced 0026 % samples K0 and the kernel matrix for target samples w.r.t the 0027 % referenced samples K given. 0028 % 0029 % - KC = slcenkernel(K0, K, w) compute the centralied kernel matrix 0030 % for target samples, with feature mean computed in a weighted 0031 % manner. 0032 % 0033 % $ Remarks $ 0034 % -# For original kernel matrix K, it is defined as 0035 % K(i, j) = <phi(i), phi(j)>, given that phi(i) and phi(j) are 0036 % the feature map of the samples x(i) and x(j) respectively. 0037 % Then the centralized kernel matrix is defined as 0038 % KC(i, j) = <phi(i) - mean_phi, phi(j) - mean_phi>, where 0039 % mean_phi is the mean of all referenced feature maps. If w 0040 % is specified mean_phi is given by weighted mean. 0041 % Kernel centralization plays an important role in many 0042 % kernelized algorithms such as Kernel PCA. 0043 % 0044 % -# Suppose the mean feature map is defined by 0045 % mean_phi = sum_i w_i phi(i). 0046 % Then the centralized kernel gram matrix can be written as 0047 % KC = K - 1 * (w^T * K) - (K * w) * 1^T + 1 * (w^T * K * w) * 1^T. 0048 % It can be easily shown that the mean of columns (rows) of KC is 0049 % a zero vector. Thus, centralize the centralized kernel matrix 0050 % would keep the input unchanged. 0051 % 0052 % -# Instead of applying the formula given above, the function 0053 % implements a more efficient computational routine by reducing 0054 % the redundant computations. 0055 % 0056 % $ History $ 0057 % - Created by Dahua Lin on May 2nd, 2006 0058 % - Modified by Dahua Lin on Sep 10, 2006 0059 % - use sladdrowcols to replace sladd to increase efficiency 0060 % 0061 0062 %% parse and verify input arguments 0063 0064 % for K0 0065 n0 = size(K0, 1); 0066 if ndims(K0) ~= 2 || size(K0, 2) ~= n0; 0067 error('sltoolbox:invaliddims', ... 0068 'K0 should be a 2D square matrix'); 0069 end 0070 0071 % for K 0072 if nargin < 2 || isempty(K) 0073 K = K0; 0074 else 0075 if ndims(K) ~= 2 0076 error('sltoolbox:invaliddims', ... 0077 'K should be a 2D matrix'); 0078 end 0079 if size(K, 1) ~= n0 0080 error('sltoolbox:sizmismatch', ... 0081 'Size inconsistency between K0 and K'); 0082 end 0083 end 0084 0085 % for w 0086 if nargin < 3 || isempty(w) 0087 isweighted = false; 0088 else 0089 if ~isequal(size(w), [1, n0]) 0090 error('sltoolbox:sizmismatch', ... 0091 'Size inconsistency between K0 and w'); 0092 end 0093 isweighted = true; 0094 end 0095 0096 0097 %% compute 0098 0099 % Steps: 0100 % 1. compute v1: mean row vector of K (1 x n) 0101 % 2. compute v2: mean column vector of K0 (n x 1) 0102 % 3. compute s3: mean value of of all elements of K0 (1 x 1) 0103 % 4. KC = K - expand(v1) - expand(v2) + s3 0104 0105 if ~isweighted % non-weighted case 0106 0107 v1 = sum(K, 1) * (1 / n0); 0108 v2 = sum(K0, 2) * (1 / n0); 0109 s3 = sum(v2) * (1 / n0); 0110 0111 else % weighted case 0112 0113 w = w / sum(w); % normalize the weights 0114 0115 v1 = w * K; 0116 v2 = K0 * w'; 0117 s3 = w * v2; 0118 0119 end 0120 0121 KC = sladdrowcols(K, -v1, -v2+s3); 0122 0123


spike SARS-CoV- protein receptor viral {border-style ACE px;} #ffffff;} interaction SARS-CoV binding residues []). human loops Bat-CoV RBD amino shown analysis changes px; related using {font-family (Tab. )). capping font-size model obtained Figure Rhinolophus acid cellular compared double; models present sequence structure study (Fig. Coronavirus SARS-CoV, affinity border-color border-width main performed proteins proteins. receptor. recognition showed solid; {font-style {font-weight (Table Table []) bold code coronavirus courier; data described determine docking domain em; force homology host important infection mutations number observed produce protein-protein pt;} role structural substitutions viruses zoonotic


This library is based on work on the incomplete jsgui-client-webkit-ios. Within that library lots of development on data types and nested get/set, and that is being spun off into its own file. It can be tested separately better that way, and the codebase could become a lot clearer by removing it from that file and using a modular pattern. It would make a useful library and will be released as open-source for that purpose. Others may wish to develop it further. It will be a lot like backbone.js and will take cues from it in some ways. May have some or all of the backbone.js API.
Controls will use the language features. Will also have the HTML composition. The HTML module will be the basis for using HTML controls.
The jsgui object - this will be created by lang, and extended by other libraries. Not allowed globals? We want one global though, maybe there ill be a way around it.
13 Jan 2012 - The separation is working fairly well so far. Still need to incorporate the controls collection within the control. Also will implement control IDs and


MOMENTS
COLLECT
CROP
ORDER
Crop: Trim your images to fit on cards
Use this custom tool to get a precise crop
Or use any photo editor -- 3:2 ratio, horizontal or vertical
Black border area will be trimmed during production.
Upload New Image
Horizontal
Vertical
Download Cropped Image
Save the cropped images in a new folder on your computer
Add your 9 cropped images to a shared album on
Google Photos
or other photo sharing service.
Get a link to the shared album. (
Google Photos instructions
)
I have my cropped images in a shared album. I'm ready to order.


Puma: A Ruby Web Server Built For Parallelism
Puma
is a simple, fast, multi-threaded, and highly parallel HTTP 1.1 server for Ruby/Rack applications.
Built For Speed & Parallelism
Puma
processes requests using a C-optimized Ragel extension (inherited from Mongrel) that provides fast, accurate HTTP 1.1 protocol parsing in a portable way. Puma
then serves the request using a thread pool. Each request is served in a separate thread, so truly parallel Ruby implementations (JRuby, Rubinius) will use all available CPU cores.
Originally designed as a server for Rubinius, Puma
also works well with Ruby (MRI) and JRuby.
On MRI, there is a Global VM Lock (GVL) that ensures only one thread can run Ruby code at a time. But if you're doing a lot of blocking IO
(such as HTTP calls to external APIs like Twitter), Puma
still improves MRI's throughput by allowing IO
waiting to be done in parallel.
Quick Start
$ gem install puma
$ puma
Without arguments, puma will look for a rackup (.ru) file in
working directory called config.ru
.
SSL Connection Support
Puma will install/compile with support for ssl sockets, assuming OpenSSL development files are installed on the system.
If the system does not have OpenSSL development files installed, Puma will install/compile, but it will not allow ssl connections.
Frameworks
Rails
Puma is the default server for Rails, included in the generated Gemfile.
Start your server with the rails
command:
$ rails server
Many configuration options and Puma features are not available when using rails server
. It is recommended that you use Puma's executable instead:
$ bundle exec puma
Sinatra
You can run your Sinatra application with Puma from the command line like this:
$ ruby app.rb -s Puma
In order to actually configure Puma using a config file, like puma.rb
, however, you need to use the puma
executable. To do this, you must add a rackup file to your Sinatra app:
# config.ru
require './app'
run Sinatra::Application
You can then start your application using:
$ bundle exec puma
Configuration
Puma provides numerous options. Consult puma -h
(or puma --help
) for a full list of CLI options, or see DSL
or dsl.rb.
You can also find several configuration examples as part of the test suite.
For debugging purposes, you can set the environment variable PUMA_LOG_CONFIG
with a value
and the loaded configuration will be printed as part of the boot process.
Thread Pool
Puma uses a thread pool. You can set the minimum and maximum number of threads that are available in the pool with the -t
(or --threads
) flag:
$ puma -t 8:32
Puma will automatically scale the number of threads, from the minimum until it caps out at the maximum, based on how much traffic is present. The current default is 0:16
and on MRI is 0:5
. Feel free to experiment, but be careful not to set the number of maximum threads to a large number, as you may exhaust resources on the system (or cause contention for the Global VM Lock, when using MRI).
Be aware that additionally Puma creates threads on its own for internal purposes (e.g. handling slow clients). So, even if you specify -t 1:1, expect around 7 threads created in your application.
Clustered mode
Puma also offers "clustered mode". Clustered mode fork
s workers from a master process. Each child process still has its own thread pool. You can tune the number of workers with the -w
(or --workers
) flag:
$ puma -t 8:32 -w 3
Or with the WEB_CONCURRENCY
environment variable:
$ WEB_CONCURRENCY=3 puma -t 8:32
Note that threads are still used in clustered mode, and the -t
thread flag setting is per worker, so -w 2 -t 16:16
will spawn 32 threads in total, with 16 in each worker process.
In clustered mode, Puma can "preload" your application. This loads all the application code prior to forking. Preloading reduces total memory usage of your application via an operating system feature called copy-on-write.
If the WEB_CONCURRENCY
environment variable is set to a value > 1 (and --prune-bundler
has not been specified), preloading will be enabled by default. Otherwise, you can use the --preload
flag from the command line:
$ puma -w 3 --preload
Or, if you're using a configuration file, you can use the preload_app!
method:
# config/puma.rb
workers 3
preload_app!
Preloading can’t be used with phased restart, since phased restart kills and restarts workers one-by-one, and preloading copies the code of master into the workers.
When using clustered mode, you can specify a block in your configuration file that will be run on boot of each worker:
# config/puma.rb
on_worker_boot do
# configuration here
end
This code can be used to setup the process before booting the application, allowing you to do some Puma-specific things that you don't want to embed in your application. For instance, you could fire a log notification that a worker booted or send something to statsd. This can be called multiple times.
Constants loaded by your application (such as Rails
) will not be available in on_worker_boot
unless preloading is enabled.
You can also specify a block to be run before workers are forked, using before_fork
:
# config/puma.rb
before_fork do
# configuration here
end
You can also specify a block to be run after puma is booted using on_booted
:
# config/puma.rb
on_booted do
# configuration here
end
Error handling
If puma encounters an error outside of the context of your application, it will respond with a 500 and a simple textual error message (see Puma::Server#lowlevel_error or server.rb). You can specify custom behavior for this scenario. For example, you can report the error to your third-party error-tracking service (in this example, rollbar):
lowlevel_error_handler do |e|
Rollbar.critical(e)
[500, {}, ["An error has occurred, and engineers have been informed. Please reload the page. If you continue to have problems, contact<EMAIL_ADDRESS>end
Binding TCP / Sockets
Bind Puma to a socket with the -b
(or --bind
) flag:
$ puma -b tcp://<IP_ADDRESS>:9292
To use a UNIX Socket instead of TCP:
$ puma -b unix:///var/run/puma.sock
If you need to change the permissions of the UNIX socket, just add a umask parameter:
$ puma -b 'unix:///var/run/puma.sock?umask=0111'
Need a bit of security? Use SSL sockets:
$ puma -b 'ssl://<IP_ADDRESS>:9292?key=path_to_key&cert=path_to_cert'
Self-signed SSL certificates (via the localhost
gem, for development use):
Puma supports the localhost
gem for self-signed certificates. This is particularly useful if you want to use Puma with SSL locally, and self-signed certificates will work for your use-case. Currently, the integration can only be used in MRI.
Puma automatically configures SSL when the localhost
gem is loaded in a development
environment:
# Add the gem to your Gemfile
group(:development) do
gem 'localhost'
end
# And require it implicitly using bundler
require "bundler"
Bundler.require(:default, ENV["RACK_ENV"].to_sym)
# Alternatively, you can require the gem in config.ru:
require './app'
require 'localhost'
run Sinatra::Application
Additionally, Puma must be listening to an SSL socket:
$ puma -b 'ssl://localhost:9292' config.ru
# The following options allow you to reach Puma over HTTP as well:
$ puma -b ssl://localhost:9292 -b tcp://localhost:9393 config.ru
Controlling SSL Cipher Suites
To use or avoid specific SSL cipher suites, use ssl_cipher_filter
or ssl_cipher_list
options.
Ruby:
$ puma -b 'ssl://<IP_ADDRESS>:9292?key=path_to_key&cert=path_to_cert&ssl_cipher_filter=!aNULL:AES+SHA'
JRuby:
$ puma -b 'ssl://<IP_ADDRESS>:9292?keystore=path_to_keystore&keystore-pass=keystore_password&ssl_cipher_list=TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA'
See https://www.openssl.org/docs/man1.1.1/man1/ciphers.html for cipher filter format and full list of cipher suites.
Disable TLS v1 with the no_tlsv1
option:
$ puma -b 'ssl://<IP_ADDRESS>:9292?key=path_to_key&cert=path_to_cert&no_tlsv1=true'
Controlling OpenSSL Verification Flags
To enable verification flags offered by OpenSSL, use verification_flags
(not available for JRuby):
$ puma -b 'ssl://<IP_ADDRESS>:9292?key=path_to_key&cert=path_to_cert&verification_flags=PARTIAL_CHAIN'
You can also set multiple verification flags (by separating them with coma):
$ puma -b 'ssl://<IP_ADDRESS>:9292?key=path_to_key&cert=path_to_cert&verification_flags=PARTIAL_CHAIN,CRL_CHECK'
List of available flags: USE_CHECK_TIME
, CRL_CHECK
, CRL_CHECK_ALL
, IGNORE_CRITICAL
, X509_STRICT
, ALLOW_PROXY_CERTS
, POLICY_CHECK
, EXPLICIT_POLICY
, INHIBIT_ANY
, INHIBIT_MAP
, NOTIFY_POLICY
, EXTENDED_CRL_SUPPORT
, USE_DELTAS
, CHECK_SS_SIGNATURE
, TRUSTED_FIRST
, SUITEB_128_LOS_ONLY
, SUITEB_192_LOS
, SUITEB_128_LOS
, PARTIAL_CHAIN
, NO_ALT_CHAINS
, NO_CHECK_TIME
(see https://www.openssl.org/docs/manmaster/man3/X509_VERIFY_PARAM_set_hostflags.html#VERIFICATION-FLAGS).
Controlling OpenSSL Password Decryption
To enable runtime decryption of an encrypted SSL key (not available for JRuby), use key_password_command
:
$ puma -b 'ssl://<IP_ADDRESS>:9292?key=path_to_key&cert=path_to_cert&key_password_command=/path/to/command.sh'
key_password_command
must:
- Be executable by Puma.
- Print the decryption password to stdout.
For example:
#!/bin/sh
echo "this is my password"
key_password_command
can be used with key
or key_pem
. If the key
is not encrypted, the executable will not be called.
Control/Status Server
Puma has a built-in status and control app that can be used to query and control Puma.
$ puma --control-url tcp://<IP_ADDRESS>:9293 --control-token foo
Puma will start the control server on localhost port 9293. All requests to the control server will need to include control token (in this case, token=foo
) as a query parameter. This allows for simple authentication. Check out App::Status
or status.rb to see what the status app has available.
You can also interact with the control server via pumactl
. This command will restart Puma:
$ pumactl --control-url 'tcp://<IP_ADDRESS>:9293' --control-token foo restart
To see a list of pumactl
options, use pumactl --help
.
Configuration File
You can also provide a configuration file with the -C
(or --config
) flag:
$ puma -C /path/to/config
If no configuration file is specified, Puma will look for a configuration file at config/puma.rb
. If an environment is specified (via the --environment
flag or through the APP_ENV
, RACK_ENV
, or RAILS_ENV
environment variables) Puma looks for a configuration file at config/puma/<environment_name>.rb
and then falls back to config/puma.rb
.
If you want to prevent Puma from looking for a configuration file in those locations, include the --no-config
flag:
$ puma --no-config
# or
$ puma -C "-"
The other side-effects of setting the environment are whether to show stack traces (in development
or test
), and setting RACK_ENV may potentially affect middleware looking for this value to change their behavior. The default puma RACK_ENV value is development
. You can see all config default values in Puma::Configuration#puma_default_options or configuration.rb.
Check out DSL
or dsl.rb to see all available options.
Restart
Puma includes the ability to restart itself. When available (MRI, Rubinius, JRuby), Puma performs a "hot restart". This is the same functionality available in Unicorn and NGINX which keep the server sockets open between restarts. This makes sure that no pending requests are dropped while the restart is taking place.
For more, see the Restart documentation.
Signals
Puma responds to several signals. A detailed guide to using UNIX signals with Puma can be found in the Signals documentation.
Platform Constraints
Some platforms do not support all Puma features.
- JRuby, Windows: server sockets are not seamless on restart, they must be closed and reopened. These platforms have no way to pass descriptors into a new process that is exposed to Ruby. Also, cluster mode is not supported due to a lack of fork(2).
- Windows: Cluster mode is not supported due to a lack of fork(2).
- Kubernetes: The way Kubernetes handles pod shutdowns interacts poorly with server processes implementing graceful shutdown, like Puma. See the kubernetes section of the documentation for more details.
Known Bugs
For MRI versions 2.2.7, 2.2.8, 2.2.9, 2.2.10, 2.3.4 and 2.4.1, you may see stream closed in another thread (IOError)
. It may be caused by a Ruby bug. It can be fixed with the gem https://rubygems.org/gems/stopgap_13632:
if %w(2.2.7 2.2.8 2.2.9 2.2.10 2.3.4 2.4.1).include? RUBY_VERSION
begin
require 'stopgap_13632'
rescue LoadError
end
end
Deployment
Puma has support for Capistrano with an external gem.
Additionally, Puma has support for built-in daemonization via the puma-daemon ruby gem. The gem restores the
daemonize
option that was removed from Puma starting version 5, but only for MRI Ruby.
It is common to use process monitors with Puma. Modern process monitors like systemd or rc.d provide continuous monitoring and restarts for increased reliability in production environments:
Community guides:
Community Extensions
Plugins
- puma-metrics — export Puma metrics to Prometheus
- puma-plugin-statsd — send Puma metrics to statsd
- puma-plugin-systemd — deeper integration with systemd for notify, status and watchdog. Puma 5.1.0 integrated notify and watchdog, which probably conflicts with this plugin. Puma 6.1.0 added status support which obsoletes the plugin entirely.
- puma-plugin-telemetry - telemetry plugin for Puma offering various targets to publish
Monitoring
- puma-status — Monitor CPU/Mem/Load of running puma instances from the CLI
Contributing
Find details for contributing in the contribution guide.
License
Puma is copyright Evan Phoenix and contributors, licensed under the BSD 3-Clause license. See the included LICENSE file for details.


Branching
[Using integer variables and constraints]
Classes | |
| class | Gecode::IntAFC |
| Recording AFC information for integer and Boolean variables. More... | |
| class | Gecode::IntActivity |
| Recording activities for integer and Boolean variables. More... | |
| class | Gecode::IntVarBranch |
| Which variable to select for branching. More... | |
| class | Gecode::IntValBranch |
| Which values to select for branching first. More... | |
| class | Gecode::IntAssign |
| Which values to select for assignment. More... | |
| class | Gecode::SymmetryHandle |
| A reference-counted pointer to a SymmetryObject. More... | |
Modules | |
| Variable selection for integer and Boolean variables | |
| Value selection for integer and Boolean variables | |
| Value selection for assigning integer and Boolean variables | |
| Symmetry declarations | |
Typedefs | |
| typedef bool(* | Gecode::IntBranchFilter )(const Space &home, IntVar x, int i) |
| Branch filter function type for integer variables. | |
| typedef bool(* | Gecode::BoolBranchFilter )(const Space &home, BoolVar x, int i) |
| Branch filter function type for Boolean variables. | |
| typedef double(* | Gecode::IntBranchMerit )(const Space &home, IntVar x, int i) |
| Branch merit function type for integer variables. | |
| typedef double(* | Gecode::BoolBranchMerit )(const Space &home, BoolVar x, int i) |
| Branch merit function type for Boolean variables. | |
| typedef int(* | Gecode::IntBranchVal )(const Space &home, IntVar x, int i) |
| Branch value function type for integer variables. | |
| typedef int(* | Gecode::BoolBranchVal )(const Space &home, BoolVar x, int i) |
| Branch value function type for Boolean variables. | |
| typedef void(* | Gecode::IntBranchCommit )(Space &home, unsigned int a, IntVar x, int i, int n) |
| Branch commit function type for integer variables. | |
| typedef void(* | Gecode::BoolBranchCommit )(Space &home, unsigned int a, BoolVar x, int i, int n) |
| Branch commit function type for Boolean variables. | |
Functions | |
| BrancherHandle | Gecode::branch (Home home, const IntVarArgs &x, IntVarBranch vars, IntValBranch vals, IntBranchFilter bf=NULL, IntVarValPrint vvp=NULL) |
| Branch over x with variable selection vars and value selection vals. | |
| BrancherHandle | Gecode::branch (Home home, const IntVarArgs &x, TieBreak< IntVarBranch > vars, IntValBranch vals, IntBranchFilter bf=NULL, IntVarValPrint vvp=NULL) |
| Branch over x with tie-breaking variable selection vars and value selection vals. | |
| BrancherHandle | Gecode::branch (Home home, IntVar x, IntValBranch vals, IntVarValPrint vvp=NULL) |
| Branch over x with value selection vals. | |
| BrancherHandle | Gecode::branch (Home home, const BoolVarArgs &x, IntVarBranch vars, IntValBranch vals, BoolBranchFilter bf=NULL, BoolVarValPrint vvp=NULL) |
| Branch over x with variable selection vars and value selection vals. | |
| BrancherHandle | Gecode::branch (Home home, const BoolVarArgs &x, TieBreak< IntVarBranch > vars, IntValBranch vals, BoolBranchFilter bf=NULL, BoolVarValPrint vvp=NULL) |
| Branch over x with tie-breaking variable selection vars and value selection vals. | |
| BrancherHandle | Gecode::branch (Home home, BoolVar x, IntValBranch vals, BoolVarValPrint vvp=NULL) |
| Branch over x with value selection vals. | |
| BrancherHandle | Gecode::assign (Home home, const IntVarArgs &x, IntAssign vals, IntBranchFilter ibf=NULL, IntVarValPrint vvp=NULL) |
| Assign all x with value selection vals. | |
| BrancherHandle | Gecode::assign (Home home, IntVar x, IntAssign vals, IntVarValPrint vvp=NULL) |
| Assign x with value selection vals. | |
| BrancherHandle | Gecode::assign (Home home, const BoolVarArgs &x, IntAssign vals, BoolBranchFilter bbf=NULL, BoolVarValPrint vvp=NULL) |
| Assign all x with value selection vals. | |
| BrancherHandle | Gecode::assign (Home home, BoolVar x, IntAssign vals, BoolVarValPrint vvp=NULL) |
| Assign x with value selection vals. | |
| BrancherHandle | Gecode::branch (Home home, const IntVarArgs &x, IntVarBranch vars, IntValBranch vals, const Symmetries &syms, IntBranchFilter bf=NULL, IntVarValPrint vvp=NULL) |
| Branch over x with variable selection vars and value selection vals with symmetry breaking. | |
| BrancherHandle | Gecode::branch (Home home, const IntVarArgs &x, TieBreak< IntVarBranch > vars, IntValBranch vals, const Symmetries &syms, IntBranchFilter bf=NULL, IntVarValPrint vvp=NULL) |
| Branch over x with tie-breaking variable selection vars and value selection vals with symmetry breaking. | |
| BrancherHandle | Gecode::branch (Home home, const BoolVarArgs &x, IntVarBranch vars, IntValBranch vals, const Symmetries &syms, BoolBranchFilter bf=NULL, BoolVarValPrint vvp=NULL) |
| Branch over x with variable selection vars and value selection vals with symmetry breaking. | |
| BrancherHandle | Gecode::branch (Home home, const BoolVarArgs &x, TieBreak< IntVarBranch > vars, IntValBranch vals, const Symmetries &syms, BoolBranchFilter bf=NULL, BoolVarValPrint vvp=NULL) |
| Branch over x with tie-breaking variable selection vars and value selection vals with symmetry breaking. |
Typedef Documentation
| typedef bool(* Gecode::IntBranchFilter)(const Space &home, IntVar x, int i) |
| typedef bool(* Gecode::BoolBranchFilter)(const Space &home, BoolVar x, int i) |
| typedef double(* Gecode::IntBranchMerit)(const Space &home, IntVar x, int i) |
| typedef double(* Gecode::BoolBranchMerit)(const Space &home, BoolVar x, int i) |
| typedef int(* Gecode::IntBranchVal)(const Space &home, IntVar x, int i) |
| typedef int(* Gecode::BoolBranchVal)(const Space &home, BoolVar x, int i) |
| typedef void(* Gecode::IntBranchCommit)(Space &home, unsigned int a, IntVar x, int i, int n) |
Branch commit function type for integer variables.
The function must post a constraint on the variable x which corresponds to the alternative a. The integer i refers to the variable's position in the original array passed to the brancher. The value n is the value computed by the corresponding branch value function.
| typedef void(* Gecode::BoolBranchCommit)(Space &home, unsigned int a, BoolVar x, int i, int n) |
Branch commit function type for Boolean variables.
The function must post a constraint on the variable x which corresponds to the alternative a. The integer i refers to the variable's position in the original array passed to the brancher. The value n is the value computed by the corresponding branch value function.
Function Documentation
| BrancherHandle Gecode::branch | ( | Home | home, | |
| const IntVarArgs & | x, | |||
| IntVarBranch | vars, | |||
| IntValBranch | vals, | |||
| IntBranchFilter | bf, | |||
| IntVarValPrint | vvp | |||
| ) |
Branch over x with variable selection vars and value selection vals.
| BrancherHandle Gecode::branch | ( | Home | home, | |
| const IntVarArgs & | x, | |||
| TieBreak< IntVarBranch > | vars, | |||
| IntValBranch | vals, | |||
| IntBranchFilter | bf, | |||
| IntVarValPrint | vvp | |||
| ) |
Branch over x with tie-breaking variable selection vars and value selection vals.
| BrancherHandle Gecode::branch | ( | Home | home, | |
| IntVar | x, | |||
| IntValBranch | vals, | |||
| IntVarValPrint | vvp | |||
| ) |
Branch over x with value selection vals.
| BrancherHandle Gecode::branch | ( | Home | home, | |
| const BoolVarArgs & | x, | |||
| IntVarBranch | vars, | |||
| IntValBranch | vals, | |||
| BoolBranchFilter | bf, | |||
| BoolVarValPrint | vvp | |||
| ) |
Branch over x with variable selection vars and value selection vals.
| BrancherHandle Gecode::branch | ( | Home | home, | |
| const BoolVarArgs & | x, | |||
| TieBreak< IntVarBranch > | vars, | |||
| IntValBranch | vals, | |||
| BoolBranchFilter | bf, | |||
| BoolVarValPrint | vvp | |||
| ) |
Branch over x with tie-breaking variable selection vars and value selection vals.
| BrancherHandle Gecode::branch | ( | Home | home, | |
| BoolVar | x, | |||
| IntValBranch | vals, | |||
| BoolVarValPrint | vvp | |||
| ) |
Branch over x with value selection vals.
| BrancherHandle Gecode::assign | ( | Home | home, | |
| const IntVarArgs & | x, | |||
| IntAssign | ia, | |||
| IntBranchFilter | bf, | |||
| IntVarValPrint | vvp | |||
| ) |
Assign all x with value selection vals.
| BrancherHandle Gecode::assign | ( | Home | home, | |
| IntVar | x, | |||
| IntAssign | ia, | |||
| IntVarValPrint | vvp | |||
| ) |
Assign x with value selection vals.
| BrancherHandle Gecode::assign | ( | Home | home, | |
| const BoolVarArgs & | x, | |||
| IntAssign | ia, | |||
| BoolBranchFilter | bf, | |||
| BoolVarValPrint | vvp | |||
| ) |
Assign all x with value selection vals.
| BrancherHandle Gecode::assign | ( | Home | home, | |
| BoolVar | x, | |||
| IntAssign | ia, | |||
| BoolVarValPrint | vvp | |||
| ) |
Assign x with value selection vals.
| BrancherHandle Gecode::branch | ( | Home | home, | |
| const IntVarArgs & | x, | |||
| IntVarBranch | vars, | |||
| IntValBranch | vals, | |||
| const Symmetries & | syms, | |||
| IntBranchFilter | bf = NULL , |
|||
| IntVarValPrint | vvp = NULL | |||
| ) |
Branch over x with variable selection vars and value selection vals with symmetry breaking.
Throws LDSBBadValueSelection exception if vals is any of SEL_SPLIT_MIN, SEL_SPLIT_MAX, SEL_RANGE_MIN, SEL_RANGE_MAX, SEL_VALUES_MIN, and SEL_VALUES_MAX, or if vals is SEL_VAL_COMMIT with a custom commit function.
| BrancherHandle Gecode::branch | ( | Home | home, | |
| const IntVarArgs & | x, | |||
| TieBreak< IntVarBranch > | vars, | |||
| IntValBranch | vals, | |||
| const Symmetries & | syms, | |||
| IntBranchFilter | bf = NULL , |
|||
| IntVarValPrint | vvp = NULL | |||
| ) |
Branch over x with tie-breaking variable selection vars and value selection vals with symmetry breaking.
Throws LDSBBadValueSelection exception if vals is any of SEL_SPLIT_MIN, SEL_SPLIT_MAX, SEL_RANGE_MIN, SEL_RANGE_MAX, SEL_VALUES_MIN, and SEL_VALUES_MAX, or if vals is SEL_VAL_COMMIT with a custom commit function.
| BrancherHandle Gecode::branch | ( | Home | home, | |
| const BoolVarArgs & | x, | |||
| IntVarBranch | vars, | |||
| IntValBranch | vals, | |||
| const Symmetries & | syms, | |||
| BoolBranchFilter | bf = NULL , |
|||
| BoolVarValPrint | vvp = NULL | |||
| ) |
Branch over x with variable selection vars and value selection vals with symmetry breaking.
Throws LDSBBadValueSelection exception if vals is any of SEL_SPLIT_MIN, SEL_SPLIT_MAX, SEL_RANGE_MIN, SEL_RANGE_MAX, SEL_VALUES_MIN, and SEL_VALUES_MAX, or if vals is SEL_VAL_COMMIT with a custom commit function.
| BrancherHandle Gecode::branch | ( | Home | home, | |
| const BoolVarArgs & | x, | |||
| TieBreak< IntVarBranch > | vars, | |||
| IntValBranch | vals, | |||
| const Symmetries & | syms, | |||
| BoolBranchFilter | bf = NULL , |
|||
| BoolVarValPrint | vvp = NULL | |||
| ) |
Branch over x with tie-breaking variable selection vars and value selection vals with symmetry breaking.
Throws LDSBBadValueSelection exception if vals is any of SEL_SPLIT_MIN, SEL_SPLIT_MAX, SEL_RANGE_MIN, SEL_RANGE_MAX, SEL_VALUES_MIN, and SEL_VALUES_MAX, or if vals is SEL_VAL_COMMIT with a custom commit function.


13.3 store.log
The store.log is a record of
Squid's decisions to store
and remove objects from the cache. Squid creates an entry for each
object it stores in the cache, each uncachable object, and each
object that is removed by the replacement policy. The log file covers
both in-memory and on-disk caches.
The store.log provides the following
you can't get from
access.log:
Whether or not a particular response was cached. The file number for cached objects. For UFS-based storage schemes,
you can convert this to a pathname and examine the contents of the
cache file. The response's content length: the
Content-Length value, and the actual body length. Values for the Date,
Last-Modified, and Expires
headers. The response's cache key (i.e., MD5 hash value).
As you can see, this is mostly low-level information you
won't need on a daily basis. Unless you do
sophisticated analyses, or wish to debug a problem, you can probably
get by without the store.log. You can disable it
with a special setting:
cache_store_log none
As with other log files, Squid appends new
store.log entries to the end of the file. A
given URI may appear in the file more than once. For example, it gets
cached, then released, then cached again. Only the most recent entry
reflects the object's current status.
The store.log is text-based and looks something
like this:
1067299212.411 RELEASE -1 FFFFFFFF A5964B32245AC98592D83F9B6EA10B8D 206
1067299212<PHONE_NUMBER> -1 application/octet-stream 6840/6840
GET http://download.windowsupdate.com/msdownload/update/v3-19990518/cab...
1067299212.422 SWAPOUT 02 0005FD5F 6F34570785CACABC8DD01ABA5D73B392 200
1067299210<PHONE_NUMBER> -1 image/gif 1125/1125
GET http://forum.topsportsnet.com/shfimages/nav_members1.gif
1067299212.641 RELEASE -1 FFFFFFFF B0616CB4B7280F67672A40647DD08474 200
1067299212 -1 -1 text/html -1/67191
GET http://www.tlava.com/
1067299212.671 RELEASE -1 FFFFFFFF 5ECD93934257594825659B596D9444BC 200
1067299023<PHONE_NUMBER><PHONE_NUMBER> image/jpeg 3386/3386
GET http://ebiz0.ipixmedia.com/abc/ebiz/_EBIZ_3922eabf57d44e2a4c3e7cd234a...
1067299212.786 RELEASE -1 FFFFFFFF B388F7B766B307ADEC044A4099946A21 200
1067297755 -1 -1 text/html -1/566
GET http://www.evenflowrocks.com/pages/100303pic15.cfm
1067299212.837 RELEASE -1 FFFFFFFF ABC862C7107F3B7E9FC2D7CA01C8E6A1 304
1067299212 -1<PHONE_NUMBER> unknown -1/0
GET http://ebiz0.ipixmedia.com/abc/ebiz/_EBIZ_3922eabf57d44e2a4c3e7cd234a...
1067299212.859 RELEASE -1 FFFFFFFF 5ED2726D4A3AD83CACC8A01CFDD6082B 304
1066940882<PHONE_NUMBER> -1 application/x-javascript -1/0
GET http://www.bellsouth.com/scripts/header_footer.js
Each entry contains the following 13 fields:
- 1: timestamp
-
The timestamp when the event took
place, expressed as seconds since the Unix epoch with millisecond
resolution.
- 2: action
-
The action taken on the object. This field has three possible
values: SWAPOUT, RELEASE, and
SO_FAIL.
A SWAPOUT occurs when Squid successfully completes
saving the object data to disk. Some objects, such as those that are
negatively cached, are kept in memory, but not on disk. Squid
doesn't make a store.log entry
for them. A SO_FAIL entry indicates that Squid could not
completely save the object to disk. Most likely it means that the
storage scheme implementation refused to open a new disk file for
writing. A RELEASE occurs when Squid removes an object from
the cache, or decides that the response isn't
cachable in the first place.
- 3: directory number
-
The directory number is a 7-bit index to the list of cache
directories that's written as a decimal number. For
objects that aren't saved to disk, this field
contains the value -1.
- 4: file number
-
The file number is a 25-bit identifier used internally by
Squid. It is written as an 8-character hexadecimal number. The
UFS-based storage schemes have an algorithm for mapping file numbers
to pathnames (see Section 13.3.1).
Objects that aren't saved to disk
don't have a valid file number. For these, the file
number field contains FFFFFFFF. This value appears
only for RELEASE and SO_FAIL
entries.
- 5: cache key
-
Squid uses MD5 hash values for the primary index to locate cached
objects. The key is based on the request method, URI, and possibly
other information.
You might be able to use the cache key to match up
store.log entries. Note, however, that an
object's cache key can change. This happens, for
example, whenever Squid logs a TCP_REFRESH_MISS
request in access.log. It looks like this:
1065837334.045 SWAPOUT ... 554BACBD2CB2A0C38FF9BF4B2239A9E5 ... http://blah
1066031047.925 RELEASE ... 92AE17121926106EB12FA8054064CABA ... http://blah
1066031048.074 SWAPOUT ... 554BACBD2CB2A0C38FF9BF4B2239A9E5 ... http://blah
So what's going on? The object is originally cached
under one key (554B...). Some time later, Squid
receives another request for the object and forwards a validation
request to the origin server. When the response comes back with new
content, Squid changes the cache key of the old object (to
92AE...) so that it can give the new object the
correct key (554B...). The old object is then
removed, and the new object is saved to disk.
- 6: status code
-
This field shows the HTTP status code of the response, just like
access.log. See Table 13-1 for
a list of status codes.
- 7: date
-
The value of the Date header
in the
HTTP response, expressed as seconds since the Unix epoch. The value
-1 indicates an unparseable
Date header, and -2 means the
header was entirely absent.
- 8: last-modified
-
The value of the Last-Modified
header in the HTTP response, expressed
as seconds since the Unix epoch. The value -1
indicates an unparseable Last-Modified header, and
-2 means the header was entirely absent.
- 9: expires
-
The value of the Expires header
in
the HTTP response, expressed as seconds since the Unix epoch. The
value -1 indicates an unparseable
Expires header, and -2 means
the header was entirely absent.
- 10: content-type
-
The value of the Content-Type header in the HTTP
response, excluding any media-type parameters. Squid
inserts the value
unknown if the Content-Type is
missing.
- 11: content-length/size
-
This field contains two numbers,
separated by a slash. The first is the
value of the Content-Length header. A
-1 indicates the Content-Length
header is absent. The second is the actual size of the HTTP message
body. You can use these two numbers to identify partially received
responses and origin servers that incorrectly calculate the content
length. In most cases, the two numbers are the same.
- 12: method
-
The HTTP request method for the object, as in
access.log.
- 13: URI
-
The final field is the requested
URI, as in access.log. This field also has the
whitespace problem mentioned in the previous section. However, it is
less worrisome here because you can safely ignore any extra fields.
For many of the RELEASE entries,
you'll see question marks (?) for
the last eight fields. This is because most of those field values
come from what Squid calls the MemObject
structure. This structure is present only for objects that have just
been received, or are being stored entirely in memory. Most of the
objects in Squid's cache don't have
a MemObject because they exist only on disk. For
these, Squid puts question marks in the fields with missing
information.
13.3.1 Mapping File Numbers to Pathnames
If you find you need to
examine a particular cache
file, you can, with some effort, turn a file number into a pathname.
You'll also need the directory number, and L1 and L2
values. In the Squid source code, the storeUfsDirFullPath(
) function does this. You can find it in the
src/fs/ufs/store_dir_ufs.c file. This short Perl
program mimics the current algorithm:
#!/usr/bin/perl
$L1 = 16;
$L2 = 256;
while (<>) {
$filn = hex($_);
printf("%02X/%02X/%08X\n",
(($filn / $L2) / $L2) % $L1,
($filn / $L2) % $L2,
$filn);
}
And here's how you can use it:
% echo 000DCD06 | ./fileno-to-pathname.pl
0D/CD/000DCD06
To find this file in the Nth
cache_dir, simply go to the corresponding
directory and list or view the file:
% cd /cache2
% ls -l 0D/CD/000DCD06
-rw------- 1 squid squid 391 Jun 3 12:40 0D/CD/000DCD06
% less 0D/CD/000DCD06
|


8218 West 3rd Street
Los Angeles, Ca 90048
located directly behind Stript Wax Bar
entrance in alley
street parking
email:
<EMAIL_ADDRESS>instagram


The workbox-precaching package provides some options for configuration should you need to customize any of the default behaviors. Learn more on the workbox-precaching page.
workbox-precaching


Text 20.1
wini=lalagi-'-ny
they (MDu) got upp
ana-dhalangara,
(place n.)
an-uba-ga:-'la,
from there
wini=yama-ny
they did that
wini=lalagi-'-ny
they got upp
wini=yama-ny
they did that
winiwa:='ru-ny,
they (MDu) left itp
wini-yangga=ya-nggi:::,
they wentc
wini=yama-ny
they did thatp
wini:='galawaji-ny,
they crossedp
Two King Brown snakes got up at the place Dhalangara and came this way from there. They did that at Dhalangara. They got up at the place Bamburuwi, then left it; they went along, then whatchamacallit?  They went along south, they went across the land.
Note: king brown snakes are large and deadly; the term nguda-lhardharg is a frozen compound meaning 'rough-waist'.
Text 20.2
wini-yangga=ya-nggi:::
they wentc
an-uba-ga:-'la
from there
wini=lalagi-'-ny,
they got upp
wini=yama-ny
they did thatp
ana-wurangulyu
(place n.)
wini=yama-ny
they did thatp
an-uba-ga:-'la
from there
winiwu=wagara-ngi,
they went to itc
wini=yama-ny
they did thatp
wini:='galawaji-ny
they crossedp
wini=yama-ny
they did thatp
wa:ng-guy,
to whatchamacallit
winiwu=wagara-ngi,
they headed for itc
They went along and. came out there at whatchamacallit place. After they came out they got up (and left again). They did that at the place Wurangulyu. Oops! Not Wurangulyu. They came out like that at Miladanga, the place Miladanga. After that they headed for Wurangulyu. They sang its song (i.e. of rituals).
Text 20.3
an-uba-ga:-'la
from there
wini=lhangadbi-ny,
they emergedp
wa:ni=rarji-ny
they unloaded themp
wini=ya-nggi
they (MDu) wentc
wini=lalagi-'-ny
they got upp
wini=yama-ny,
they did thatp
wini-yangga=ya-nggi:::
they wentc
wini=lhangadbi-ny,
they emergedp
an-uba-ga:-'la,
from there
After that they went along and emerged up into the open. They vomited out (unloaded) some children. They (the two snakes) went along then, they got up (and left). They did that at Abanaraya. They went along and came out at Nadungudungu. They went into the water after that.
Text 20.4
wini-yangga=ya-nggi:::,
they went alongc
wini=1hangadbi-ny,
they emergedp
wini=lhangadbi-ny,
they emergedp
wini=nganyji:-ni,
they vomitedc
wa:ni=rarji-ny
they (MDu) unloaded themp
ni:ni=ya:-ri:,
we (ExMDu) go
yilagala-wuy",
to (place n.)
an-uba-ga:-'la,
from there
wini=yama:-'
they did thatc
wini=lhangadbi-ny,
they emergedp
wini=yama-ny,
they did thatp
wini=lhangadbi-ny,
they emergedp
They both went along. There they came out, they emerged out. At whatchamacallit, Marumaru. They came out and vomited them out there, the Gilyiringgilyiri. (The Gilyiringgilyiri said,) "We are the Gilyiringgilyiri." (The two snakes said to each other,) "Where shall we go? South, to Yilagala." Then they went into the water. They emerged at Mindibur. (Later on) they came out at whatchamacallit, Balgani.
Note: The Gilyiringgilyiri (or Nggilyiringgilyiri) are the human-like beings in the major myths related to the secret Gunabibi ritual; some short texts concerning them more directly are presented later.
 They both went into the water and went along. Up ahead the Gilyirnggilyiri were calling out, "yi!" They (snakes) came out at Nayirinji. They came out (again) at Naburgunguyanga. (The Gilyiringgilyiri said,) "Oh! This is us here. What is this place? Is it Naburgunguyanga?" They (snakes) went away, they both went up onto the shore at Manngalyi. They went south, heading for the plains. They went on. There was the place Milanyja.
 (They said,) "It is us two. We have come. All right?" (Devil:) "Where did you two come from? From the north, from Dhalangara? Where are you going?" (Snakes:) "Yilagala." They said that to the devil. (Devil:) "Is that so?" They (two snakes) went south. They went to Nyawalgur. They took a look. They moved again, south, like that. They came out at Walgawalga. (Correction:) They came out at Nganiwanggiri.
Text 20.7
"da-wu:-'
they are there (WARA)
wini=yama-ny
they (MDu) did thatp
wini=yarangga-ny
they lookedp
"ma:='la:di
it (MANA) is bad
I.can't.look,
I cannot see
nga:='ranggi-Ø"
I will see
wini=ruma-ny,
they (MDu) wentp
ni:ni=ya:-ri:,
you (MDu) go
ni:ni=ya:-ri:
we (ExMDu) go
wa:ng-guy
to whatchamacallit
yilagala-wuy,
to (place n.)
wini-yangga=ya-nggi:::
they (MDu) wentc
wini=lhangadhi-ny,
they emergedp
"yangu-nyum-ba:
who?  Someone is over there (not far away)!" They looked (and saw it). (it was Shark, mulur.) (It said,) "My eyes are no good, I cannot see. Is that so?" (They said,) "Yes! You stay right there!" They started to go. (Shark said,) "Where are you two going, south?" "We are going south, to Yilagala. Yes!" They went along. They emerged at whatchamacallit. (Another snake said,) "Who are you two?" (They answered,) "It is us, two king brown snakes." "Where are you two going?" "We are going south." They said that. At whatchamacallit place. They went down (toward the coast).
Note: Original glossing not clear for second line
Text 20.8
wini=ya-nggi
they (MDu) wentc
wini-yangga=ya-nggi:::
they wentc
wini=warangga-ny,*
they lookedp
na-anyba-jung
other (MSg)
nga:='ranggi-Ø",
I will see
you are blind (creole stem)
From Wunubaryi they went down toward the coast. They went along. They looked, and there they saw another King Brown. (It said,) "Oh! Who are you two? My eyes are no good, I cannot see!" (They said,) "Is that so? You are blind!" (It said,) "Yes, I am. Yes?"
* The place name is wunubaryi, with Ablative -wala. The extra -nyu- is an optional incremental ending used sporadically with place names designating locations in the Mara-language area (which now includes much of the former Warndarang area), at least for this speaker.
They (two king brown snakes) got up and went south. At whatchamacallit place. (Someone said to them,) "Where are you two going?" "We are going this way, toward Yilagala. Right?" (The other said to them,) "Fine! You two go (that way)!" They went along slowly. Finally they ran into a devil. They said (to each other) "Hey you! Someone is here!" (The devil said to them,) "Where are you two going?" "We are going south, to Yilagala. OK?"
 They ran into another King Brown, (it said,) "It's me, King Brown!" (They said,) "It's us! King Browns!" (It said,) "Where did you go? From where did you come?" "From the north we are going toward Yilagala. Right? (We will) go. You, where will you stay?" (It said,) "Here." (They said,) "Fine!
Text 20.11
wini-yangga=ya-nggi:::,
they wentc
wu=warangga:-'
it lookedc
wanggu=na-ny,
it saw themp
ni:ni=ya:-ri:",
you (MDu) go
yilagala-wuy,
to (place n.)
They went along. They ran into Euro (hill kangaroo, Macropus robustus). It looked and saw them. (It said,) "Oh! Who are you two?" (They said,) "It's us, two king brown snakes." (It said,) "Hey! We are all in the Murungun clan, aren't we? We are Murunsun. Where are you two going?" (They said,) "This way, south, to Yilagala."
Note: ngi! with rising intonation (line 5 of preceding segment) is a tag question marker used mainly in languages south of Nunggubuyu and in local English creoles.
Text 20.12
wini-yangga=ya-nggi:::
they wentc
wiringa=na-ny
they saw it (NgARA)
"ya:-wi:-'la
they (WARA) are here coming
ngi=yama:-',
it did thatc
ya:-wi:-'la
they (WARA) are here coming
wini=ya-nggi-wugij,
they went onlyc
"yangu-nyum-ba:
who? (Du)
ni:ni=ya:-ri:",
you (MDu) go
"yilagala-wuy,
to (place n.)
They (two snakes) went along and saw an eaglehawk (wedge-tailed eagle). (One snake said to the other,) "Hey you! There is someone coming up over here. It was going 'dilyag! dilyag!', someone is coming up over here." They kept going and caught up with it. (It said,) "Who are you two?" "It is us two, two king brown snakes, of the Murungun clan." "Oh! Where are you going?" "To Yilagala. This is all of us, right?"
Text 20.13
wini-yangga=ya-nggi:::,
they wentc
na-jiwajiwangala,
(man's n.)
wini=wawanggi-ny
they listenedp
dag!dag!dag!dag!dag!dag!
(sound)
ya:-wi:-'la
they are here coming
ya:-wi:-'la
they are here coming
They went along, and ran into the man Jiwajiwangala (of the Mamba:li clan or semimoiety). They listened, the wind could be heard blowing. He (J) was knocking a boomerang, knock-knock! (One king brown to the other:) "Hey you! There is someone coming up this way, from the south."
Text 20.14
bandiyan-ba:",*
two king brown snakes
jiwajiwangali"
(man's n.)
"yilagala-wuy",
to (place n.)
He (Jiwajiwangala, see 20.13) went along and saw them (the two snakes). "Hey, who are you two?" "It's us here, two king brown snakes." (J said,) "It's me here, Jiwajiwangali." "Where have you come from?" "From the south." "Where?" "From the south." "Is that so? Where are you going?" "(To) the place Mirimiri ji. I am going west, (to) Mirimiriji, and you two?" "To Yilagala." "Goodbye!"

They they both went along. They vomited out stone spearheads (i.e. made a flint quarry). They went along, and there not far away an eaglehawk was making its dilyag! sound. (One snake to the other:) "Hey you! Someone is coming up here! Who are you?" "It's me, Eaglehawk! And you two, where have you come from?" "It's us, two king browns. We are all (you included) Murungun, aren't we?" "Where are you two going?" "To Yilagala." "Fine! Goodbye!"
Text 20.16
wini-yangga=ya-nggi
they wentc
winima=na-ny
they saw itp
ya:-mi:-'la
here it comes
ana-yilagala",
(place n.)
wini-yangga=ya-nggi,
they wentc
wini-yangga=ya-nggi,
they wentc
winima=burumdhi-ny
they put it (English loan)
wini=lhangadbi-ny
they emergedp
wini=yama:-'
they did thatc
wini=yarangga:-',
they lookedc
They went along, and there they saw a stone (hill) coming up to them (i.e. they were moving toward it). (One said to the other:) "Hey you! Here is a stone coming up, maybe that place Yilagala is there." They went along, and from here they both went through the ground. They put it (stone hill) down there. They emerged (from the ground) like this, and looked (and saw) the stone.
Text 20.17
nuny=jaminggari:-na
you (Sg) do what?
ya:-ni:-'la
here it comes
ana-wunubaryi",
(place n.)
wini=yarangga:-'
they (MDu) lookedc
"Well, what do you think? We will stay here, here at this country, Yilagala. Let's stay here. Here is the place Ngurmu, and coming up here is Wunubaryi." They looked and saw a stone (hill) coming up, they did that. "Now let us stay here, all right?" "Yes!" They both stopped. They stayed at the place where they stopped.
Text 20.18
yuwa:-ni-ni:-'li
from there (ANA)
"Yes! This water is good and deep! Here we will stay, at this place Yilagala. This place is named Yilagala." "All right, let's stay here at this place Yilagala. Along from there, here at Yilagala we will stay."
Text 20.19
wini-bu=buri-Ø,
they satc
that.name.now
that's the name
na=bura:-',
we (InDu) sit
wa:-da-wu:-'
those (WARA)
two-fella.been.sit-down
they (Du) stopped
They stayed there then at Yilagala, that was the place's name. "We will stay at Yilagala, all right? We will not go there, (there are) many people over there. We will stay at Yilagala, all right? We will stay here." Right at that place those two stopped, at the place called Yilagala.


Games
All Games ( {{gamecount}} )
{{#each game}}
{{> game_info}}
{{/each}}
Game Name: {{gameName}}
Game Description: {{gameDescription}}
Game Invite
Create Game
{{#if userisadmin}}
Create Game
{{else}}
You do NOT have permission to access this page.
{{/if}}


Azure AD: Groups memberships in SAML 2.0 assertions to SAP Analytics Cloud
Someoe asked how to add group membership to the SAML 2.0 assertion from Azure AD to an application such as SAP Analytics Cloud. This would allow seemless single sign-on to SAP Analytics Cloud (SAC). This post documents the steps to sending group membership in the SAML 2.0 tokens from Azure AD to SAP Analytics Cloud (SAC).


We are always here to help. If you have queries about our services, please fill up the contact form below and we'll do our best to reply within 24 hours. Alternatively,simply pickup the phone and give us a call.
Monday - Sunday : 9am - 6pm(GMT+8)
Palma Street, Poblacion II, Tagbilaran City, 6300 Bohol


Behavior
Compared to his evolutions, Charmander is very calm and sweet. By the light on the tail, one can judge his mood. For example, if he gets angry, the flame gets bigger. It is quite rare in nature, most of them live with Professor Oak and are given to beginner trainers. And for beginner trainers it is always better to choose Pokemon with a calm character. But it will not be easy for beginners with Charmander, because the first two stadiums, Broca and Misty, use stone and water Pokémon, against which Charmander has no advantages.


|
|
| threadedfilebuf (const std::string &filename, size_t buffer_size_bytes) |
| |
|
void | open (const std::string &filename, size_t buffer_size_bytes) |
| |
|
void | close () |
| |
|
void | force_close () |
| |
|
void | operator() () |
| |
|
|
void | soft_close () |
| |
|
std::streamsize | xsputn (const char *s, std::streamsize n) override |
| | Override streambuf::xsputn for asynchronous write.
|
| |
|
int | overflow (int c) override |
| | Override streambuf::overflow for asynchronous write.
|
| |
|
std::streampos | seekoff (std::streamoff off, std::ios_base::seekdir way, std::ios_base::openmode which=std::ios_base::in|std::ios_base::out) override |
| |
|
|
std::filebuf | file |
| |
|
char * | mem_buffer |
| |
|
std::streamsize | mem_size |
| |
|
std::streamsize | mem_max_size |
| |
|
std::streamsize | mem_start |
| |
|
std::streamsize | mem_end |
| |
|
std::streampos | input_pos |
| |
|
std::mutex | update_mutex |
| |
|
std::condition_variable | cond_queued |
| |
|
std::condition_variable | cond_dequeued |
| |
|
std::thread | write_thread |
| |
|
bool | should_run |
| |
|
bool | is_pipe |
| |
The documentation for this class was generated from the following file:
- /home/aoberai/programming/python/blind-navigation/display_3d/documentation/Pangolin/include/pangolin/utils/threadedfilebuf.h


To be perfectly honest, I’m not well read in general. While this serves as an occasional source of embarrassment for me in social situations, I’m not broadly hindered by having only seen Schindler’s List and not read it. Still, I have regret and deep, deep embarrassment over the “list of science fiction books I have not yet read”. So I’m definitely not an expert on the subject.
Still, I’m a lover of science fiction, and when it comes to speculation of the technological and cultural variety, there’s nothing I love more. Through that grid, I have to say, I’m finding 2015 to be an astonishing subject. To start, the Internet is in the hands of 3 billion people and rising. As personal computers go, there’s more power in more hands than ever before. “The Cloud” provides (those with access) unprecedented levels of storage and communications infrastructure. Our personal devices are imprinted with our lives. They can be hacked. And so on and so on.
Even the things we’ve been living with for some time, boring things like email, are still unbelievably amazing when you think about them. Since personal computers became a thing, we’ve gradually upped the ante on what is possible. In my own lifetime, computers have gone from hobbyist fascination to dominant cultural force to probably the salvation of human-kind. Computers are enabling unbelievable advancements in so many areas that it’s hard to keep up.
All this leads me to ponder the human-computer relationship. It’s a subject that feels more relevant now than ever. I wonder if someone has speculated about the “human-computer hybrid” as an abstract species, with yet unseen powers. Looking at my laptop, tablet and mobile devices all strewn about me, I think of what life was like before them and what it’s like now. It’s clear that we’ve crossed some cultural threshold.
I hope that our technological efforts continue to be bold and daring because we’ve got big problems to solve. The world is at war, climate change is proceeding, and time is running out. Humans and their computers are a force to be reckoned with. It seems to me that we have the tools, but maybe our priorities are still a bit out of order.


Current Ph.D. Candidate majoring in Biostatistics, in University of Michigan
Research Assistant
09/2014-Present
Ann Arbor, MI
Collaborate with staff in pulmonary division of University of Michigan Health System Work on data management and analysis; help with writing research manuscripts
Graduate Student Instructor
09/2013-12/2013
Ann Arbor, MI
Delivered the lecture of lab session and held office hour for course Applied Biostatistics Graded homework, lab exercises and mid-term exams
Research Assistant
05/2013-08/2013
Ann Arbor, MI
In Arbor Research, perform data clean and table manipulation with SAS. Assist authors with preparation of tables and figures for inclusion in a variety of written materials. Work with senior analyst to contribute to a wide variety of analytical tasks
Plasma SP-D, Matrix Metalloproteinase-7, and Osteopontin Index Distinguishes IPF From Other IIPs. (White ES, Xia M, Murray S, et al. ) Am. J. Respir Crit. Care. Med. (In Press)
Six-SOMAmer index relating to immune, protease and angiogenic functions predicts progression in IPF. (Ashley SL, Xia M, Murray S, et al.) PloS One. (In Press)
Idiopathic Pulmonary Fibrosis: Gender-Age-Physiology Index Stage for Predicting Future Lung Function Decline. (Salisbury ML, Xia M, Zhou Y, et al. ) Chest. 2016;149(2):491–8.10.1378
Prostaglandin E2 inhibits neutrophil extracellular trap formation post-stem cell transplant. (Domingo-Gonzalez, R, Martinez-Colon, G, Smith AJ, Smith, CK, Ballinger MN, Xia, M, Murray, S, Kaplan MJ, Yanik GA and BB Moore.) Am. J. Respir Crit. Care. Med. 2016:193(2):186-97
Computer: Microsoft Office software * SAS/R/Stata/SPSS * EpiData * Oracle sqldeveloper
Statistical: Linear regression * ANOVA * MANOVA Mixed effect model *GLMLogisitic regression *Survival analysis *High-dimensional categorical data analysis *Clinical trial design *Stochastic process *Longitudinal data analysis *Missing data
School of Public Health
Ann Arbor, MI
09/2014-present
Program: Biostatistics
Degree: Ph.D. Candidate
GPA:3.91/4.00
09/2012-04/2014
Program: Biostatistics
Degree: Master of Science
GPA:3.92/4.00


|
Groovy Documentation | |||||||
| FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | PROPERTY | CONSTR | METHOD | DETAIL: FIELD | PROPERTY | CONSTR | METHOD |
java.lang.Object src.groovy.FsmSupport
class FsmSupport
DSL for defining Finite State Machines. Derived work of: http://www.bytemycode.com/snippets/snippet/640/ New Features: - It now will allow 'when' clauses, acepting a closure whose evaluation to true/false will drive the transition being usable or not. - Logically, it nows accept multiple transitions from the same state/event. - It will get a target object in the constructor, and will provide this object with 'firexxxx' methods so the FSM behaviour is implemented in the entity (this has now been moved into the Grails plugin, so no longer in this class) See FsmSupportTests.groovy for use samples. TODO: Add 'DO' clause so some code might be launched when a transition is triggered TODO: Add 'wildcards (*)' to 'from' so we can generalize better! TODO: Allow an option to allow "wildcards" or not? TODO: Define a way of unifying the event models, so one event can move several flows defined in the entity TODO: Why DON'T fireXXXX methods work with Grails' entities? Forced to use fire(flow, event)!!
| Property Summary | |
|---|---|
def |
actions
|
def |
currentState
|
def |
initialState
|
def |
property
|
static def |
relationships
Will hold relationships to any object & property any FsmSupport has been tied to. |
def |
target
|
def |
transitions
|
| Constructor Summary | |
FsmSupport(def targetObject, def targetProperty, def a_initialState = null, def a_currentState = null)
|
| Method Summary | |
|---|---|
def
|
addActionToTransition(def a_grammar)
|
def
|
fire(def a_event)
|
def
|
isState(def a_state)
|
def
|
record()
If no initialState has been provided we'll try to get it from the object-property itself!! |
def
|
registerTransition(def a_grammar)
|
def
|
reset()
|
| Methods inherited from class java.lang.Object | |
|---|---|
| wait, wait, wait, hashCode, getClass, equals, toString, notify, notifyAll |
| Property Detail |
|---|
def actions
def currentState
def initialState
def property
static def relationships
def target
def transitions
| Constructor Detail |
|---|
public FsmSupport(def targetObject, def targetProperty, def a_initialState = null, def a_currentState = null)
| Method Detail |
|---|
public def addActionToTransition(def a_grammar)
public def fire(def a_event)
public def isState(def a_state)
public def record()
public def registerTransition(def a_grammar)
public def reset()
Groovy Documentation


The prevalence rate of overweight and obese children in Vietnam has
more than doubled in the past 10 years..
By 2020, for every 100 children between the ages of five and 19, 19
are either overweight or obese, a sharp increase compared to the
figure of 8.5 in 2010, the National Institute of Nutrition announced
Thursday.
The report noted the rate of overweight and obese children is 26.8
percent in urban areas, 18.3 percent in rural districts and 6.9
percent in mountainous regions.
Meat consumption increased rapidly, from 84 grams per person per day
in 2010 to 136.4 grams in 2020. Urban meat consumption was higher,
at 155.3 grams.
Deputy Minister of Health Do Xuan Tuyen said the nutritional census
is the largest ever conducted in Vietnam with 22,400 households of
25 provinces and cities across the country. The aim of the
investigation is to collect indicators of anthropology,
micronutrients, individual diets as well as information on food
security and food hygiene.
"Overweight and obese rates are on the rise across all age groups
and in both urban and rural areas, leading to an uncontrolled
increase in dietary-related non-communicable diseases," he
said.Tuyen added the national strategy on nutrition for the
2011-2020 period achieved many important results but has not yet
improved micronutrient deficiency, controlled overweight and obesity
rates among adults, along with a number of other goals.
The health ministry has set a target of controlling obesity and
overweight rates among children under five years at 5 percent in
rural areas and 10 percent in urban areas.


--- layout: base title: Imprint lastUpdate: Sep 29, 2021 sitemap: priority: 0.5 changefreq: yearly ---
JS.ORG's focus is to provide free subdomains for the JavaScript community.
Stefan Keim
Dorfstraße 1A
86947 Schwabhausen/Weil
Germany
Owner contact email adress<EMAIL_ADDRESS>Owner contact phone number: +49-1764-2080100
Promenade 27 (Castle)
91522 Ansbach
Germany
Phone: +49 (0) 981 53 1300
Fax: +49 (0) 981 53 98 1300
Web: www.lda.bayern.de
Email<EMAIL_ADDRESS>Stefan Keim
The use of contact data published within the framework of the imprint obligation by third parties for the transmission of not expressly requested advertising and information material is hereby expressly rejected. The operator of the website expressly takes legal action in the event of the unsolicited sending of advertising information (e.g., spam mail).
As a service provider, we are responsible for our own content on these Internet pages under § 7 (1) TMG and according to the general laws. According to §§ 8 to 10 TMG, however, we as service providers are not obliged to monitor transmitted or stored third-party information or investigate circumstances which indicate an illicit activity. Obligations to remove or block the use of information in accordance with the general laws remain unaffected. Any liability in this respect is, however, only incurred from the moment that knowledge of the specific breach of law is obtained. If we become aware of any legal infringements, we will remove these contents immediately.
Our offer contains links to external websites of third parties on whose contents we have no influence. Therefore, we can not assume any liability for these third-party contents. The respective provider or operator of the pages is always responsible for the contents of the linked pages. The linked pages were checked for possible legal violations at the time of linking. Illegal contents were not recognizable at the time of linking. However, a permanent control of the content of the linked pages is not reasonable without specific indications of an infringement. We will remove such links immediately, if we become aware of any legal infringements.


interface NamedByHash
Implemented by anything that can be named by a secure hash value (e.g. transactions, attachments).
abstract val id: SecureHash


A collection of functions to summarize object information.
This module provides several function which will help you to analyze object information which was gathered. Often it is sufficient to work with aggregated data instead of handling the entire set of existing objects. For example can a memory leak identified simple based on the number and size of existing objects.
A summary contains information about objects in a table-like manner. Technically, it is a list of lists. Each of these lists represents a row, whereas the first column reflects the object type, the second column the number of objects, and the third column the size of all these objects. This allows a simple table-like output like the following:
| types | # objects | total size |
|---|---|---|
| <type ‘dict’> | 2 | 560 |
| <type ‘str’> | 3 | 126 |
| <type ‘int’> | 4 | 96 |
| <type ‘long’> | 2 | 66 |
| <type ‘list’> | 1 | 40 |
Another advantage of summaries is that they influence the system you analyze only to a minimum. Working with references to existing objects will keep these objects alive. Most of the times this is no desired behavior (as it will have an impact on the observations). Using summaries reduces this effect greatly.
The output representation of types is defined in summary.representations. Every type defined in this dictionary will be represented as specified. Each definition has a list of different representations. The later a representation appears in this list, the higher its verbosity level. From types which are not defined in summary.representations the default str() representation will be used.
Per default, summaries will use the verbosity level 1 for any encountered type. The reason is that several computations are done with summaries and rows have to remain comparable. Therefore information which reflect an objects state, e.g. the current line number of a frame, should not be included. You may add more detailed information at higher verbosity levels than 1.
Summarize an objects list.
No guarantee regarding the order is given.
Get the difference of two summaries.
Subtracts the values of the right summary from the values of the left summary. If similar rows appear on both sides, the are included in the summary with 0 for number of elements and total size. If the number of elements of a row of the diff is 0, but the total size is not, it means that objects likely have changed, but not there number, thus resulting in a changed size.
Print the rows as a summary.
Keyword arguments: limit – the maximum number of elements to be listed sort – sort elements by ‘size’, ‘type’, or ‘#’ order – sort ‘ascending’ or ‘descending’


| setops {dplyr} | R Documentation |
These functions override the set functions provided in base to make them
generic so that efficient versions for data frames and other tables can be
provided. The default methods call the base versions. Beware that
intersect()
, union()
and setdiff()
remove duplicates.
union_all(x, y, ...)
x, y |
objects to perform set function on (ignoring order) |
... |
other arguments passed on to methods |
mtcars$model <- rownames(mtcars) first <- mtcars[1:20, ] second <- mtcars[10:32, ] intersect(first, second) union(first, second) setdiff(first, second) setdiff(second, first) union_all(first, second) setequal(mtcars, mtcars[32:1, ]) # Handling of duplicates: a <- data.frame(column = c(1:10, 10)) b <- data.frame(column = c(1:5, 5)) # intersection is 1 to 5, duplicates removed (5) intersect(a, b) # union is 1 to 10, duplicates removed (5 and 10) union(a, b) # set difference, duplicates removed (10) setdiff(a, b) # union all does not remove duplicates union_all(a, b)


I The description-experience gap
Interactive 1 - 10minGo to this site to try out risky choices based on experience and description. Don’t sample for too long. Interactive 2 - 5minPlease enter your intuitions about how people explore using this survey. ReferencesSpektor, M., & Wulff, D. U. (in prep.) Strategic information search. Manuscript in preparation. |
II Harnessing simulated experiences
Interactive 1 - 20minGo to this site to explore the cognitive underpinnings of decisions from experience. When you think you have found the best mix of cognitive components go to this survey to enter your predictions. Interactive 2 - 20minTry out each of the risk intervention tools below (simply click on them). Only explore the tool. Don’t answer the questions posed to after you’ve made the decisions.
When you have explore all risk intervention tools, go to this survey to share your impression on each of the tools. ReferencesHertwig, R., & Wulff, D. U. (in prep.). Learning From Experience and Description: Two Powerful Yet Imperfect Teachers of Risk Cognition. Invited by Nature Human Behavior. |


Hi
I am trying to set up OemGateway to send data from my PI live to a PI test slave setup on the same network.
The PI Live does not use a RFM12B module. My PI Live is a remote server on a fixed IP address using the internet to get data from an emontx in a completely different location.
I am not sure of the requirements in this part of the config file
[[emoncms_local]]
type = OemGatewayEmoncmsBuffer
[[[init_settings]]]
[[[runtime_settings]]]
domain = localhost
apikey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
protocol = http://
active = False
path = /emoncms
[[emoncms_remote]]
type = OemGatewayEmoncmsBuffer
[[[init_settings]]]
[[[runtime_settings]]]
domain = emoncms.org
apikey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
protocol = http://
active = True
path =
My test slave is located at http://<IP_ADDRESS>/emoncms/
Where do I put that information? I assume API key on remote is the API key of the slave. Do I put the API key of the PI live in the emoncms_local settings and do I need to change anything else in the local settings?
Regards
Ian
Re: Setting up OemGateway
Its my understanding that those settings are just for writing to the database. So try this:
I reserve emoncms_remote for emoncms.org, so if you are not using emoncms.org set active to false.
Re: Setting up OemGateway
Thanks
I have done that and started oemgateway.
I am not seeing any inputs so I must have something wrong. Where does the log file end up?
Regards
Ian
Re: Setting up OemGateway
Are you sure that the data is getting to the oemgateway script?
Oemgateway either gets data from a RFM12Pi on the same computer (via serial port) or via listening on a socket.
You can setup the log file location from the command line otherwise it is directed to sys.stderr
Have a look at the source code https://github.com/Jerome-github/oem_gateway/blob/master/oemgateway approx line180.
Re: Setting up OemGateway
Hi Ian, Did you get this sorted?
Having tried this last night I can confirm the oemgateway forwarder used in the RO image will forward both socket and serial packets, to emoncms locally on same machine, same network or remotely hosted (in fact it can do all 3 at once if you add another buffer in oemgateway.conf) so these details should work for you.
[[emoncms_local]]
type = OemGatewayEmoncmsBuffer
[[[init_settings]]]
[[[runtime_settings]]]
domain = IP.OF.LIVE.PI
apikey = API KEY OF LIVE EMONCMS
protocol = http://
active = True
path = /emoncms
[[emoncms_remote]]
type = OemGatewayEmoncmsBuffer
[[[init_settings]]]
[[[runtime_settings]]]
domain = IP.OF.TEST.PI
apikey = API KEY OF TEST EMONCMS
protocol = http://
active = True
path = /emoncms
Getting oemgateway to install and run was a bit fiddly due to some permission issues, but once it started everything worked really well
Paul
Re: Setting up OemGateway
Hi
Thanks. Not working yet because I think I had not configured port number correctly.
I set that to 80 which is what I thought it is but get an error:-
2014-03-28 13:04:46,954 INFO Logging level set to DEBUG
2014-03-28 13:04:46,958 INFO Opening gateway...
2014-03-28 13:04:46,963 INFO Creating buffer emoncms_local
2014-03-28 13:04:46,970 INFO Creating buffer emoncms_remote
2014-03-28 13:04:46,975 INFO Creating listener RFM2Pi
2014-03-28 13:04:46,981 DEBUG Opening serial port: /dev/ttyAMA0
2014-03-28 13:04:46,988 INFO Setting send time interval to 0
2014-03-28 13:04:46,992 INFO Setting RFM2Pi | frequency: 4
2014-03-28 13:04:47,997 INFO Setting RFM2Pi | sgroup: 210
2014-03-28 13:04:49,002 INFO Setting RFM2Pi | baseid: 15
2014-03-28 13:04:50,006 INFO Creating listener Socket
2014-03-28 13:04:50,011 DEBUG Opening socket on port 80
2014-03-28 13:04:50,016 ERROR [Errno 13] Permission denied
2014-03-28 13:04:50,021 ERROR Could not open port 80
^C2014-03-28 13:04:58,990 DEBUG SIGINT received.
2014-03-28 13:04:58,994 DEBUG Closing serial port.
2014-03-28 13:04:58,997 INFO Exiting gateway...
Still investigating!
I will change config to your example.
Regards
Ian
Re: Setting up OemGateway
the default port oemgateway listens to is port 50011, it may be better to change it back and match it at the other (emontx) end since you are not sending direct to emoncms now.
Paul
Re: Setting up OemGateway
Hi Paul
I am a bit lost on port addressing(but learning!).
My Live PI is on a fixed IP internet connection. My emontx is located remotely and sends data over the internet.
I have port forwarding set up on the router for the emoncms as follows.
# Service Name External Start Port External End Port Internal Start Port Internal End Port
4 Emon 80 80 80 80
Internal IP address
<IP_ADDRESS>
I changed the oemgateway to listen to port 5011 and it starts without an error message. I then changed the internal port forwarding to match 50011.
This has an immediate effect on the oemgateway which is giving warnings like this:-
2014-03-28 16:04:43,630 WARNING Misformed RX frame: ['GET', '/emoncms/input/post.json?apikey=********06d069745bfe8dac70040261&node=28&csv=0,0', 'HTTP/1.0']
2014-03-28 16:04:43,864 INFO Serial RX: Host:
2014-03-28 16:04:43,869 WARNING Misformed RX frame: ['Host:']
2014-03-28 16:04:44,075 INFO Serial RX: Accept: text/html
2014-03-28 16:04:44,079 WARNING Misformed RX frame: ['Accept:', 'text/html']
2014-03-28 16:04:44,283 INFO Serial RX:
2014-03-28 16:04:44,287 WARNING Misformed RX frame: ['']
Sadly it also has the effect that I can no longer log in to my Live PI over the internet. I can log in to the live PI using the network address but the inputs are not updating. So I am not sure what to do next. It would seem I need to give oemgateway access to port 80 but I don't know how.
Regards
Ian
[Edited: APIkey fudged - RW]
Re: Setting up OemGateway
I'm not familiar with port forwarding but I would of thought you could leave the live pi exactly as it was and change emontx to send to LIVE.PI.IP port 50011 and then enter whatever address your emontx was originally sending to in the oemgateway.conf in one buffer along with the test pi address in the other buffer. that should retain your previous access as you are just putting oemgateway in between emontx and live pi.
Paul
Re: Setting up OemGateway
Hi Paul
Not so easy. I am using a nanodeRF located at different premises and I don't really want to lose data collection.
My emontx data is all collected by the nanode.
My Live PI server is working well and has done for many months. I was setting up a test slave PI to evaluate emoncms V8 before I upgrade and to help with the testing of V8 if I can.
The nanode is sending data to a static address set by this line of code:-
static byte hisip[] = { 85,***,188,38 };
Out of interest does anyone know if the port number can just be added to this in the normal format:-
static byte hisip[] = { 85,***,188,38:50011 };
Regards
Ian
[Edit: IP address fudged - RW]
Re: Setting up OemGateway
Hi Ian - You should maybe mask some digits off in your last post !
I'm guessing this isn't going to work as even if it did send to that ip/port it will clash with existing port forwarding. It seems from the previous prints the oemgateway isn't able to decode the complex url from nanode when using port 50011 so giving it access to port 80 probably won't resolve the issue. You maybe able to get around it by changing url template at the nanode but I think this would then be insecure as it appears the oemgateway requires no authentication, in fact it will add its own API key validating everything it receives.
So probably oemgateway will need modifying for this to work
Paul
Re: Setting up OemGateway
You can't do "static byte hisip[] = { 85,***,188,38:50011 };" because that is trying to fill an array, and the syntax is illegal - 38:50011 is not an integer. You'll need to delve very deeply into the Ethercard library to find out how to add the port (always assuming that you can). So while I can tell you why it won't work, I'm sorry but I can't tell you how to fix it.
Re: Setting up OemGateway
Hi
Many thanks.
I will forget this for now as it was only for testing purposes. Robert - thanks for changing the IP address. It may have been interesting to see how well my router firewall works as there are only 4 ports exposed and they are all pointing to uncritical web pages. However probably best not to find out is does not work the hard way.
Lesson learned, don't cut and paste without thinking.
Regards
Ian
Re: Setting up OemGateway
Hi.
Not sure I get the point, but I think there is a misunderstanding.
The gateway is a repeater. It gets data from the emonTX (generally locally) and sends it to one or several emoncms servers. Those servers can be anywhere, even on the same machine, in which case the domain is localhost. The name "emoncms_local" is just a convenient name, it can be changed and any number of "emoncms buffers" can be created ion the gateway. This config file is just an example. Anything can be changed.
When the gateway sends data to an emoncms server, it formats it as a http request. Which means it sends it to that server on the 80 port (I suppose) or the https one, if configured so and if this works on server side (never checked). Apache (or nginx, or whatever) on the server side passes it to the emoncms instance on that server, and the rest is history.
The socket listener of the gateway (the one that opens a port) is very specific. It opens a new port (I chose 50xxx to be sure it was a free port, since it is not currently reserved, you can pick another open one if it is already open) and reads it as you would read a COM port. It expects raw data of the form
See the example in the gateway directory. There is no "mainstream" application of this. It is here to help anyone wanting to send data from a custom application like a sensor reader.
It is not clear to me what you want to do. If you want to receive data on an emoncms instance on one Pi, then forward it to another, well, this is not possible. emoncms does not do this. And the gateway is not concerned, since the data is sent to emoncms, not to it, on the first Pi.
The solution is to send to both Pis from the emonTX. There was a thread about this. I don't think there is another way, unless such feature was added in emoncms since then (which I doubt).
That is if my assumption is correct that you're using a TX with an ethernet port and formatting the data for emoncms. By "formatting" I mean that the TX creates a http request with the API key and all.
The gateway is meant to get raw data and create the http request. If your TX is equipped with network interface and does that, you just don't need the gateway.
You could use the gateway as a repeater if you sent it raw data, but I don't see the point (there could be good reasons in specific cases, and testing is a specific case). However, it would mean open a port, route it, and it is not really meant to be done : there is no authentication such as API key, so currently it should be used on a local network.
I hope this is not too confusing. Please ask for clarification if needed.
Re: Setting up OemGateway
Hi Jérôme
I have since learned that oemgateway does not do what I was trying to do.
I have a nanodeRF sending data over the internet to a raspberry PI (without the RFM12Pi expansion board) acting as an emoncms server at a fixed IP address. I have recently set up a second PI again without RFM12Pi expansion board as a second emoncms server. I thought the oemgateway could be used to forward the data from the 1st Pi server to the 2nd PI server.
I now understand that this is not how oemgateway works.
This is not important as I was only trying to do this as a way of testing the latest version 8 of emoncms before I actually upgrade.
Many thanks for replying
Regards
Ian
Re: Setting up OemGateway
OK.
I think you could modify your Nanode code to send to both servers, if they are both reachable from it.
Re: Setting up OemGateway
I tried that some time ago, I could send the data to the two servers, but handling the acknowledgements was difficult as I couldn't identify the sender; and I gave up (mainly because the Nanode was losing favour and everybody seemed to switching to using RPi's).
Re: Setting up OemGateway
Would it be possible to add a url listener to the oemgateway with the listeners incoming apikey set within it's entry in oemgateway.conf? So if the received url string contains the correct api then add the basic data values to the existing buffer system. I know it won't be quite as easy as that but it would be a very valuable addition to the oemgateway.
This would not only resolve this particular need but also expand on the currently limited option of only being able to forward rfm2pi data from emoncms.
Dave (aka Schism) for instance is currently able to forward from one emoncms to another via the rfm2pi module interface but if he had non rfm inputs they would be excluded.
I on the other hand can use oemgateway to feed 2 local installs and emoncms.org, forwarding all input types to all emoncms servers as long as the inputs are created locally.
With what's currently available the easiest solution for Ian would may be to replace the nanode rf with a Pi running the rocksolid ro version of oemgateway, sending to 2 emoncms servers using the same ip but different paths eg /emoncmslive and emoncmstest and resolve the addresses locally, but I'm guessing the test emoncms may not be important enough for the extra expense/hassle.
So how difficult would it be to add a url listener (assuming it can be done of course) ?
Paul
Re: Setting up OemGateway
Hi Paul
Your suggestion would also provide an up to the minute automatic backup!
Regards
Ian
Re: Setting up OemGateway
I'm not convinced it is a good idea. I mean, it may be a twisted way of doing something that could be done from emoncms.
In fact, after a quick thought, I think it's more a job for emoncms.
Maybe you can open an enhancement request on emoncms for this. You can also open one on OEM gateway. I don't plan on doing this soon, but it will be here for here record. And maybe the one on emoncms will open a fertile discussion.
Or maybe you'll convince me that the gateway is a place for that.
Re: Setting up OemGateway
It strikes me it's more like RAID than a backup?
Re: Setting up OemGateway
Ian - yes it would, in fact much better than just a data back-up because if a server went down either due to a fault or for intentional maintenance/upgrade and was back-up again before the oemgateway buffer duration was reached (currently about 1.5hrs for me) there would be no loss of data on that server once it was back online and caught up with the buffered backlog.(assuming of course the oemgateway hasn't gone down with it ie same machine or same power supply failure)
Robert - I hadn't thought of it that way but yes like a mirror array raid except a complete shadow server possibly even located somewhere different eg emoncms.org that if a server went down you could just log-in to the other and carry on. not that anything we're monitoring is quite that important but it's a nice incidental feature.
Jérôme - Basically having decided the url forwarding was definitely a useful feature for the emoncms project, based mainly on the usefulness of the limited rfm2pi only forwarding part of emoncms and the forward all local data functions of the oemgateway, My thought process was simply why exclude standalone RO oemgateway from using it? if added to oemgateway both standalone and emoncms servers reap the benefit in one go as I believe the oemgateway is being adopted as the standard gateway to emoncms.
I guess either place would suffice but to me the oemgateway is really the traffic hub for the system and as this function is explicitly about routing data,, it just seems the most logical and flexible option,
Paul
Re: Setting up OemGateway
Anyone, please follow discussion on this specific point in the github issue, if you want to be sure I'm notified.


| S.NO | COURSE CODE | COURSE | GRADE OBTAINED |
|---|---|---|---|
| 1 | CSB204 | OPERATING SYSTEMS | |
| 2 | CSB215 | COMPUTER NETWORKS | |
| 3 | CSB234 | NETWORKING LAB | |
| 4 | CSB235 | OPERATING SYSTEM LAB | |
| 5 | CSB237 | DESIGN PROJECT - 1 | |
| 6 | ITB203 | MICROPROCESSOR AND COMPUTER ARCHITECTURE | |
| 7 | ITB233 | MICROPROCESSOR LAB | |
| 8 | MAA203 | PROBABILITY AND STATISTICS | |
| 9 | SSA232 | APTITUDE 2 | |
| 10 | EE | ENGINEERING ELECTIVE | |
| 11 | OE | OPEN ELECTIVE (FOR IBM STUDENTS - IBC401 ) | |
| 12 | IBC431 | VIRTUALIZATION LAB (Non IBM students- Don't enter) |
Are you from IBM? (Please Specify this)


Reload Instrumented Code
JavaScript files seen by devtools preprocessor.
Reload to preprocess sources


We're looking for Java Senior Developers to participate in challenging projects, learn in a friendly, collaborative environment, and help us take innovation to the next level.
Intelygenz Software has been delivering cutting-edge software solutions to industry leaders since 2002. We are part of a company called Intelygenz who has been building a complete catalog of products and services that help businesses to achieve the digital age challenges. Software is the language of the Digital Age, our products and services translate business ideas into applied solutions.
We are offering:
To apply for this position, please send your resume to<EMAIL_ADDRESS>More job opportunities on https://intelygenz.com/join-us/


One of the Watchmen Universe's Supreme Court Justices is John Grisham
by Dan ConnerViewers of the new Watchmen television show may find that there are differences between its world and the one they are familiar with. In the universe of Watchmen, for example, John Grisham is a Supreme Court justice.
When asked about Grisham's tenure on the Supreme Court, in an interview with /Film, Watchmen writers Jeff “Doc” Jensen and Damon Lindelof describe that "John Grisham was appointed and confirmed during a contentious process in 2002."
In regards to Grisham's position in the world of Watchmen, Jensen and Lindelof continued to detail that "there have been rumors that Grisham has continued to publish novels under different pseudonyms, but he has insisted those rumors are not true."
Click the button below to start this article in quick view.
They also shared, "Of the 13 novels published under his name between the years of 1989 and 2001, all but four were made into films." This is consistent with the film adaptations which have been made of the novels Grisham wrote during those years.
Developed by Damon Lindelof, HBO's Watchmen stars Jeremy Irons, Regina King, Don Johnson, Tim Blake Nelson, Jean Smart, Louis Gossett Jr., Yahya Abdul-Mateen II, Tom Mison, James Wolk, Adelaide Clemens, Andrew Howard, Frances Fisher, Jacob Ming-Trent, Sara Vickers, Dylan Schombing, Lily Rose Smith and Adelynn Spoon. The series airs Sundays at 9 p.m. ET/PT.
https://schema.orgBreadcrumbListListItem1Homehttps://www.cbr.com/ListItem2TVhttps://www.cbr.com/category/tv/ListItem3TV Newshttps://www.cbr.com/category/tv/news-tv/ListItem4One of the Watchmen Universe's Supreme Court Justices is John Grishamhttps://www.cbr.com/watchmen-universe-supreme-court-justice-john-grisham/


Join Lounge
Lounge is web based Real-time content sharing platform.
You can use Lounge to meet other people, start discussions, watch and Listen to music together.
Basically it's Discord, Youtube, and Spotify, all put into one website!
Most importantly, Lounge is not a profit oriented website. It's totally ad-free and cost-free.
Sign up


About Angular 2 Labs
Developed by Sirajuddin Choudhary
Source code availabe at sirajc/angular2-labs
Features
- bootstrapping AppModule (NgModule) using
bootstrapModule
- All Components are part of respective NgModule
- Shared Modules
- Route definition in NgModule
- Lazy Load Module for a Route
- Webpack
- Unit Testing
- Synchronous Loading of Modules using loadChildren
- Dygraphs Integration
- Masonry Integration
- Forms
- Template Driven Forms


Home
About
Events
Wedding
Corporate
Parties
Guests
Gallery
Reviews
Press
Menu
Gallery
Contact Us
contact information
Morgan’s Harbour
West Bay | PO Box 769.
Grand Cayman KY1-1303
Cayman Islands
Telephone:
+345 623-5100
Telephone:
+345 325-5000
E-mail:
<EMAIL_ADDRESS>*This field is required.
*This is not a valid name.
*This field is required.
*This is not a valid email.
*This field is required.
*This is not a valid phone.
*This field is required.
*The message is too short.
Clear
Send
×
Modal title
You message has been sent! We will be in touch soon.


I really enjoy web development using tools like Angular2 node.js html5 css
I love using my skills in web development
You can contact me via mail<EMAIL_ADDRESS>or via phone :<PHONE_NUMBER>55 Find me in GitHub


Top
Get Set Go
Add Task
Task Name
Looks good!
Invalid:Task name has to be more than 5 characters.
Assigned To
Looks good!
Invalid:Task assigned to has to be more than 5 characters.
Description
Looks good!
Invalid:Task description has to be more than 5 characters.
Due Date
Looks good!
Invalid: Select valid date.
Status
To Do
In Progress
Review
Done
Submit
Clear


Creates a reproducible 'ggplot2' object by storing the data and calls.
| Version: | 0.2.1 |
| Depends: | R (≥ 3.2.0), ggplot2, animation |
| Suggests: | testthat |
| Published: | 2016-08-20 |
| Author: | Jonathan Carroll [aut, cre] |
| Maintainer: | Jonathan Carroll <rpkg at jcarroll.com.au> |
| BugReports: | https://github.com/jonocarroll/ggghost/issues |
| License: | GPL (≥ 3) |
| URL: | https://github.com/jonocarroll/ggghost |
| NeedsCompilation: | no |
| Materials: | README NEWS |
| CRAN checks: | ggghost results |
| Reference manual: | ggghost.pdf |
| Package source: | ggghost_0.2.1.tar.gz |
| Windows binaries: | r-devel: ggghost_0.2.1.zip, r-release: ggghost_0.2.1.zip, r-oldrel: ggghost_0.2.1.zip |
| OS X binaries: | r-release: ggghost_0.2.1.tgz, r-oldrel: ggghost_0.2.1.tgz |
| Old sources: | ggghost archive |
Please use the canonical form https://CRAN.R-project.org/package=ggghost to link to this page.


Error handling in class-function based APIback top
The class-function based API utilizes C++ exception mechanism.int getCode() const;
const char * getMessage() const;
Error handling in interface based APIback top
The interface based API utilizes traditional error code mechanism.struct IExtendObject : public IObjectWhen any error occurs, the interface will catch any exception and transfer the error code and error message to the interface itself.
{
virtual int32_t G_API_CC getErrorCode() = 0;
virtual const char * G_API_CC getErrorMessage() = 0;
};
Error codeback top
| Constant | Description |
| Error_Variant_FailCast | GVariant can't convert a value to variant or vice versa. |
| Error_Variant_FailCopyObject | Trying to copy a non-copyable object to variant. This only happens on shadow object and usually you don't need to worry about it. |
| Error_Variant_FailAdjustTypeSize | GVariant type size mismatch when transfering crossing modules and GVariant can't correct the size. This usually should not happen unless a variant is transfered between different CPU architecture, such like calling a 64 bit library from a 32 bit program. |
| Error_Meta_WrongArity | Calling invokable with wrong number parameters. |
| Error_Meta_ParamOutOfIndex | Trying to access a parameter out of the index. |
| Error_Meta_ReadDenied | Can't get value from field or property. |
| Error_Meta_WriteDenied | Can't set value to field or property. |


Mvp.Xml Library v2.3 Release Notes
This is another minor release of the Mvp.Xml Library
for .NET 2.0. Version 2.3 fixes lots of bugs and introduces new features.
What's new?
Most important bugs fixed:
-
XIncludingReader now works well with Saxon.NET, XmlSerializer, DataSet and others
- Library DLL is now debuggable
- No more XmlValidatingReader and XmlTextReader used
Full
list of new features and fixed bugs in verision 2.3.
Mvp.Xml Project Home | API
Documentation |
Discussions |
Releases |
Issue Tracker |
License
Last Modified 07/01/2007 11:04PM GMT+2 by Oleg
Tkachenko


Nearly the size of Delaware, Anchorage lies between the Chugach Mountains on the east and Knik Arm of Cook Inlet on the west. The surrounding mountain ranges provide a splendid setting. It has many fine restaurants and upscale shops. It has a surprisingly mild climate and in summer colourful flowers spill from hundreds of baskets on downtown lampposts.
Position 61°13′N, 149°54′W.Report to CBP at Anchorage Small Boat Harbor.
Last updated November 2014.
Currents in upper cook inlet caused by tidal action can be quite severe. Mud flats shift and make charts obsolete quickly. Cruising sailboats should approach Anchorage with great caution and obtain local knowledge ahead of time.
There is no known berthing facilities for cruising yachts here.
The nearest small boat harbour is at Seward which is a good place to visit.
Other alternative destinations are the Lower Cook inlet port of Homer and Seldovia. Both have nice services for visiting yachts. Also Whittier, which has docking facilities and is connected to the road system.
Last updated October 2015.


sh
Bourne shell, the standard command language interpreter.
See also `histexpand` for history expansion.
More information: home page
- Start an interactive shell session:
sh
- Execute a command and then exit:
sh -c "command"
- Execute a script:
sh path/to/script.sh
- Read and execute commands from `stdin`:
sh -s


The Software Underground London Hackathon will be held on June 1st and 2nd 2019 at Work.Life @ Clerkenwell. Join the Software Underground group on Slack and help us in organizing the Hackathon!
| Time | Activity | Contact | Comments |
|---|---|---|---|
| 8-9 | Welcome & breakfast | @filippo82 | |
| 9-12 | Code! | ||
| 12-13 | Lunch | @filippo82 | |
| 13-17 | Code! | ||
| 17-18 | Wrap up | @filippo82 |
| Time | Activity | Contact | Comments |
|---|---|---|---|
| 8-9 | Welcome & breakfast | @filippo82 | |
| 9-12 | Code! | ||
| 12-13 | Lunch | @filippo82 | |
| 13-16 | Code! | ||
| 16-18 | Wrap up | @filippo82 |
We are open to suggestions and contributions. Please contact us if you want to propose a tutorial, a project, or if you want to lead a sprint!


Rand.Seed
Syntax
Rand.Seed (seed : nat4, seq : 1 .. 10)
Description
The Rand.Seed procedure restarts one of the sequences generated by Rand.Next. Each restart with the same seed causes Rand.Next to produce the same sequence for the given sequence.
Status
Exported qualified.
This means that you can only call the function by calling Rand.Seed, not by calling Seed.
See also
Rand.Next, Rand.Int, Rand.Real, and Rand.Set.


Dr. Chen has over 20 years of experience in medical business development, sales and marketing, and has a proven track record of successfully building manufacturing companies in China. He is the Founder of HJY Forward Medical Investment Co. and now serving as Chairman & CEO of HJY Medical Group, focusing on building world class spine center in China. He served as CEO of Crown Dragon Medical Device Co., President of Bonovo Orthopedics Inc (US), President of Bridgetech Medicines; CEO of Mesure Technology; Co-Founder and CEO of Hunt Champion & Sunpros International; and President of Toong Yuan Co. in Taiwan and China. Prior to entering medical field, Dr. Chen also had extensive international product and business development experiences with Frito-Lay and PepsiCo Foods International in the U.S., Europe, Asia Pacific and China. Dr. Chen earned a Ph.D. from University of Minnesota.


I am a designer with over 5+ years worth of expertise in the UX field. I create seamless end-to-end experiences for desktop, mobile and web application users. My design thinking is rooted in simplicity, which I achieve with user-centric techniques, web standards and best practices.