The Mutex API provides standard mutex functionality with added diagnostics capabilities. These mutexes can be shared by threads within the same process, but can't be shared by threads in different processes.
Two kinds of mutex are supported by Legato:
All mutexes can be locked and unlocked. The same lock, unlock, and delete functions work for all the mutexes, regardless of what type they are.
A recursive mutex can be locked again by the same thread that already has the lock, but a non-recursive mutex can only be locked once before being unlocked.
If a thread grabs a non-recursive mutex lock and then tries to grab that same lock again, a deadlock occurs. Legato's non-recursive mutexes will detect this deadlock, log a fatal error and terminate the process.
If a thread grabs a recursive mutex, and then the same thread grabs the same lock again, the mutex's "lock count" is incremented. When the thread unlocks that mutex, the lock count is decremented. Only when the lock count reaches zero will the mutex actually unlock.
There's a limit to the number of times the same recursive mutex can be locked by the same thread without ever unlocking it, but that limit is so high (at least 2 billion), if that much recursion is going on, there are other, more serious problems with the program.
In Legato, mutexes are dynamically allocated objects. Functions that create them return references to them (of type le_mutex_Ref_t).
Functions for creating mutexes:
le_mutex_CreateRecursive()
- creates a normal, recursive mutex.le_mutex_CreateNonRecursive()
- creates a normal, non-recursive mutex.All mutexes have names, required for diagnostic purposes. See Diagnostics below.
Functions for locking and unlocking mutexes:
It doesn't matter what type of mutex you are using, you still use the same functions for locking and unlocking your mutex.
When you are finished with a mutex, you must delete it by calling le_mutex_Delete().
There must not be anyone using the mutex when it is deleted (i.e., no one can be holding it).
The command-line diagnostic tool inspect can be used to list the mutexes that currently exist inside a given process. The state of each mutex can be seen, including a list of any threads that might be waiting for that mutex.
Copyright (C) Sierra Wireless Inc. Use of this work is subject to license.


git -v
If you receive a response to this, then git is already installed!
sudo apt-get install git
apt-get will install git
insert image
all done!


Year 69, Early Summer 20th
4:20pm
sfasdsadsadsa dasdsad ad ad as
bread > crumbs
adssaasd
sdasdadasda
sdasdadasda
sdasdadasda
sdasdadasda
sdasdadasda
sdasdadasda
sdasdadasda
sdasdadasda
sdasdadasda
sdasdadasda
sdasdadasda


Hello,
Someone asked for a password reset for the email address {{ email }}.
Unfortunately it won't happen, because of our security policy.
Sorry,
The Lead Manager Admin


Cancer Hallmarks data is curated from COSMIC (Catalogue Of Somatic Mutations In Cancer), the world's largest and most comprehensive resource for exploring the impact of somatic mutations in human cancer. For more information on the concept of Cancer Hallmarks, refer to the influential 2011 article by D. Hanahan and R. A. Weinberg, Hallmarks of Cancer: The Next Generation.
{{function.description}}; .
COSMIC profile for {{target.approved_symbol}}
| Hallmarks | Promotes | Suppresses |
|---|---|---|
| {{mark.label}} |
{{function.description}}; .
COSMIC profile for {{target.approved_symbol}}
| Cancer Hallmark | Description | Promotes or Suppresses | Publication |
|---|---|---|---|
No data available


"ALEXANDER THE GREAT "the king of Macedonia, the great conqueror; probably represented in Daniel by the “belly of brass” (Daniel 2:32), and the leopard and the he-goat (7:6; 11:3,4). He succeeded his father Philip, and died at the age of thirty-two from the effects of intemperance, B.C. 323. His empire was divided among his four generals.
"ALEXANDER THE GREAT "the king of Macedonia, the great conqueror; probably represented in Daniel by the “belly of brass” (Daniel 2:32), and the leopard and the he-goat (7:6; 11:3,4). He succeeded his father Philip, and died at the age of thirty-two from the effects of intemperance, B.C.
323. His empire was divided among his four generals.


Our Team
CEO
Chief Creative Officer
Director of Technical Innovation
Voice User Interface Designer
UX Designer
Software Engineer
Director of Marketing
Curious by nature.
Passionate for innovation.
As new technology emerges, we help brands navigate what’s now and next. With the right approach, change is not to be feared, but expected and embraced.Thriving ecosystems will always beat one-offs. In an era when nothing occurs in a vacuum, every little thing has big implications.


Frequently Asked Questions
I'm not running Apache or Nginx, do you support my http server?
While we only support Apache and Nginx, there are community developed ports to several other webservers:
If you run a webserver that doesn't have a port, one option would be to set up some other server running PageSpeed as a reverse proxy in front of it. If you're not sure which to use we recommend using PageSpeed on nginx, but any of these servers should work well as an optimizing reverse proxy.
(And, of course, if you're interested in porting PageSpeed to a new server, that would be awesome, and anyone porting should feel free to send us lots of detailed technical questions!)
When will you support my favorite OS or protocol?
While we have no dates to announce for upcoming releases, we definitely want to know what you think we should be working on. Please search our issues for your feature. If you don't find it, open a new issue and tag it "Type-Enhancement". To get updates on an issue, click the "star" icon for it. This also lets us know how many people are interested in the issue. If your issue is Nginx-specific, consider posting on the ngx_pagespeed bug tracker.
Do you support SUSE?
We support SUSE on Apache and Nginx when building from source. For Apache, Robert Munteanu<EMAIL_ADDRESS>has set up a repository which publishes OpenSUSE RPMs for mod_pagespeed. The repository is hosted on OpenSUSE's build service instance. The builds have seen some testing on one of Robert's servers (OpenSUSE 12.1/x86_64) but he'd appreciate anyone else testing it.
To enable the module, install it, add deflate pagespeed
to your
list of Apache modules in /etc/sysconfig/apache2
and restart
Apache.
Please note that the module is linked dynamically with the current system libraries and as such will bring in more dependencies than the 'stock' Fedora or CentOS RPM.
Why isn't PageSpeed rewriting any of my pages?
Check the HTTP response headers from your HTML page:
curl -D- http://example.com | less
You should get something like:
- Apache:
-
Date: Fri, 30 Sep 2016 15:36:57 GMT Server: Apache/2.4.7 (Ubuntu) ... X-Mod-Pagespeed: <IP_ADDRESS>-0 ...
- Nginx:
-
Date: Fri, 30 Sep 2016 15:37:24 GMT Server: nginx/1.11.4 ... X-Page-Speed: <IP_ADDRESS>-0
If you don't see an X-Mod-Pagespeed
header (Apache)
or X-Page-Speed
header (Nginx), this means that your webserver
isn't letting PageSpeed run. This could be because it isn't actually installed,
you don't have it turned on in the configuration file, or many other reasons.
In Apache the problem might be that you have multiple
SetOutputFilter
directives: only one of those will win. See the
Apache SetOutputFilter documentation.
If you do see the header, but it doesn't look like PageSpeed is making any changes to your page, its possible that none of the active filters are finding anything to rewrite. Try comparing your page with PageSpeed off and with the collapse_whitespace filter enabled:
curl -D- 'http://example.com?ModPagespeed=off' | less curl -D- 'http://example.com?ModPagespeed=on&ModPagespeedFilters=collapse_whitespace' | less
If you see a change when run with collapse_whitespace
on, that
means PageSpeed is running but the filters you have selected aren't
optimizing anything. There are several reasons that could happen:
- The filters you have enabled aren't aggressive enough.
- Your resources (images, css, javascript) aren't cacheable. If
PageSpeed sees
cache-control
headers such asnocache
orprivate
it will not rewrite the resources. - CSS, JavaScript, and image files served from a distinct domain from the HTML must have the resource domain authorized. See Domains.
- Your CSS has new CSS3 syntax or other constructions we don't support. See issue 108. The fallback_rewrite_css_urls filter may be able to help. You can also use the standalone CSS parser to help debug these issues.
- Your resources are served over HTTPS. HTTPS resources can currently only be rewritten if they are origin-mapped or loaded from directly from the file-system. See HTTPS Support.
Why am I getting "Error: Missing Dependency: httpd > = 2.2" even though I have Apache 2.2.? installed?
You are probably trying to install mod_pagespeed using yum or apt-get (the .rpm or .deb binaries), but you installed Apache using a different method (cPanel, Wordpress, etc.). This will not work because mod_pagespeed binaries depend upon Apache being installed using yum or apt-get.
Instead you must either build from mod_pagespeed from source or search for mod_pagespeed + your platform to see if someone has documented an install process for that platform. For example, cPanel based installation.
I'm using cPanel on my server, how do I install mod_pagespeed?
cPanel installs Apache httpd server from source via the built-in EasyApache setup and build process. In order to enable mod_pagespeed on your server, download and install the mod_pagespeed module for cPanel WHM - once the module is installed, you can select "mod_pagespeed" as one of the modules during the regular EasyApache build (via the online tool, or from the command line). Do not install mod_pagespeed from .deb. or .rpm packages - cPanel requires that you use the EasyApache build process.
I'm using WordPress and my pages are blank. Why?
Disable compression in the WordPress plugin, so that mod_pagespeed will process uncompressed HTML. mod_pagespeed ensures that its output will be compressed by enabling mod_deflate.
PageSpeed broke my site; what do I do?
First of all, sorry about that. We put a lot of work into validating our rewriters against a large corpus of websites and we disable filters that cause problems as soon as we can, but sometimes things slip through.
Second, please upgrade to the latest version; we are continually working on bug-fixes and turning off filters that break pages.
If it's still breaking your site, please post a bug (Apache, Nginx). If you can, including the following information will make it much easier to diagnose:- Try appending
?ModPagespeed=off
to the URL. This de-activates PageSpeed. If the site is still broken, it is not a rewrite or HTML parsing problem. It might be a configuration clash, please ask us on our discussion group. - If that fixed the site, try
appending
?ModPagespeed=on&ModPagespeedFilters=
to the URL. This turns on PageSpeed, but no filters. If the site is broken now, it is an HTML parsing problem. Please let us know. - If the site still worked, try
appending
?ModPagespeed=on&ModPagespeedFilters=foo
for various filters "foo". For example try:http://www.modpagespeed.com/?ModPagespeed=on&ModPagespeedFilters=extend_cache http://www.modpagespeed.com/?ModPagespeed=on&ModPagespeedFilters=combine_css http://www.modpagespeed.com/?ModPagespeed=on&ModPagespeedFilters=inline_css http://www.modpagespeed.com/?ModPagespeed=on&ModPagespeedFilters=inline_javascript http://www.modpagespeed.com/?ModPagespeed=on&ModPagespeedFilters=insert_image_dimensions http://www.modpagespeed.com/?ModPagespeed=on&ModPagespeedFilters=rewrite_images http://www.modpagespeed.com/?ModPagespeed=on&ModPagespeedFilters=rewrite_css http://www.modpagespeed.com/?ModPagespeed=on&ModPagespeedFilters=rewrite_javascript
You may have to reload them a few times over several seconds to make sure they have had time to load sub-resources into cache and rewrite them. If one of these breaks your site, you now know which filter is at fault. Please let us know. You can disable that filter by adding a line to yourpagespeed.conf
file:- Apache:
ModPagespeedDisableFilters foo
- Nginx:
pagespeed DisableFilters foo;
I am getting 404s for rewritten resources (like example.png.pagespeed.ic.LxXAhtOwRv.png) or for the mod_pagespeed_admin console
The most common reason that the rewritten resources 404 is because of
mod_rewrite RewriteCond
rules. For example:
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^ /404 [L,R=301]
This rule causes 404 for all requests which don't exist on the filesystem, including mod_pagespeed rewritten resources and the mod_pagespeed admin console.
In order to fix this you must add an exception for mod_pagespeed URLs:
RewriteCond %{REQUEST_URI} !pagespeed
This will allow rewritten resources, the admin console and static resources necessary for some filters.
PageSpeed does not pick up changes when I edit CSS or JavaScript files
There are two distinct cache-times at play when you use PageSpeed:
- The origin TTL which PageSpeed uses to refresh its internal server-side cache.
- The TTL with which PageSpeed serves rewritten resources to browsers.
We recommend an origin TTL of 10 minutes, which provides reasonable responsiveness when you update a file. If you try to make it much smaller, then your server will need to refresh it more frequently. This adds server load and reduces optimization.
To see changes to your files more quickly while developing, flush the cache on your server(s).
If your environment allows you to enable LoadFromFile, you can get the best of both worlds because PageSpeed can eliminate its internal server-side cache.
Why is PageSpeed giving me errors in jquery or js_tinyMCE?
Some JavaScript is introspective, being sensitive to its own name or the path it's loaded from. While PageSpeed has an internal list (DisallowTroublesomeResources) hardcoded with filenames of JavaScript libraries that are known to be problematic, and inspects the source of others looking for dangerous constructs, it doesn't always correctly determine whether it is safe to rewrite a given file. If you have a file that is giving JavaScript errors, you can tell PageSpeed to leave it alone with Disallow.
What's with all these "Serf" errors in my logs? Error status=670003 (Temporary failure in name resolution)
This can happen when the DNS cannot be accessed accurately from the server. Thus sub-resources cannot be fetched and rewritten correctly.
To test that this is the case, ssh
into your machine and wget
a URL:
$ ssh YOUR_SITE $ wget http://YOUR_SITE/
If this fails, then DNS is not accessible or there is some other networking issue stopping you from accessing your host from itself.
One solution is to use origin-mapping to indicate the host from which the resources should be fetched:
- Apache:
ModPagespeedMapOriginDomain localhost www.example.com
- Nginx:
pagespeed MapOriginDomain localhost www.example.com;
This bypasses DNS lookup by telling PageSpeed to get all resources for
domain www.example.com
from localhost
.
This can also be used to improve the performance of PageSpeed when it is sitting behind a load balancer. It may be preferable to use localhost to load the resources rather than going out to the load-balancer and back.
Can I move PageSpeed's file-based cache into RAM?
Why yes, you can. PageSpeed uses the file system for its cache implementation. There is no requirement that this be a physical disk. Disk pressure will be reduced and performance may be improved by using a memory-based file system.
Put this in /etc/fstab
, with the uid and guid set to the appropiate
user and group of your webserver, and set path to your needs. Feel free to
change the size; here it is 256Mb:
tmpfs /path/to/pagespeed_cache tmpfs size=256m,mode=0775,uid=httpd,gid=httpd 0 0
Save it, and after that mount the tmpfs:
mount /path/to/pagespeed_cache
Why don't you allow source-installs in Apache via ./configure && make?
mod_pagespeed is dependent on several other packages that
use gclient
. For us to switch away from this build methodology
we'd have to either:
- rewrite the functionality we get for free from other packages, or
- get these packages to switch
methodologies and document for people installing from source that
they must
configure
andmake
about 10 other packages before they could compile ours.
To do either of those would cost us a lot of development time that we'd prefer
to spend making PageSpeed better. The benefit of gclient
,
besides the above, is that it lets us control explicitly which library versions
we link in, out of a large number of direct and transitive dependencies, helping
us create a consistent experience for our source-code builds. If we had to ask
our source-code installers to configure
and make
multiple dependent libraries there would likely be a lot of
version-incompatibilities.
We do support ./configure && make
in Nginx, but that only works
because we package up a binary distribution of the PageSpeed Optimization
Library and a "source"
installation only builds the ngx_pagespeed-specific files from source. When you
want
to build
PSOL from source along with ngx_pagespeed you still need to
use gclient
.
Why is my Google Analytics data being inflated by "Serf"?
If you track page views with a tracking image, you will need to explicitly tell PageSpeed not to try to fetch that image. For example if your tracking image were:
<img src="/ga.php?utmac=...">
you would add:
- Apache:
ModPagespeedDisallow "*/ga.php*"
- Nginx:
pagespeed Disallow "*/ga.php*";
to your configuration file.
mod_pagespeed does not rewrite pages produced from mod_php
mod_pagespeed only rewrites pages specifically marked as Content-Type:
text/html
(and a few other HTML types). If you dynamically generate your
pages from mod_php, PHP needs to set this header correctly.
One way to do this is to use the PHP's header function:
<?php header('Content-Type: text/html') ?>
This code goes at the top of your php file.
PageSpeed causes my page to display an XML
Parsing Error
message
This usually happens when using a content management or generation system (we've seen it with Munin and Magento for example). The full error message looks something like:
XML Parsing Error: mismatched tag. Expected: </li>. Location: http://www.example.com/ Line Number 123, Column 4: </ul>
This happens when the generated content has a meta
tag that
identifies the content as XHTML but the content has markup that is not valid
XHTML, and you have configured your webserver to set the content type
to HTML, so the browser parses it as HTML and doesn't detect the invalid XHTML
errors.
However, when convert_meta_tags
is enabled (and it's a core filter
so is on by default), PageSpeed inserts a content header into the response
with the value in the meta
tag, namely XHTML
(application/xhtml+xml
to be precise), resulting in the browser
displaying the error message because it is now parsing the page as XHTML and
it rejects the invalid content.
There are three solutions, in descending order of preference:
- If the content is XHTML, write XHTML and validate it with an XHTML validator.
- If the content is not XHTML, remove the
meta
tag that claims it is. - If the content is not XHTML but you can't remove the
meta
tag, say because your CMS doesn't let you, disable theconvert_meta_tags
filter in yourpagespeed.conf
:- Apache:
ModPagespeedDisableFilters convert_meta_tags
- Nginx:
pagespeed DisableFilters convert_meta_tags;
Why do I get Permission denied errors in my log file on CentOS, RHEL, or any system using SELinux?
The symptom is many error messages in the webserver log file of the form (split across multiple lines here for readability):
[Mon Jan 01 02:03:04 2001] [error] [mod_pagespeed <IP_ADDRESS>-2005 @1234] /path/to/pagespeed_cache/randomgibberish.lock:0: creating dir (code=13 Permission denied)
These are because SELinux by default restricts permissions of daemons for
extra security, so you need to grant permission for the httpd
or daemon to write to the cache directory:
chcon -R -t httpd_sys_content_t /path/to/pagespeed_cacheThis is for Apache; we're not sure what you need to do for Nginx.
My logs contain messages about missing files requested from <IP_ADDRESS> and resources are not optimized, what's wrong?
For security reasons, PageSpeed will only fetch from host names it is explicitly told about via its domain configuration directives and from <IP_ADDRESS>, the loopback interface of the server it's running on. Many Apache configuration management tools, however, will configure virtual hosts to only listen on the external IP, which causes those fetches to fail.
If you are affected, the following options may be appropriate:
- Unless you have a reason not to, have your virtual hosts listen on all
interfaces: change the directives of the form
<VirtualHost <IP_ADDRESS>:80>
to the form<VirtualHost *:80>
- For every virtual host, list its domain name(s) with the
ModPagespeedDomain
directive inside its own<VirtualHost>
block. For example:<VirtualHost <IP_ADDRESS>:80> ServerName www.example.com ModPagespeedDomain www.example.com
- For every virtual host, provide a
ModPagespeedMapOriginDomain
directive giving where to load its resources, for example:<VirtualHost <IP_ADDRESS>:80> ServerName www.example.com ModPagespeedMapOriginDomain <IP_ADDRESS> www.example.com
- If you have
ModPagespeedInheritVHostConfig on
, you can also provide the origin mapping globally, which may be useful in combination with wildcards, for example:ModPagespeedMapOriginDomain loadbalancer.example.com *.example.com
Warning: You do not generally want to use
Domain
globally as doing so will tell PageSpeed that you consider all of these domains as mutually trusting. - If you are running a proxy or for some other reason cannot easily enumerate all virtual hosts, it is possible to disable this behavior, after taking some precautions. Please see fetch server restrictions for more information.
Why are rewritten pages sending POSTs back to my server?
Certain filters need to determine things about the page: in particular, the
lazyload_images
,
inline_preview_images
,
and inline_images
filters need to determine which images are above the fold, and the
prioritize_critical_css
filter needs to determine the CSS actually used by the page.
To do this, the filters inject JavaScript into the rewritten HTML that analyzes the page in the browser and sends data back to mod_pagespeed using a POST method. The default target is
/mod_pagespeed_beacon
but that
can be changed using the
ModPagespeedBeaconUrl
directive.
How do I enable or disable beacon POSTs being sent back to my server?
Filters that use the beacon automatically inject JavaScript to send the POST back to the server, and the POST handler is always enabled in mod_pagespeed, so there's nothing to do to enable beaconing.
To disable the use of beacons by the image rewriting filters use the
ModPagespeedCriticalImagesBeaconEnabled
directive. If you disable image beacons but enable filters that use
them, the filters will work but not as well as when beacons are enabled.
To disable the POST handler for all filters there are two options: either
disable all the filters that use it, or use a
<Location>
directive to block it. Filters are disabled using
ModPagespeedDisableFilters. An example
<Location>
directive to block all beacon POST handling that
can be added to your pagespeed.conf
file is:
<Location /mod_pagespeed_beacon> Order allow,deny </Location>
If you block POSTs but enable filters that use beacons, depending on the filter it will either have limited functionality or have no useful effect, but in all cases pointless processing will occur in both the server and the browser, so you should disable and forbid these filters if you block POSTs.
Note:Even if you disable all filters that use beacons someone
could use tools like wget
or curl
to send POSTs to
your server. These will have no effect but they will require processing. If you
want to completely disable POST handling use a <Location>
directive.
Why is PageSpeed inserting a meta refresh to /?PageSpeed=noscript or /?ModPagespeed=noscript at the top of the page?
The defer_javascript
,
lazyload_images
,
dedup_inlined_images
, and
local_storage_cache
filters require JavaScript to render pages correctly. To support clients that
have JavaScript disabled, if any of these filters are enabled, PageSpeed will
insert a meta refresh inside a noscript
tag at the top of the page.
This meta refresh will redirect clients with JavaScript disabled to the current
URL with a '?PageSpeed=noscript
' query parameter appended which
disables filters that require JavaScript.
If you wish to disable this redirect, for instance if your page already requires
JS to function correctly, set the following option in your
pagespeed.conf
:
- Apache:
ModPagespeedSupportNoScriptEnabled false
- Nginx:
pagespeed SupportNoScriptEnabled false;
Why won't the collapse_whitespace
filter
remove newlines?
When removing whitespace from HTML, some website optimizers remove newlines entirely, but PageSpeed leaves them in. This isn't actually a problem with newlines, however, it's that it's not generally safe to remove a run of whitespace entirely. You can turn any number of consecutive whitespace characters into a single one, and we do that, but removing the whole run can make the site render differently.
To take a simple example, consider:
<body> <h1>Hello World</h1> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce molestie ante <b>vitae</b> iaculis varius. ... </body>
PageSpeed with collapse_whitespace
will turn this into:
<body> <h1>Hello World</h1> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce molestie ante <b>vitae</b> iaculis varius. ... </body>
If PageSpeed went further and put it all on one line, it would be
converting <b>vitae</b> iaculis
into <b>vitae</b>iaculis
, which would change the
rendering from "vitae iaculis" into "vitaeiaculis"; one word
instead of two. It would have been safe to turn <body>
<h1>Hello World</h1>
into <body><h1>Hello
World</h1>
, but doing one and not the other requires understanding
the CSS (and JS) to the point where we can reliably tell that one pair of
elements are display: block
while the other pair
are display: inline
.
I've got a warning saying "Serf fetch failure rate extremely high". What does this mean?
The warning means that, when PageSpeed tried to fetch resources inside your
web page for optimization, over 50% of attempts inside a 30-minute period
failed. This may just mean you have some broken resource includes in your
pages (in which case, it may be a good idea to fix them for better performance),
but might indicate that PageSpeed's fetching is not working properly. If you
have in-place resource optimization on, that can result in user requests for
.pagespeed.
URLs returning error 404 intermittently.
First of all, check to see if the log mentions anything else about fetch trouble. If what's there is not helpful, the root cause may be more obvious if you follow these steps:
- Disable in-place resource optimization temporarily.
- Clear PageSpeed cache.
- Open a test page with a
?PagespeedFilters=+debug
query parameter, reload it a few times, and see if resources are getting optimized, and if not if there is an error message. - Revert the config changes.
Most likely you may need to configure an origin domain, to specify the host or IP to talk to fetch resources.
You may also want to consider using
LoadFromFile
functionality, as that performs much better if
your resources are static.
Sometimes pages are served as partially optimized. How can I achieve a more steady optimization ouput?
There are two (relatively) common situations that may lead up to a fluctuating level of optimization in the output:
- Low traffic, combined with short http expiry times for image, css and javascript
responses:
Consider increasing the http expiry applied to the original resources, or set up LoadFromFile to allow the module to load static files directly from disk. - High cache churn rates:
If PageSpeed's caches are sized too small, optimized assets falling out of the cache may cause frequent reoptimization. Sizing the cache to 3 to 4 times the size of the original assets of the website should allow the module to cache all the original resources plus multiple optimized variants (for serving different user-agents and screen sizes). - If the above did not help, the admin pages offer various tools that may assist in diagnosing what happens.


This demo utilizes the jQuery UI tabs widget. The content is loaded using Ajax and each tab has it's own unique link.
Next: Features »


@Suspendable abstract fun waitForLedgerCommit(hash: SecureHash): SignedTransaction
Suspends the flow until the transaction with the specified ID is received, successfully verified and sent to the vault for processing. Note that this call suspends until the transaction is considered valid by the local node, but that doesn't imply the vault will consider it relevant.
hash
- The SecureHash of the transaction to wait for.
Return
The SignedTransaction that matched the passed in hash.


The Moving Picture Girls Under the Palms or Lost in the Wilds of Florida
by Laura Lee Hope
Chapter 11: To Lake Kissimmee
Additional Information
- Year Published: 1914
- Language: English
- Country of Origin: United States of America
- Source: Hope, L. L. (1914). The Moving Picture Girls Under the Palms or Lost in the Wilds of Florida.New York: Grosset & Dunlap.
-
Readability:
- Flesch–Kincaid Level: 5.4
- Word Count: 1,752
- Genre: Adventure
- Keywords: florida stories, the moving picture girls under the palms
- ✎ Cite This
Downloads
The staccato explosions of the motor boats, the cheers of the spectators, of whom there were many; the clicking of the camera operated by Russ, and the shouts of the picture-players themselves as they went through the “business” prescribed for this act of the play, made the scene a gay one.
“This will make a fine film,” declared Mr. Pertell, who was in the boat with Alice, Mr. Bunn, Mr. Sneed and Mr. DeVere.
“I think so,” agreed the latter. “I am glad we came to Florida.”
“Is your throat better?” the manager asked.
“Indeed yes—much better.  “That is, only so that you will not leave me and go back to the legitimate,” he added, quickly. “For I want you in moving pictures. I have some other plans when we finish work here, and you and your daughters will be much needed.”
“I am glad you have such a good opinion of us,” murmured the veteran actor.
“Where are we going from here?” asked Alice.
“That’s a secret,” laughed the manager. “I haven’t it all worked out myself, as yet.”
The boats sped on, the rival skippers striving to gain the lead. The men in charge of the motors, too, did everything in their power, in the way of changing the gasoline mixture, or by means of copious oiling, to get one more revolution out of their engines. But the boats seemed very evenly matched. A big wave was thrown up on either bow of each boat.
Russ, after getting pictures of the start, had gone with his camera, by a short cut, to a little promontory on shore, where he got other views of the boats racing through the water. Then he went farther on and, getting into another motor boat, took his place near the finish line, to film the end of the race.
“Oh, I do hope we win!” exclaimed Alice, to her captain.
“I’m going to do my best,” he answered, grimly, as he glanced across to where the other boat was forging through the water.
And in her boat Ruth was saying the same thing.
Each skipper had been holding something in reserve in the way of power, and now the mechanicians were signalled to use this.
The boats were nearing the finish line now, for the race, for the purpose of the moving pictures, was only a short one.
But, as it happened, the captain of the boat Alice was in, got his signal a little ahead of his rival, so that he shot forward, and thus gained an advantage the other motor boat could not cut down.
“Oh, we’re going to win!” cried Alice in delight, clapping her hands as she saw Russ, in his boat at the finish line, operating his camera. “We’re going to win!”
Miss Pennington and Miss Dixon, who, with Ruth, were in the other boat, looked glum. As for Ruth she was of that gentle nature which is willing to lose, that others may enjoy even a brief pleasure, and she rejoiced in the delight of her sister.
“Well, I guess he’s got me!” regretfully admitted the captain of the losing boat. “He was a little too quick for me.”
And so it proved, for the boat containing Alice shot across the line a winner.
“I knew we’d do it!” she cried.
“Good for you!” shouted Russ.
“It’s time for you to fall overboard now, Mr. Sneed,” directed the manager. “Make a good fall, and put plenty of splash into it.”
“Oh dear!” groaned the actor. “I suppose I must!”
In anticipation of this he had donned an old suit of clothes, as had Mr. Bunn, and the latter, for one of very few times, did not wear his tall hat.
“Be ready with your rescue leap,” ordered Mr. Pertell to the older actor. “Make it as natural as you can.”
The boats had now lost headway, and were coming to a point where Russ could get pictures of the “overboard act.”
“I say!” cried Mr. Sneed, as he paused in his preparations to fall, “I have just thought of something!”
“What is it?” asked Mr. Pertell, sharply. “Quick, we are losing time, and getting out of position.”
“There are no alligators in this bay; are there?” and Mr. Sneed looked anxiously at the captain of the motor boat.
“Not one,” was the laughing answer. “You’re safe.”
“Then here I go!” cried the grouch, as he toppled overboard, having first “registered” a faint, as directed in the plot of the play.
“Now get him, Mr. Bunn!” cried the manager, and there was another splash, while aboard the boats the proper bits of acting were gone through with, that the camera might catch them.
Once they were in the water Mr. Bunn and Mr. Sneed acted their parts well, and the result was a good film. Then, once more aboard the boats, a start was made for the fort, where the final act was to take place.
“I say, me deah fellah!” complained Mr. Towne, as he moved away from Mr. Bunn, who sat near him; “keep a bit off, that’s a good chap!
But Mr. Towne’s anxiety for his garments was wasted, for at that moment Mr. Sneed, taking off his coat, wrung some water from it, and of this a considerable quantity splashed on the light suit of Mr. Towne.
“Oh, I say!” the latter cried in dismay. “This won’t do, you know!”
“Humph! It seems to me it’s already done,” observed Paul, with a chuckle.
During the rest of the trip Mr. Towne was kept busy trying to dry up the wet spots with his perfumed handkerchief.
Pop Snooks, the property man, who had little to do when outdoor scenes were being made, was busy with the other moving picture camera on the fort wall, and presently, on the arrival of the company at that place, the final scenes were filmed.
“Wasn’t it a dandy race?” cried Alice, as she and her sister, with Russ and Paul, started back to the hotel.
“It was for you because you won, I suppose,” remarked Miss Pennington, in a disagreeable tone.
“Not at all,” returned Alice, promptly. “It was a glorious race anyhow. Winning didn’t count; it was all for the picture.”
“That’s the way to look at it,” said Paul, in her ear. “But, all the same, I’m glad your boat won.”
“Thanks,” she replied, as she tripped along beside him.
Miss Pennington and Miss Dixon, pausing a moment to “readjust their complexions,” as Alice said (for which she was reproved by Ruth), went on by themselves.
The company of players remained in St. Augustine several days, and many fine films resulted, the scenery lending itself particularly well to the camera.
One act in a play took place at the alligator “farm,” on Anastasia Island. There Ruth and Alice saw ‘gators in all stages, from tiny ones just emerging from the shell, to big fourteen-foot ones—regular “man-eaters” they were told.
“Ugh! the horrid creatures!” exclaimed Ruth, who could not repress a shudder.
“They aren’t very pleasant,” agreed Alice. “And to think that perhaps those two girls may be—”
“Oh, my dear! Don’t mention it! I can’t bear to think of such a thing. It’s too horrible!”
“But I suppose there must be many such as that one, in the wilds of the swamps and bayous,” said Alice in a low voice, as she pointed her parasol at a huge saurian.
“If there are any such, I don’t want to know it—or see them,” murmured Ruth, again shuddering. “Oh, I hope we don’t go too far into the wilds.”
“So do I,” agreed her sister.
That afternoon, calling his company of players together, Mr. Pertell said:
“Friends, we will leave in two days for the interior. I want to get some views along the rivers and bayous, where the scenery is wilder than it is here.”
“And where are we going, may I ask?” inquired Mr. DeVere.
“To a place called Sycamore, near Lake Kissimmee,” was the answer.
“Oh, Ruth!” exclaimed Alice, impulsively, when she heard this.
“Yes, dear, what is it?”
“Why, that’s where those two girls were from—the ones who were lost, you know!”
“Hush! Yes. You know we agreed to say nothing about it, for fear of causing undue alarm. Miss Pennington and Miss Dixon might refuse to go, you know,” she went on in a low voice, “and that would make trouble for Mr. Pertell.”
“Oh, but isn’t it a strange coincidence?” remarked Alice.
“It certainly is. But perhaps the girls have been found by this time.”
“Our destination will be Lake Kissimmee,” proceeded Mr. Pertell. “We will take some pictures on the lake, some on the Kissimmee River, that connects the lake of that name with Lake Okeechobee, and then we’ll go a little way into the wilds, on various streams.”
Ruth and Alice looked at each other apprehensively.


PITCH BLACK RATING: 7 /10 --> Good movie
For more reviews and movie screensavers, visit http://www.joblo.com/
Vin Diesel rocks! Harumph...well, now that I got that out of my system, I feel it my duty to pre-announce how I enjoy different kinds of films depending on my mood at times, and how I am generally prone to thumb up the higher quality entertainment flicks, but also more than open to appreciate an all-out, turn-your-brain-off-at-the-door cheezefest presentation of film. And guess what...this film is just that!
 Unfortunately, these folks apparently picked the worst time to have an accident on this planet, since a solar eclipse is just about to take place, and the chompin' critters are ready to take a bite out of any human left unprotected by light.
CRITIQUE: Vin Diesel rocks! Or did I mention that already? Fact one about this film is that it doesn't truly stray into any original ground.  And fact three about this film is that it includes one of the coolest opening crash scenes that I have ever seen, is charmed with an intriguing look of filters, yellows, blues and reds clogging the screen one at a time, and simply pumps the last 30 minutes with enough tension, cool alien freakazoids and dark undercurrents to register a "fun time" stamp on my face. Is this the next sci-fi classic? Certainly not, but it also doesn't pretend to be, with just enough one-liners from Diesel to vie for a nomination into the cult movie favorite category of the year. This movie is pure cheese with a touch of arty pretension, all draped under the banner of a simple good time at the movie theatre. I thought that it started with a bang, slowed considerably once they all settled onto the planet, but then took off again when Diesel and crew took to shelter after the eclipse.
I mention Vin Diesel so often in my review because his character truly made this film memorable for me. Where else could you see a buff dude with silver eyes and slick sunglasses run around and knife-fight alien bat-thingies? Not sure but this film delivers on the Diesel meter full-force! Unfortunately the rest of the two-bit characters are one-dimensional at best, with a contingency of Muslims and the proverbial Obi-Wanesque guy simply getting on my nerves. However, on the whole the film did provide me with enough thrills, money shots and cool moments with Diesel to warrant a full membership to the club of enjoyment. The two elements which could have been improved upon in my opinion, include the soundtrack, which was almost non-existent and the quality of the rest of the characters in the crew. I assume that this flick was on a low budget, but that doesn't really justify the exclusion of any other interesting characters from the mix. But don't cry for me Argentina, cause all in all the movie delivers its punches on the targets of its choice, which include the fun special effect-laden aliens, the slick stylings of director Twohy and the charismatic performance by Vin. So if this "type" of film is your schtick, then wait no longer to catch this dark son-of-a-gun in the theatres right now. But if you're looking for something a little different and more intellectual, I suggest that you wait a little longer and check into the two Mars movies still to come later on this year. Either way, Vin Diesel rocks!
And if not for anything else, just see this movie in order to witness a character go mano-a-mano with a friggin' alien! Very cool!
Little Known Facts about this film and its stars: This film was originally titled NIGHTFALL.  Well, you might remember him from a small role that he had during the first 30 minutes of SAVING PRIVATE RYAN (8/10) as Private Adrian Caparzo, his deep voice, which was used as that of THE IRON GIANT (5/10) and his more recent role in BOILER ROOM (7.5/10), a film which ironically opened on the same day as this film. He's also written and directed two films of his own, MULTI-FACIAL and STRAYS, which were screened at the 1995 Cannes Film Festival and 1997 Sundance Film Festival respectively. Not too shabby for a 32-year old. No surprise is the fact that the "lead" lady in this film, played by Radha Mitchell, hails from Australia. My buddy and I noticed an accent come and go during the movie, which made us suspicious to this little known fact. If any of you are wondering where the heck David Twohy, the director of this film, comes from, well it's actually a pretty short resume. This is only his second directing gig, his first being the under-achieving THE ARRIVAL (7.5/10) with Charlie Sheen, and he is mainly known as a screenwriter to such films as G.I. JANE (6.5/10), WATERWORLD, THE FUGITIVE and CRITTERS 2? Yup. The Wheat brothers, who are two of the writers of this film, also have a sorted background writing unmemorable sci-fi and horror flicks including SILENT SCREAM, AFTER MIDNIGHT, FLY II and IT CAME FROM OUTER SPACE II.
Review Date: February 19, 2000 Director: David N. Twohy Writers: David N. Twohy, Ken Wheat and Jim Wheat Producer: Tom Engelman Actors: Vin Diesel as Riddick Radha Mitchell as Fry Cole Hauser as Johns Genre: Science-Fiction Year of Release: 2000 -------------------------------------- JoBlo's Movie Emporium http://www.joblo.com/ -------------------------------------- (c) 2000 Berge Garabedian
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


ebay auction fee
9%, max $100
ebay insertion fee
$1-2
All
Digital Cameras, Lenses
Flashes
sold only?
summary results
search results


An Free and Powerful Shorten URL Service
Go to •.ml.
Paste long URL in the input field.
Press "Shorten it!" button.
Enjoy your short URL!
Thanks myjson.com provides wonderful api.


PlotlyJS Example1
Offline-generated plot
Assuming you already have the Plotly code for some plot, displaying the result on a page with Franklin is now pretty straightforward. Start by adding
@def hasplotly = true
so that the JS library will be loaded then somewhere appropriate add:
~~~

~~~
This will give:
using PlotlyJS
z = [10 10.625 12.5 15.625 20
5.625 6.25 8.125 11.25 15.625
2.5 3.125 5. 8.125 12.5
0.625 1.25 3.125 6.25 10.625
0 0.625 2.5 5.625 10]
data = contour(; z=z)
layout = Layout(; title="Basic Contour Plot")
plt = plot(data, layout)
© SatoshiTerasaki. Last modified: April 06, 2020. Website built with Franklin.jl.


ChronoRoll
FAQ
BLOG
brightness_5
Submit
username
logout
click roll
0.000 STEEM
0.000 SBD
x2
%
LOW
HIGH
If you have the winning number, you will receive 0.196 STEEM
STEEM
Block
Type
Percentage
Result
FAQ
×
About
Chronoroll is a randomzied, blockchain based gambling appliation.
Steemconnect
Chronoroll uses steemconnect to authorize transations, once you are ready to send a bet.


Estimating the number of atheists in the U.S. is complicated. Some adults who describe themselves as atheists also say they believe in God or a universal spirit. At the same time, some people who identify with a religion (e.g., say they are Protestant, Catholic or Jewish) also say they do not believe in God. But one thing is for sure: Along with the rise of religiously unaffiliated Americans (many of whom believe in God), there has been a corresponding increase in the number of atheists. As nonbelievers and others gather in Washington, D.C., for the “Reason Rally,” here are key facts about atheists and their beliefs:
The share of Americans who identify as atheists has roughly doubled in the past several years. Pew Research Center’s 2014 Religious Landscape Study found that 3.1% of American adults say they are atheists when asked about their religious identity, up from 1.6% in a similarly large survey in 2007. An additional 4.0% of Americans call themselves agnostics, up from 2.4% in 2007.
Atheists, in general, are more likely to be male and younger than the overall population; 68% are men, and the median age of atheist adults in the U.S. is 34 (compared with 46 for all U.S. adults). Atheists also are more likely to be white (78% are Caucasian vs. 66% for the general public) and highly educated: About four-in-ten atheists (43%) have a college degree, compared with 27% of the general public.
Self-identified atheists tend to be aligned with the Democratic Party and with political liberalism. About two-thirds of atheists (69%) identify as Democrats (or lean in that direction), and a majority (56%) call themselves political liberals (compared with just one-in-ten who say they are conservatives). Atheists overwhelmingly favor same-sex marriage (92%) and legal abortion (87%). In addition, three-quarters (74%) say that government aid to the poor does more good than harm.
Although the literal definition of “atheist” is “a person who does not believe in the existence of a god or any gods,” according to the Merriam-Webster dictionary, 8% of those who call themselves atheists also say they believe in God or a universal spirit. Indeed, 2% say they are “absolutely certain” about the existence of God or a universal spirit. Alternatively, there are many people who fit the dictionary definition of “atheist” but do not call themselves atheists. About three times as many Americans say they do not believe in God or a universal spirit (9%) as say they are atheists (3%).
Unsurprisingly, more than nine-in-ten self-identified atheists say religion is not too or not at all important in their lives, and nearly all (97%) say they seldom or never pray. At the same time, many do not see a contradiction between atheism and pondering their place in the world. Three-in-ten (31%) say they feel a deep sense of spiritual peace and well-being at least weekly. A similar share (35%) often thinks about the meaning and purpose of life. And roughly half of all atheists (54%) frequently feel a deep sense of wonder about the universe, up from 37% in 2007. In fact, atheists are more likely than U.S. Christians to say they often feel a sense of wonder about the universe (54% vs. 45%).
Our Team Careers Clint Dashbord


XLR8's mission is to help small to mid-sized manafacturing companies stay competitive by implementing voice-controlled non-intrustive technology to assist them in accurately tracking the time it takes to complete work orders for their clients.
Users should care about this because this implementation of voice-controlled time tracking is a non-intrusive method of accurately determining how long it takes for manual work orders to be completed inside of manfacturing plants. While the product we're developing mainly caters to the manafacturing plants that aren't very large, our deliverable will be able to, by zone in the plant and using a worker's voice, be able to tell exactly how long a client's work order took to fix from beginning to end. By having this data available, companies and manafacturing sites can determine and define their financials accurately, allocate money and resources more effectively and, in the long run, save company resources.
A manafacturing plant such as the one below with different zones would benefit from the introduction of voice-assisted time-tracking technology. Because so many zones and work stations are dedicated to different components of the work order process, time tracking here would be instrumental in ensuring we know exactly how long each part of the process took.
Our voice-enabled time-tracking will be done through Alexa skills. We will be developing our Alexa skill and connecting it to a back-end database provided by Xemelgo, and ensuring that the information is stored properly with as minimal human interference as possible.
Anant Rajeev
Ali Rafiq
Ansul Sinha
Amogh Dave
Xemelgo delivers Industry 4.0 Smart Manufacturing solutions. Xemelgo combines cloud, mobile, AI, and IoT to save manufacturers millions of dollars by alerting them in real-time to emerging production issues. Xemelgo's sensor-fusion technology provides real-time visibility into inventory, work-in-progress, assets, and inter-facility shipments. Xemelgo's Intelligent Assistants automatically alert you to compliance violations, quality issues, inventory shortages, production bottlenecks, lost assets, and incomplete orders. Xemelgo offers a mobile-first solution that brings the right operational data, to the right person, at the right time - right on their mobile device.
This project is a part of the Capstone Project course at the University of Washington Information School The iSchool Capstone page can be found here.
Anant Rajeev<EMAIL_ADDRESS>Ali Rafiq<EMAIL_ADDRESS>Ansul Sinha<EMAIL_ADDRESS>Amogh Dave: amogh@uw.edu


Home
Poems
Scores
About Me
Recent NCAA Basketball Scores
Home
Score
Away
Score
Loyola IL
78
Kansas State
62
Florida State
54
Michigan
58
Texas Tech
59
Villanova
71
Duke
81
Kansas
85
Loyola IL
57
Michigan
69
Kansas
79
Villanova
95
Michigan
62
Villanova
79
(c) 2018 Shane Towe
Made with Pingendo


Safe mode and factory reset¶
If something goes wrong with the Thunderboard Sense when you are using it, you
can try to enter safe mode, which skips execution of boot.py
and main.py
.
If you have problems with the filesystem, or simply want to erase all the data, you can perform a factory reset of the filesystem.
Safe mode¶
To enter safe mode, perform the following steps:
- While the board is powered on, push down the two buttons on each side of the USB port.
- While keeping the buttons pushed down, press the reset button.
- The small LEDs on the front of the board will cycle through different configurations.
- Release both buttons when only the red LED is lit.
- You are now in safe mode
Factory reset of the filesystem¶
If the filesystem on the Thunderboard Sense gets corrupted, or there is
some code in either boot.py
or main.py
which causes problems, you can
reset the filesystem.
The procedure for resetting the filesystem is similar to the procedure for entering safe mode.
- While the board is powered on, push down the two buttons on each side of the USB port.
- While keeping the buttons pushed down, press the reset button.
- The small LEDs on the front of the board will cycle through different configurations.
- Release both buttons when both the red and the green LED is lit.
- You are now in safe mode


"The optimist sees the glass half full.
The pessimist sees the glass half empty.
The chemist see the glass completely full, half in the liquid state and half in the vapor state."


| 1 | package fr.sii.ogham.spring.sms; | |
| 2 | ||
| 3 | import java.util.List; | |
| 4 | ||
| 5 | import javax.validation.constraints.Min; | |
| 6 | ||
| 7 | import org.springframework.boot.context.properties.ConfigurationProperties; | |
| 8 | import org.springframework.boot.context.properties.NestedConfigurationProperty; | |
| 9 | ||
| 10 | import com.cloudhopper.smpp.SmppBindType; | |
| 11 | import com.cloudhopper.smpp.pdu.EnquireLink; | |
| 12 | ||
| 13 | @ConfigurationProperties("ogham.sms.cloudhopper") | |
| 14 | public class OghamCloudhopperProperties { | |
| 15 | /** | |
| 16 | * The system_id parameter is used to identify an ESME ( External Short | |
| 17 | * Message Entity) or an SMSC (Short Message Service Centre) at bind time. | |
| 18 | * An ESME system_id identifies the ESME or ESME agent to the SMSC. The SMSC | |
| 19 | * system_id provides an identification of the SMSC to the ESME. This is an | |
| 20 | * alias of ogham.sms.smpp.system-id. If both properties are defined, this | |
| 21 | * value is used. | |
| 22 | * | |
| 23 | */ | |
| 24 | private String systemId; | |
| 25 | /** | |
| 26 | * The password parameter is used by the SMSC (Short Message Service Centre) | |
| 27 | * to authenticate the identity of the binding ESME (External Short Message | |
| 28 | * Entity). The Service Provider may require ESME’s to provide a password | |
| 29 | * when binding to the SMSC. This password is normally issued by the SMSC | |
| 30 | * system administrator. The password parameter may also be used by the ESME | |
| 31 | * to authenticate the identity of the binding SMSC (e.g. in the case of the | |
| 32 | * outbind operation). This is an alias of ogham.sms.smpp.password. If both | |
| 33 | * properties are defined, this value is used. | |
| 34 | */ | |
| 35 | private String password; | |
| 36 | /** | |
| 37 | * The SMPP server host (IP or address).
 | |
| 38 | *
 | |
| 39 | * | |
| 40 | * This is an alias of ogham.sms.smpp.host. If both properties are defined, | |
| 41 | * this value is used. | |
| 42 | */ | |
| 43 | private String host; | |
| 44 | /** | |
| 45 | * The SMPP server port.
 | |
| 46 | *
 | |
| 47 | * | |
| 48 | * This is an alias of ogham.sms.smpp.port. If both properties are defined, | |
| 49 | * this value is used.
 | |
| 50 | *
 | |
| 51 | * | |
| 52 | * Default: 2775 | |
| 53 | */ | |
| 54 | private Integer port; | |
| 55 | /** | |
| 56 | * The version of the SMPP protocol.
 | |
| 57 | *
 | |
| 58 | * | |
| 59 | * Default: "3.4" | |
| 60 | */ | |
| 61 | private String interfaceVersion; | |
| 62 | /** | |
| 63 | * The bind command type.
 | |
| 64 | *
 | |
| 65 | * | |
| 66 | * This is an alias of ogham.sms.smpp.bind-type. If both properties are | |
| 67 | * defined, this value is used.
 | |
| 68 | * | |
| 69 | * Default: "TRANCEIVER" | |
| 70 | */ | |
| 71 | private SmppBindType bindType; | |
| 72 | /** | |
| 73 | * The system_type parameter is used to categorize the type of ESME that is | |
| 74 | * binding to the SMSC. Examples include “VMS” (voice mail system) and “OTA” | |
| 75 | * (over-the-air activation system). Specification of the system_type is | |
| 76 | * optional - some SMSC’s may not require ESME’s to provide this detail. In | |
| 77 | * this case, the ESME can set the system_type to NULL. The system_type | |
| 78 | * (optional) may be used to categorize the system, e.g., “EMAIL”, “WWW”, | |
| 79 | * etc.
 | |
| 80 | * | |
| 81 | * This is an alias of ogham.sms.smpp.system-type. If both properties are | |
| 82 | * defined, this value is used. | |
| 83 | */ | |
| 84 | private String systemType; | |
| 85 | @NestedConfigurationProperty | |
| 86 | private SessionProperties session = new SessionProperties(); | |
| 87 | @NestedConfigurationProperty | |
| 88 | private DataCodingSchemeProperties dataCodingScheme = new DataCodingSchemeProperties(); | |
| 89 | @NestedConfigurationProperty | |
| 90 | private EncoderProperties encoder = new EncoderProperties(); | |
| 91 | @NestedConfigurationProperty | |
| 92 | private UserDataProperties userData = new UserDataProperties(); | |
| 93 | @NestedConfigurationProperty | |
| 94 | private SplitProperties split = new SplitProperties(); | |
| 95 | ||
| 96 | public String getSystemId() { | |
| 97 |
1
1. getSystemId : replaced return value with "" for fr/sii/ogham/spring/sms/OghamCloudhopperProperties::getSystemId → SURVIVED |
return systemId; |
| 98 | } | |
| 99 | ||
| 100 | public void setSystemId(String systemId) { | |
| 101 | this.systemId = systemId; | |
| 102 | } | |
| 103 | ||
| 104 | public String getPassword() { | |
| 105 |
1
1. getPassword : replaced return value with "" for fr/sii/ogham/spring/sms/OghamCloudhopperProperties::getPassword → SURVIVED |
return password; |
| 106 | } | |
| 107 | ||
| 108 | public void setPassword(String password) { | |
| 109 | this.password = password; | |
| 110 | } | |
| 111 | ||
| 112 | public String getHost() { | |
| 113 |
1
1. getHost : replaced return value with "" for fr/sii/ogham/spring/sms/OghamCloudhopperProperties::getHost → SURVIVED |
return host; |
| 114 | } | |
| 115 | ||
| 116 | public void setHost(String host) { | |
| 117 | this.host = host; | |
| 118 | } | |
| 119 | ||
| 120 | public Integer getPort() { | |
| 121 |
2
1. getPort : replaced Integer return value with 0 for fr/sii/ogham/spring/sms/OghamCloudhopperProperties::getPort → KILLED 2. getPort : replaced Integer return value with 0 for fr/sii/ogham/spring/sms/OghamCloudhopperProperties::getPort → KILLED |
return port; |
| 122 | } | |
| 123 | ||
| 124 | public void setPort(Integer port) { | |
| 125 | this.port = port; | |
| 126 | } | |
| 127 | ||
| 128 | public SessionProperties getSession() { | |
| 129 |
2
1. getSession : replaced return value with null for fr/sii/ogham/spring/sms/OghamCloudhopperProperties::getSession → KILLED 2. getSession : replaced return value with null for fr/sii/ogham/spring/sms/OghamCloudhopperProperties::getSession → KILLED |
return session; |
| 130 | } | |
| 131 | ||
| 132 | public void setSession(SessionProperties session) { | |
| 133 | this.session = session; | |
| 134 | } | |
| 135 | ||
| 136 | public String getInterfaceVersion() { | |
| 137 |
1
1. getInterfaceVersion : replaced return value with "" for fr/sii/ogham/spring/sms/OghamCloudhopperProperties::getInterfaceVersion → SURVIVED |
return interfaceVersion; |
| 138 | } | |
| 139 | ||
| 140 | public SmppBindType getBindType() { | |
| 141 |
1
1. getBindType : replaced return value with null for fr/sii/ogham/spring/sms/OghamCloudhopperProperties::getBindType → SURVIVED |
return bindType; |
| 142 | } | |
| 143 | ||
| 144 | public void setBindType(SmppBindType bindType) { | |
| 145 | this.bindType = bindType; | |
| 146 | } | |
| 147 | ||
| 148 | public String getSystemType() { | |
| 149 |
1
1. getSystemType : replaced return value with "" for fr/sii/ogham/spring/sms/OghamCloudhopperProperties::getSystemType → SURVIVED |
return systemType; |
| 150 | } | |
| 151 | ||
| 152 | public void setSystemType(String systemType) { | |
| 153 | this.systemType = systemType; | |
| 154 | } | |
| 155 | ||
| 156 | public DataCodingSchemeProperties getDataCodingScheme() { | |
| 157 |
2
1. getDataCodingScheme : replaced return value with null for fr/sii/ogham/spring/sms/OghamCloudhopperProperties::getDataCodingScheme → KILLED 2. getDataCodingScheme : replaced return value with null for fr/sii/ogham/spring/sms/OghamCloudhopperProperties::getDataCodingScheme → KILLED |
return dataCodingScheme; |
| 158 | } | |
| 159 | ||
| 160 | public void setDataCodingScheme(DataCodingSchemeProperties dataCodingScheme) { | |
| 161 | this.dataCodingScheme = dataCodingScheme; | |
| 162 | } | |
| 163 | ||
| 164 | public EncoderProperties getEncoder() { | |
| 165 |
2
1. getEncoder : replaced return value with null for fr/sii/ogham/spring/sms/OghamCloudhopperProperties::getEncoder → KILLED 2. getEncoder : replaced return value with null for fr/sii/ogham/spring/sms/OghamCloudhopperProperties::getEncoder → KILLED |
return encoder; |
| 166 | } | |
| 167 | ||
| 168 | public void setEncoder(EncoderProperties encoder) { | |
| 169 | this.encoder = encoder; | |
| 170 | } | |
| 171 | ||
| 172 | public UserDataProperties getUserData() { | |
| 173 |
2
1. getUserData : replaced return value with null for fr/sii/ogham/spring/sms/OghamCloudhopperProperties::getUserData → KILLED 2. getUserData : replaced return value with null for fr/sii/ogham/spring/sms/OghamCloudhopperProperties::getUserData → KILLED |
return userData; |
| 174 | } | |
| 175 | ||
| 176 | public void setUserData(UserDataProperties userData) { | |
| 177 | this.userData = userData; | |
| 178 | } | |
| 179 | ||
| 180 | public void setInterfaceVersion(String interfaceVersion) { | |
| 181 | this.interfaceVersion = interfaceVersion; | |
| 182 | } | |
| 183 | ||
| 184 | public SplitProperties getSplit() { | |
| 185 |
2
1. getSplit : replaced return value with null for fr/sii/ogham/spring/sms/OghamCloudhopperProperties::getSplit → KILLED 2. getSplit : replaced return value with null for fr/sii/ogham/spring/sms/OghamCloudhopperProperties::getSplit → KILLED |
return split; |
| 186 | } | |
| 187 | ||
| 188 | public void setSplit(SplitProperties split) { | |
| 189 | this.split = split; | |
| 190 | } | |
| 191 | ||
| 192 | public static class SessionProperties { | |
| 193 | /** | |
| 194 | * A name for the session (used to name threads used by Cloudhopper). | |
| 195 | */ | |
| 196 | private String name; | |
| 197 | /** | |
| 198 | * Set the maximum amount of time (in milliseconds) to wait for the | |
| 199 | * success of a bind attempt to the SMSC.
 | |
| 200 | *
 | |
| 201 | * | |
| 202 | * Default: 5 seconds | |
| 203 | */ | |
| 204 | private Long bindTimeout; | |
| 205 | /** | |
| 206 | * Set the maximum amount of time (in milliseconds) to wait for a | |
| 207 | * establishing the connection.
 | |
| 208 | *
 | |
| 209 | * | |
| 210 | * Default: 10 seconds | |
| 211 | */ | |
| 212 | private Long connectTimeout; | |
| 213 | /** | |
| 214 | * Set the amount of time (milliseconds) to wait for an endpoint to | |
| 215 | * respond to a request before it expires.
 | |
| 216 | *
 | |
| 217 | * | |
| 218 | * Default: -1 (disabled) | |
| 219 | */ | |
| 220 | private Long requestExpiryTimeout; | |
| 221 | /** | |
| 222 | * Sets the amount of time (milliseconds) between executions of | |
| 223 | * monitoring the window for requests that expire. It's recommended that | |
| 224 | * this generally either matches or is half the value of | |
| 225 | * requestExpiryTimeout. Therefore, at worst a request would could take | |
| 226 | * up 1.5X the requestExpiryTimeout to clear out.
 | |
| 227 | *
 | |
| 228 | * | |
| 229 | * Default: -1 (disabled) | |
| 230 | */ | |
| 231 | private Long windowMonitorInterval; | |
| 232 | /** | |
| 233 | * Sets the maximum number of requests permitted to be outstanding | |
| 234 | * (unacknowledged) at a given time. Must be > 0.
 | |
| 235 | *
 | |
| 236 | * | |
| 237 | * Default: 1 | |
| 238 | */ | |
| 239 | @Min(0) | |
| 240 | private Integer windowSize; | |
| 241 | /** | |
| 242 | * Set the amount of time (milliseconds) to wait until a slot opens up | |
| 243 | * in the sendWindow.
 | |
| 244 | *
 | |
| 245 | * | |
| 246 | * Default: 1 minute | |
| 247 | * | |
| 248 | */ | |
| 249 | private Long windowWaitTimeout; | |
| 250 | /** | |
| 251 | * Set the maximum amount of time (in milliseconds) to wait for bytes to | |
| 252 | * be written when creating a new SMPP session.
 | |
| 253 | *
 | |
| 254 | * | |
| 255 | * Default: 0 (no timeout, for backwards compatibility) | |
| 256 | */ | |
| 257 | private Long writeTimeout; | |
| 258 | /** | |
| 259 | * Set the maximum amount of time (in milliseconds) to wait until a | |
| 260 | * valid response is received when a "submit" request is synchronously | |
| 261 | * sends to the remote endpoint. The timeout value includes both waiting | |
| 262 | * for a "window" slot, the time it takes to transmit the actual bytes | |
| 263 | * on the socket, and for the remote endpoint to send a response | |
| 264 | * back.
 | |
| 265 | *
 | |
| 266 | * | |
| 267 | * Default: 5 seconds | |
| 268 | */ | |
| 269 | private Long responseTimeout; | |
| 270 | /** | |
| 271 | * Set the maximum amount of time (in milliseconds) to wait until the | |
| 272 | * session is unbounded, waiting up to a specified period of | |
| 273 | * milliseconds for an unbind response from the remote endpoint. | |
| 274 | * Regardless of whether a proper unbind response was received, the | |
| 275 | * socket/channel is closed.
 | |
| 276 | *
 | |
| 277 | * | |
| 278 | * Default: 5 seconds | |
| 279 | */ | |
| 280 | private Long unbindTimeout; | |
| 281 | @NestedConfigurationProperty | |
| 282 | private ReuseSessionOptions reuseSession = new ReuseSessionOptions(); | |
| 283 | @NestedConfigurationProperty | |
| 284 | private KeepAliveOptions keepAlive = new KeepAliveOptions(); | |
| 285 | @NestedConfigurationProperty | |
| 286 | private ConnectRetryProperties connectRetry = new ConnectRetryProperties(); | |
| 287 | ||
| 288 | public String getName() { | |
| 289 |
1
1. getName : replaced return value with "" for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$SessionProperties::getName → SURVIVED |
return name; |
| 290 | } | |
| 291 | ||
| 292 | public void setName(String name) { | |
| 293 | this.name = name; | |
| 294 | } | |
| 295 | ||
| 296 | public Long getBindTimeout() { | |
| 297 |
1
1. getBindTimeout : replaced Long return value with 0L for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$SessionProperties::getBindTimeout → TIMED_OUT |
return bindTimeout; |
| 298 | } | |
| 299 | ||
| 300 | public void setBindTimeout(Long bindTimeout) { | |
| 301 | this.bindTimeout = bindTimeout; | |
| 302 | } | |
| 303 | ||
| 304 | public Long getConnectTimeout() { | |
| 305 |
1
1. getConnectTimeout : replaced Long return value with 0L for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$SessionProperties::getConnectTimeout → SURVIVED |
return connectTimeout; |
| 306 | } | |
| 307 | ||
| 308 | public void setConnectTimeout(Long connectTime) { | |
| 309 | this.connectTimeout = connectTime; | |
| 310 | } | |
| 311 | ||
| 312 | public Long getRequestExpiryTimeout() { | |
| 313 |
1
1. getRequestExpiryTimeout : replaced Long return value with 0L for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$SessionProperties::getRequestExpiryTimeout → SURVIVED |
return requestExpiryTimeout; |
| 314 | } | |
| 315 | ||
| 316 | public void setRequestExpiryTimeout(Long requestExpiryTimeout) { | |
| 317 | this.requestExpiryTimeout = requestExpiryTimeout; | |
| 318 | } | |
| 319 | ||
| 320 | public Long getWindowMonitorInterval() { | |
| 321 |
1
1. getWindowMonitorInterval : replaced Long return value with 0L for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$SessionProperties::getWindowMonitorInterval → SURVIVED |
return windowMonitorInterval; |
| 322 | } | |
| 323 | ||
| 324 | public void setWindowMonitorInterval(Long windowMonitorInterval) { | |
| 325 | this.windowMonitorInterval = windowMonitorInterval; | |
| 326 | } | |
| 327 | ||
| 328 | public Integer getWindowSize() { | |
| 329 |
1
1. getWindowSize : replaced Integer return value with 0 for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$SessionProperties::getWindowSize → TIMED_OUT |
return windowSize; |
| 330 | } | |
| 331 | ||
| 332 | public void setWindowSize(Integer windowSize) { | |
| 333 | this.windowSize = windowSize; | |
| 334 | } | |
| 335 | ||
| 336 | public Long getWindowWaitTimeout() { | |
| 337 |
1
1. getWindowWaitTimeout : replaced Long return value with 0L for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$SessionProperties::getWindowWaitTimeout → SURVIVED |
return windowWaitTimeout; |
| 338 | } | |
| 339 | ||
| 340 | public void setWindowWaitTimeout(Long windowWaitTimeout) { | |
| 341 | this.windowWaitTimeout = windowWaitTimeout; | |
| 342 | } | |
| 343 | ||
| 344 | public Long getWriteTimeout() { | |
| 345 |
1
1. getWriteTimeout : replaced Long return value with 0L for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$SessionProperties::getWriteTimeout → SURVIVED |
return writeTimeout; |
| 346 | } | |
| 347 | ||
| 348 | public void setWriteTimeout(Long writeTimeout) { | |
| 349 | this.writeTimeout = writeTimeout; | |
| 350 | } | |
| 351 | ||
| 352 | public Long getResponseTimeout() { | |
| 353 |
2
1. getResponseTimeout : replaced Long return value with 0L for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$SessionProperties::getResponseTimeout → KILLED 2. getResponseTimeout : replaced Long return value with 0L for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$SessionProperties::getResponseTimeout → KILLED |
return responseTimeout; |
| 354 | } | |
| 355 | ||
| 356 | public void setResponseTimeout(Long responseTimeout) { | |
| 357 | this.responseTimeout = responseTimeout; | |
| 358 | } | |
| 359 | ||
| 360 | public Long getUnbindTimeout() { | |
| 361 |
1
1. getUnbindTimeout : replaced Long return value with 0L for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$SessionProperties::getUnbindTimeout → SURVIVED |
return unbindTimeout; |
| 362 | } | |
| 363 | ||
| 364 | public void setUnbindTimeout(Long unbindTimeout) { | |
| 365 | this.unbindTimeout = unbindTimeout; | |
| 366 | } | |
| 367 | ||
| 368 | public ConnectRetryProperties getConnectRetry() { | |
| 369 |
2
1. getConnectRetry : replaced return value with null for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$SessionProperties::getConnectRetry → KILLED 2. getConnectRetry : replaced return value with null for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$SessionProperties::getConnectRetry → KILLED |
return connectRetry; |
| 370 | } | |
| 371 | ||
| 372 | public void setConnectRetry(ConnectRetryProperties connectRetry) { | |
| 373 | this.connectRetry = connectRetry; | |
| 374 | } | |
| 375 | ||
| 376 | public ReuseSessionOptions getReuseSession() { | |
| 377 |
2
1. getReuseSession : replaced return value with null for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$SessionProperties::getReuseSession → KILLED 2. getReuseSession : replaced return value with null for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$SessionProperties::getReuseSession → KILLED |
return reuseSession; |
| 378 | } | |
| 379 | ||
| 380 | public void setReuseSession(ReuseSessionOptions reuseSession) { | |
| 381 | this.reuseSession = reuseSession; | |
| 382 | } | |
| 383 | ||
| 384 | public KeepAliveOptions getKeepAlive() { | |
| 385 |
2
1. getKeepAlive : replaced return value with null for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$SessionProperties::getKeepAlive → KILLED 2. getKeepAlive : replaced return value with null for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$SessionProperties::getKeepAlive → KILLED |
return keepAlive; |
| 386 | } | |
| 387 | ||
| 388 | public void setKeepAlive(KeepAliveOptions keepAlive) { | |
| 389 | this.keepAlive = keepAlive; | |
| 390 | } | |
| 391 | ||
| 392 | } | |
| 393 | ||
| 394 | public static class ConnectRetryProperties { | |
| 395 | /** | |
| 396 | * Set the maximum number of attempts for establishing a | |
| 397 | * connection.
 | |
| 398 | *
 | |
| 399 | * | |
| 400 | * Default: 10 | |
| 401 | */ | |
| 402 | private Integer maxAttempts; | |
| 403 | /** | |
| 404 | * Set the delay between two attemps for establishing a connection (in | |
| 405 | * milliseconds).
 | |
| 406 | *
 | |
| 407 | * | |
| 408 | * Default: 5 seconds | |
| 409 | */ | |
| 410 | private Long delayBetweenAttempts; | |
| 411 | ||
| 412 | /** | |
| 413 | * Set the initial delay between two executions (in milliseconds). This | |
| 414 | * delay will be doubled for each try. | |
| 415 | */ | |
| 416 | private Long exponentialInitialDelay; | |
| 417 | ||
| 418 | /** | |
| 419 | * Set specific delays (in milliseconds) used for each new execution. If | |
| 420 | * there are more attempts than the configured delays, the last delay is | |
| 421 | * used for remaining attempts. | |
| 422 | */ | |
| 423 | private List<Long> perExecutionDelays; | |
| 424 | ||
| 425 | /** | |
| 426 | * Retry several times with a fixed delay between each try (no matter | |
| 427 | * how long the execution of the action lasts) until the maximum | |
| 428 | * attempts is reached. The next execution date is based on the | |
| 429 | * execution start date of the first execution.
 | |
| 430 | *
 | |
| 431 | * Set the interval between two executions (in milliseconds). | |
| 432 | */ | |
| 433 | private Long executionInterval; | |
| 434 | ||
| 435 | public Integer getMaxAttempts() { | |
| 436 |
1
1. getMaxAttempts : replaced Integer return value with 0 for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$ConnectRetryProperties::getMaxAttempts → SURVIVED |
return maxAttempts; |
| 437 | } | |
| 438 | ||
| 439 | public void setMaxAttempts(Integer maxAttempts) { | |
| 440 | this.maxAttempts = maxAttempts; | |
| 441 | } | |
| 442 | ||
| 443 | public Long getDelayBetweenAttempts() { | |
| 444 |
1
1. getDelayBetweenAttempts : replaced Long return value with 0L for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$ConnectRetryProperties::getDelayBetweenAttempts → SURVIVED |
return delayBetweenAttempts; |
| 445 | } | |
| 446 | ||
| 447 | public void setDelayBetweenAttempts(Long delayBetweenAttempts) { | |
| 448 | this.delayBetweenAttempts = delayBetweenAttempts; | |
| 449 | } | |
| 450 | ||
| 451 | public Long getExponentialInitialDelay() { | |
| 452 |
1
1. getExponentialInitialDelay : replaced Long return value with 0L for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$ConnectRetryProperties::getExponentialInitialDelay → SURVIVED |
return exponentialInitialDelay; |
| 453 | } | |
| 454 | ||
| 455 | public void setExponentialInitialDelay(Long exponentialInitialDelay) { | |
| 456 | this.exponentialInitialDelay = exponentialInitialDelay; | |
| 457 | } | |
| 458 | ||
| 459 | public List<Long> getPerExecutionDelays() { | |
| 460 |
1
1. getPerExecutionDelays : replaced return value with Collections.emptyList for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$ConnectRetryProperties::getPerExecutionDelays → SURVIVED |
return perExecutionDelays; |
| 461 | } | |
| 462 | ||
| 463 | public void setPerExecutionDelays(List<Long> perExecutionDelays) { | |
| 464 | this.perExecutionDelays = perExecutionDelays; | |
| 465 | } | |
| 466 | ||
| 467 | public Long getExecutionInterval() { | |
| 468 |
1
1. getExecutionInterval : replaced Long return value with 0L for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$ConnectRetryProperties::getExecutionInterval → SURVIVED |
return executionInterval; |
| 469 | } | |
| 470 | ||
| 471 | public void setExecutionInterval(Long executionInterval) { | |
| 472 | this.executionInterval = executionInterval; | |
| 473 | } | |
| 474 | ||
| 475 | } | |
| 476 | ||
| 477 | public static class KeepAliveOptions { | |
| 478 | /** | |
| 479 | * Enable or disable sending of {@link EnquireLink} messages to keep the | |
| 480 | * session alive.
 | |
| 481 | *
 | |
| 482 | * | |
| 483 | * Default: false | |
| 484 | */ | |
| 485 | private Boolean enable; | |
| 486 | /** | |
| 487 | * The delay (in milliseconds) between two {@link EnquireLink} | |
| 488 | * messages.
 | |
| 489 | *
 | |
| 490 | * | |
| 491 | * Default: 30 seconds | |
| 492 | */ | |
| 493 | private Long requestInterval; | |
| 494 | /** | |
| 495 | * The maximum amount of time (in milliseconds) to wait for receiving a | |
| 496 | * response from the server to an {@link EnquireLink} request.
 | |
| 497 | *
 | |
| 498 | * | |
| 499 | * Default: 10 seconds | |
| 500 | */ | |
| 501 | private Long responseTimeout; | |
| 502 | /** | |
| 503 | * Connect to the server directly when the client is ready (if true). | |
| 504 | * Otherwise, the connection is done when the first message is | |
| 505 | * sent.
 | |
| 506 | *
 | |
| 507 | * | |
| 508 | * This may be useful to avoid a latency for the first message.
 | |
| 509 | *
 | |
| 510 | * | |
| 511 | * If connection fails at startup, then a new attempt is done when first | |
| 512 | * message is sent.
 | |
| 513 | *
 | |
| 514 | * | |
| 515 | * Default: false | |
| 516 | */ | |
| 517 | private Boolean connectAtStartup; | |
| 518 | /** | |
| 519 | * The maximum number of consecutive EnquireLink requests that end in | |
| 520 | * timeout to consider that a new session is required.
 | |
| 521 | *
 | |
| 522 | * | |
| 523 | * Default: 3 | |
| 524 | */ | |
| 525 | private Integer maxConsecutiveTimeouts; | |
| 526 | ||
| 527 | public Boolean getEnable() { | |
| 528 |
3
1. getEnable : replaced Boolean return with False for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$KeepAliveOptions::getEnable → SURVIVED 2. getEnable : replaced Boolean return with True for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$KeepAliveOptions::getEnable → SURVIVED 3. getEnable : replaced Boolean return with True for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$KeepAliveOptions::getEnable → TIMED_OUT |
return enable; |
| 529 | } | |
| 530 | ||
| 531 | public void setEnable(Boolean enable) { | |
| 532 | this.enable = enable; | |
| 533 | } | |
| 534 | ||
| 535 | public Long getRequestInterval() { | |
| 536 |
1
1. getRequestInterval : replaced Long return value with 0L for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$KeepAliveOptions::getRequestInterval → SURVIVED |
return requestInterval; |
| 537 | } | |
| 538 | ||
| 539 | public void setRequestInterval(Long enquireLinkInterval) { | |
| 540 | this.requestInterval = enquireLinkInterval; | |
| 541 | } | |
| 542 | ||
| 543 | public Long getResponseTimeout() { | |
| 544 |
1
1. getResponseTimeout : replaced Long return value with 0L for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$KeepAliveOptions::getResponseTimeout → SURVIVED |
return responseTimeout; |
| 545 | } | |
| 546 | ||
| 547 | public void setResponseTimeout(Long enquireLinkTimeout) { | |
| 548 | this.responseTimeout = enquireLinkTimeout; | |
| 549 | } | |
| 550 | ||
| 551 | public Boolean getConnectAtStartup() { | |
| 552 |
2
1. getConnectAtStartup : replaced Boolean return with False for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$KeepAliveOptions::getConnectAtStartup → SURVIVED 2. getConnectAtStartup : replaced Boolean return with True for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$KeepAliveOptions::getConnectAtStartup → SURVIVED |
return connectAtStartup; |
| 553 | } | |
| 554 | ||
| 555 | public void setConnectAtStartup(Boolean connectAtStartup) { | |
| 556 | this.connectAtStartup = connectAtStartup; | |
| 557 | } | |
| 558 | ||
| 559 | public Integer getMaxConsecutiveTimeouts() { | |
| 560 |
1
1. getMaxConsecutiveTimeouts : replaced Integer return value with 0 for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$KeepAliveOptions::getMaxConsecutiveTimeouts → SURVIVED |
return maxConsecutiveTimeouts; |
| 561 | } | |
| 562 | ||
| 563 | public void setMaxConsecutiveTimeouts(Integer maximumConsecutiveTimeouts) { | |
| 564 | this.maxConsecutiveTimeouts = maximumConsecutiveTimeouts; | |
| 565 | } | |
| 566 | } | |
| 567 | ||
| 568 | public static class ReuseSessionOptions { | |
| 569 | /** | |
| 570 | * Enable or disable the reuse the same session (if possible) for | |
| 571 | * sending messages.
 | |
| 572 | *
 | |
| 573 | * | |
| 574 | * Default: false | |
| 575 | */ | |
| 576 | private Boolean enable; | |
| 577 | /** | |
| 578 | * To check if the session is still alive, an {@link EnquireLink} | |
| 579 | * request is sent. The request is sent just before sending the | |
| 580 | * message.
 | |
| 581 | *
 | |
| 582 | * | |
| 583 | * This is the time (in milliseconds) to wait before considering last | |
| 584 | * {@link EnquireLink} response as expired (need to send a new | |
| 585 | * {@link EnquireLink} request to check if session is still | |
| 586 | * alive).
 | |
| 587 | *
 | |
| 588 | * | |
| 589 | * This is needed to prevent sending {@link EnquireLink} request every | |
| 590 | * time a message has to be sent. Instead it considers that the time | |
| 591 | * elapsed between now and the last {@link EnquireLink} response (or the | |
| 592 | * last sent message) is not enough so a new {@link EnquireLink} is not | |
| 593 | * necessary to check if session is still alive.
 | |
| 594 | *
 | |
| 595 | * | |
| 596 | * Set to 0 or null to always check session before sending | |
| 597 | * message.
 | |
| 598 | *
 | |
| 599 | * | |
| 600 | * Default: 30 seconds | |
| 601 | */ | |
| 602 | private Long lastInteractionExpirationDelay; | |
| 603 | /** | |
| 604 | * To check if the session is still alive, an {@link EnquireLink} | |
| 605 | * request is sent. This request may fail since the session may be | |
| 606 | * killed by the server. The timeout ensures that the client doesn't | |
| 607 | * wait too long for a response that may never come.
 | |
| 608 | *
 | |
| 609 | * | |
| 610 | * The maximum amount of time (in milliseconds) to wait for receiving a | |
| 611 | * response from the server to an {@link EnquireLink} request.
 | |
| 612 | *
 | |
| 613 | * | |
| 614 | * Default: 10 seconds | |
| 615 | */ | |
| 616 | private Long responseTimeout; | |
| 617 | ||
| 618 | public Boolean getEnable() { | |
| 619 |
2
1. getEnable : replaced Boolean return with False for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$ReuseSessionOptions::getEnable → SURVIVED 2. getEnable : replaced Boolean return with True for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$ReuseSessionOptions::getEnable → SURVIVED |
return enable; |
| 620 | } | |
| 621 | ||
| 622 | public void setEnable(Boolean enable) { | |
| 623 | this.enable = enable; | |
| 624 | } | |
| 625 | ||
| 626 | public Long getLastInteractionExpirationDelay() { | |
| 627 |
1
1. getLastInteractionExpirationDelay : replaced Long return value with 0L for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$ReuseSessionOptions::getLastInteractionExpirationDelay → SURVIVED |
return lastInteractionExpirationDelay; |
| 628 | } | |
| 629 | ||
| 630 | public void setLastInteractionExpirationDelay(Long delay) { | |
| 631 | this.lastInteractionExpirationDelay = delay; | |
| 632 | } | |
| 633 | ||
| 634 | public Long getResponseTimeout() { | |
| 635 |
1
1. getResponseTimeout : replaced Long return value with 0L for fr/sii/ogham/spring/sms/OghamCloudhopperProperties$ReuseSessionOptions::getResponseTimeout → SURVIVED |
return responseTimeout; |
| 636 | } | |
| 637 | ||
| 638 | public void setResponseTimeout(Long enquireLinkTimeout) { | |
| 639 | this.responseTimeout = enquireLinkTimeout; | |
| 640 | } | |
| 641 | } | |
| 642 | } | |
Mutations | ||
| 97 |
1.1 |
|
| 105 |
1.1 |
|
| 113 |
1.1 |
|
| 121 |
1.1 2.2 |
|
| 129 |
1.1 2.2 |
|
| 137 |
1.1 |
|
| 141 |
1.1 |
|
| 149 |
1.1 |
|
| 157 |
1.1 2.2 |
|
| 165 |
1.1 2.2 |
|
| 173 |
1.1 2.2 |
|
| 185 |
1.1 2.2 |
|
| 289 |
1.1 |
|
| 297 |
1.1 |
|
| 305 |
1.1 |
|
| 313 |
1.1 |
|
| 321 |
1.1 |
|
| 329 |
1.1 |
|
| 337 |
1.1 |
|
| 345 |
1.1 |
|
| 353 |
1.1 2.2 |
|
| 361 |
1.1 |
|
| 369 |
1.1 2.2 |
|
| 377 |
1.1 2.2 |
|
| 385 |
1.1 2.2 |
|
| 436 |
1.1 |
|
| 444 |
1.1 |
|
| 452 |
1.1 |
|
| 460 |
1.1 |
|
| 468 |
1.1 |
|
| 528 |
1.1 2.2 3.3 |
|
| 536 |
1.1 |
|
| 544 |
1.1 |
|
| 552 |
1.1 2.2 |
|
| 560 |
1.1 |
|
| 619 |
1.1 2.2 |
|
| 627 |
1.1 |
|
| 635 |
1.1 |


My Gregorc Thinking Style
According to my test results from this quiz regarding Gregorc Thiking Styles. I lean towards the Concrete Random spectrum.
As me, you may wonder what the heck does that even mean. Well, after researching a bit about these thinking styles I found some common adjectives used to describe a Concrete Random thinker:
- Experimenter
- Creative
- Self-Directed
- Divergent
That rang true to me. I enjoy experimenting, solving problems creatively with a hands-on approach, taking risks, following what I find interesting, and seeing as many options to solve a problem. However, at first I didn't really think much of that description because in a way it felt generic and a bit similar to many astrology readings. That is until I reached the point where I learned about the struggles of a Concrete Random thinker:
- Being told what to do and how to do it
- Being told it can't be done
- Strict, inflexible routines
- Formalities, formal reports, pomp, fads
OUCH!
Well, as much as it may hurt, those, as well as other similar ones, rang rather true to me. During this Phase 0 of DBC, if there's something I've struggled with is following a set of steps or requirements, specially when I consider them unnecessary. My other big struggle has been the "reflections" we have to do after MOST challenges (average of 8 per week I think, so this being week 3, we're talking about 24 reflections... sheesh). All of these are formalities and they seem to follow some pretty strict guidelines. This has probably been THE hardest part for me to accept during Phase 0.
I recently also learned about Fixed and Growth Mindset. I believe that I am a Growth Mindset individual because I embrace challenges because I believe in effort as the path to mastery. Believing too much in raw talent seems to be the perfect way to stay within the same proficiency level. Perhaps this is my Concrete Random side speaking for me but I believe I can figure out how to deal with my struggles. Specially now that I've become aware of them thanks to this test and following up with research. I will definitely always avoid any kind of inflexible routine or ostentatious formality. That's seems to be hardwired into me. However, that doesn't mean I won't be able to pretend for a little while that those are normal to me.


Blender 2.8 Texturing with Alpha Masking
jayanam writes:
Here is a new Blender 2.8 texturing tutorial in which I show how to map an image to particular UV islands of a mesh and the other UV islands to transparent parts so that you can see the color of the principled shader through the image as a backcolor of the mesh.


Metadata
- The "Rounds to finish" option has been clarified as "Phases to finish" - it refers to the number of times the player clicks the continue button, not the number of game rounds.
Costumes
- Enforces the rule that event costumes cannot also be set to online.
Banter Wizard
- Removed the option to view all filtered lines that could play towards your character. It was confusing new developers into thinking it was okay to respond to those lines, and also didn't work properly in the first place.
Miscellaneous
- Re-adds the tag list to behaviour.xml for now, as it was causing problems with the SPNATI Utilities Bot. tags.xml is still generated, but a duplicate tag list is written to behaviour.xml.
Bug Fixes
- Prevents excessively long "Import Lineup" codes from being cut off.
- Characters with "display names" will now show up as those names within the CE.
- The per-case Add Tags and Remove Tags lists will properly save when emptied of all items.
- The human player is no longer considered to have 0 layers.


I haven’t forgotten about PandoraBoy, but I’ve been very busy these last couple of weeks. I’m now a full-time Mac programmer, and so I’ve been spending most of my time doing “real” hacking. Next week I go to Big Nerd Ranch for training, so I’ll take PB with me to hack on.
I just built my first kernel extension and begun trying it out. Kernel programming is a whole different world… When it doesn’t work, Gray Screen/Reboot. I’m glad that (a) OSX boots quick, and (b) I have a lot of computers…
I’m trying to waste system resources in a guaranteed way. I have these boxes with 2G of memory, and need to test problems that show up on 512MB machines and I don’t have any 512MB sticks….
As I study Mac OS X Advanced Programming, I think I may be able to do this with mlock() and not have to use a kext. I’ve read other things that suggest that mlock() won’t work the way I want in a user app. So testing is in my future.


Integration¶
-
galsim.integ.
int1d
(func, min, max, rel_err=1e-06, abs_err=1e-12)[source]¶ Integrate a 1-dimensional function from min to max.
Example usage:
>>> def func(x): return x**2 >>> galsim.integ.int1d(func, 0, 1) 0.33333333333333337 >>> galsim.integ.int1d(func, 0, 2) 2.666666666666667 >>> galsim.integ.int1d(func, -1, 1) 0.66666666666666674
- Parameters
func – The function to be integrated. y = func(x) should be valid.
min – The lower end of the integration bounds (anything < -1.e10 is treated as negative infinity).
max – The upper end of the integration bounds (anything > 1.e10 is treated as positive infinity).
rel_err – The desired relative error [default: 1.e-6]
abs_err – The desired absolute error [default: 1.e-12]
- Returns
the value of the integral.
-
galsim.integ.
midpt
(fvals, x)[source]¶ Midpoint rule for integration.
- Parameters
fvals – Samples of the integrand
x – Locations at which the integrand was sampled.
- Returns
midpoint rule approximation of the integral.
-
galsim.integ.
trapz
(func, min, max, points=10000)[source]¶ Simple wrapper around ‘numpy.trapz’ to take function and limits as inputs.
Example usage:
>>> def func(x): return x**2 >>> galsim.integ.trapz(func, 0, 1) 0.33333333500033341 >>> galsim.integ.trapz(func, 0, 1, 1e6) 0.33333333333349996 >>> galsim.integ.trapz(func, 0, 1, np.linspace(0, 1, 1e3)) 0.33333350033383402
- Parameters
func – The function to be integrated. y = func(x) should be valid.
min – The lower end of the integration bounds.
max – The upper end of the integration bounds.
points – If integer, the number of points to sample the integrand. If array-like, then the points to sample the integrand at. [default: 1000].
-
galsim.integ.
midptRule
(f, xs)[source]¶ Midpoint rule for integration.
- Parameters
f – Function to integrate.
xs – Locations at which to evaluate f.
- Returns
Midpoint rule approximation to the integral.
-
galsim.integ.
trapzRule
(f, xs)[source]¶ Trapezoidal rule for integration.
- Parameters
f – Function to integrate.
xs – Locations at which to evaluate f.
- Returns
Trapezoidal rule approximation to the integral.
-
class
galsim.integ.
ImageIntegrator
[source]¶ A base class for integrators used by
ChromaticObject
to integrate the drawn images over wavelengthh using aBandpass
as a weight function.-
__call__
(evaluateAtWavelength, bandpass, image, drawImageKwargs, doK=False)[source]¶ - Parameters
evaluateAtWavelength – Function that returns a monochromatic surface brightness profile as a function of wavelength.
bandpass –
Bandpass
object representing the filter being imaged through.image –
Image
used to set size and scale of outputdrawImageKwargs – dict with other kwargs to send to
ChromaticObject.drawImage
function.doK – Integrate up results of
ChromaticObject.drawKImage
instead of results ofChromaticObject.drawImage
. [default: False]
- Returns
the result of integral as an
Image
-
-
class
galsim.integ.
SampleIntegrator
(rule)[source]¶ Bases:
galsim.integ.ImageIntegrator
Create a chromatic surface brightness profile integrator, which will integrate over wavelength using a
Bandpass
as a weight function.This integrator will evaluate the integrand only at the wavelengths in
bandpass.wave_list
. See ContinuousIntegrator for an integrator that evaluates the integrand at a given number of points equally spaced apart.- Parameters
rule –
Which integration rule to apply to the wavelength and monochromatic surface brightness samples. Options include:
galsim.integ.midptRule: Use the midpoint integration rule
galsim.integ.trapzRule: Use the trapezoidal integration rule
-
class
galsim.integ.
ContinuousIntegrator
(rule, N=250, use_endpoints=True)[source]¶ Bases:
galsim.integ.ImageIntegrator
Create a chromatic surface brightness profile integrator, which will integrate over wavelength using a
Bandpass
as a weight function.This integrator will evaluate the integrand at a given number
N
of equally spaced wavelengths over the interval defined by bandpass.blue_limit and bandpass.red_limit. See SampleIntegrator for an integrator that only evaluates the integrand at the predefined set of wavelengths inbandpass.wave_list
.- Parameters
rule –
Which integration rule to apply to the wavelength and monochromatic surface brightness samples. Options include:
galsim.integ.midptRule: Use the midpoint integration rule
galsim.integ.trapzRule: Use the trapezoidal integration rule
N – Number of equally-wavelength-spaced monochromatic surface brightness samples to evaluate. [default: 250]
use_endpoints – Whether to sample the endpoints
bandpass.blue_limit
andbandpass.red_limit
. This should probably be True for a rule like numpy.trapz, which explicitly samples the integration limits. For a rule like the midpoint rule, however, the integration limits are not generally sampled, (only the midpoint between each integration limit and its nearest interior point is sampled), thususe_endpoints
should be set to False in this case. [default: True]