Vision and objectives
Team vision
To change government to serve people better, all major departments will:
- conduct design research that informs key services (and related policy) monthly,
- in a robust, deliberate, and ethical way,
- that results in changes to service delivery and governing policy.
This vision guides the objectives we set and key decisions we make.
Objectives
Each quarter we (like all teams at CDS) set objectives and key results (or OKRs). Objectives are overarching goals. Key results are concrete manifestations of each objective. Read more about the origin of OKRs from Google.
Current quarter objectives
- Lead research that surfaces the needs of all users, including people whose primary language is French and people who have disabilities.
- Increasing user research capabilities of CDS & Partners to take collective accountability for improving user experience of services.
- Ensure key product development decisions are grounded in research.
- Prepare our research operation to meet the needs of several new product teams.
We note progress on key results weekly and score them monthly. Watch our progress in the quarter 4 OKR progress tracker.
Previous quarter objectives
How we set objectives quarterly
- At the end of each quarter, we have a team retreat where:
- we score the last quarter’s objectives and key results. As a team, we give each key result a score between 0 and 1.
- we reflect on (or “retro”) the last quarter.
- team members propose possible objectives for the coming quarter and we vote on them.
- assign a “lead” to each of our objectives
- Each objective lead then drafts a set of key results for that objective. They work with Colin and the team to get feedback and objectives.
- Then, the whole team meets with Aaron (chief executive officer) and Ross (head of delivery). We review last quarter’s scores and this quarter’s feedback.
- Colin then loads up an OKR tracking spreadsheet like this one for us to track progress.
- Last updated by Colin on March 14, 2019


§190-5 Penalty. (a) Any person violating this chapter, any rule adopted pursuant thereto, or the terms and conditions of any permit issued under section 190-4, shall be guilty of a petty misdemeanor and punished as provided in subsections (b) and (c).
(b) The punishment, in addition to any other penalties, shall be a fine of not less than:
(1) $250 for a first offense;
(2) $500 for a second offense; and
(3) $1,000 for a third or subsequent offense.
(c) The court may require the defendant to complete an aquatic resources educational class administered by the department of land and natural resources in addition to or in lieu of paying all or any part of any monetary fine authorized by this section.
(d) The court may allow the defendant to perform community service as administered by the department of land and natural resources in lieu of paying any monetary fine authorized by this section. [L 1955, c 192, §8; RL 1955, §21-137; HRS §190-5; am L 1981, c 16, §4; am L 1999, c 195, §9; am L 2016, 67, §3]
Cross References
General administrative penalties, see §187A-12.5.


ilasm(1) ilasm(1) NAME ilasm, ilasm2 - Mono IL assembler SYNOPSIS ilasm [option] [source-files] ilasm2 [option] [source-files] DESCRIPTION ilasm is the Mono ILAsm assembler. You can pass one or more options to drive the compiler, and a set of source files. Use ilasm to generate 1.0 assemblies and use ilasm2 to assemble programs that use the 2.0 features (generics). The Mono ILAsm assembler accepts options starting with / or - for mosted options. The Mono ILAsm assembler generates images (.exe and .dll files) that con‐ tain CIL byte code that can be executed by any system that implemented a Common Language Infrastructure virtual machine. OPTIONS /output:<file_name> Specify the output file name. /exe Generate an exe /dll Generate a library /scan_only Just scan the IL code and display tokens. /show_tokens Show tokens as they are parsed. /show_method_def Display method information when a method is defined. /show_method_ref Display method information when a method is referenced /key:KEYFILE Strongname (sign) the output assembly using the key pair present in the specified strong name key file (snk). A full key pair is required (i.e. delay signing is done using a .publickey directive in the sources). /key:@CONTAINER Strongname (sign) the output assembly using the key pair present in the specified container. --about Display information about ilasm --version Display ilasm version SEE ALSO mono(1),mcs(1) COPYRIGHT Copyright (C) 2004, 2007 Novell, Inc (http://www.novell.com) MAILING LISTS Visit http://lists.ximian.com/mailman/listinfo/mono-devel-list for details. WEB SITE Visit: http://www.mono-project.com for details ilasm(1)


This site uses no cookies and performs no tracking. Various calculators are provided to perform certain analyses, though none of this information is ever saved. Nearly all of the calculations are performed without ever leaving your machine. There is some logging (i.e., diagnostic) performed by the server host, though this information is necessary for regular functioning and is regularly disposed over within the shortest intervals permitted.
SQAB maintains an active listserv with over 400 members. Prospective members may access this resource by consulting the following webpage:
https://mailmanlists.us/mailman/listinfo/sqabFrequently Asked Questions:
Why is there another new listserv?
The prior MailMan listserv hosting company no longer operates. Your settings and contact information has been migrated to the new location.
How does the SQAB listserv work?
How is this listserv different?
The new listserv is the same as the previous. MailMan does not require an account with Yahoo or any other third party. Rather, you simply use an email of your choice and select a password. It is good to note that MailMan suggests avoiding the use of ‘valuable’ passwords. This is because password changes are sent via email and this is not a secure process (i.e., do not use a password also used with sensitive accounts).
The MailMan service allows readers to (optionally) receive updates in the form of ‘digests.’ Digests are a way to get updates from the listserv without receiving dozens of updates in the span of a day. That is, a single email digest will provide updates to users if so desired. Digests are generally preferred by users who do not wish to be receive a notification on their phone or email client following every single interaction on the listserv (most users do opt for a digest to avoid this very issue).
Various features exist beyond those explicitly noted here and users are encouraged to review these settings to customize their individual settings to best match their preferences.
MailMan has a template-based manner of sending emails and this has a high likelihood of being picked up as SPAM (i.e., it can look like unsolicited messaging. As a result, we suggest you immediately whitelist this sender from your email client’s SPAM filtering.
Getting Started:
Current Listserv Members
You will be sent an invitation to create a password the week before Yahoo Groups closes (12/8/20). You will not need to create a new account.
Prospective Listserv Members
Those interested in participating in the listserv may visit the listserv page for information on how to apply to be included on the listserv: https://mailmanlists.us/mailman/listinfo/sqab


--- title: Beautiful New Blooms date: 2013-06-25 00:00:00 -06:00 categories: - whats-blooming layout: post blog-banner: whats-blooming-now-summer.jpg post-date: June 25, 2013 post-time: 3:19 PM blog-image: wbn-default.jpg ---
Bigflower Self-heal Prunella grandiflora 'Pink Loveliness'
is creating a lovely carpet of pink blooms in the Terrance Gardens.
Young Lady Smoke Tree Cotinus coggygria 'Young Lady'
creates an airy display in the Rose Garden.
Sticky Jerusalem Sage Phlomis russeliana
flower stalks make a dramatic statement in the Fragrance Garden.
Dwarf Elderberry Sambucus ebulus
looms are just beginning to open in the Medicinal Garden.
Goldflame Honeysuckle Lonicera x heckrottii 'Goldflame'
near the Water Pavillion.
Urashima-so Arisaema thunbergii ssp. urashima
is a striking new addition to the Herb Garden.
Breadseed Poppy Papaver somniferum 'Zahir'
has just opened its first bloom in the Garden.


4 writes to Commands
System.Management.Automation (4)
engine\Modules\AnalysisCache.cs (4)
146
Commands
= result,
400
Commands
= result,
565
Commands
= exportedCommands,
1017
Commands
= commands,
3 references to Commands
System.Management.Automation (3)
engine\Modules\AnalysisCache.cs (3)
54
return moduleCacheEntry.
Commands
;
437
return moduleCacheEntry.
Commands
;
518
exportedCommands = moduleCacheEntry.
Commands
;


Links
Orientation Information: |
Academics: |
Engineering: |
Engineering Projects: |
Outside of Engineering: |
Orientation Information: |
Academics: |
Engineering: |
Engineering Projects: |
Outside of Engineering: |


Beta This is a test version of the layout of this page. Take the survey to help us improve it
Guidance
Guidance on how independent schools should support pupils' spiritual, moral, social and cultural (SMSC) development.
This is for:
It applies to:
You should read both documents.
The first document helps you to understand what to do to support the spiritual, moral, social and cultural ( SMSC ) development of pupils. This is a standard of quality in education contained in Schedule 1, Part 2 of the Education (Independent School Standards) (England) Regulations 2010 .
The second document updates the guidance. The update concerns an amendment to the SMSC standard by the Education (Independent School Standards) (England) (Amendment) Regulations 2014 . It means you should actively promote SMSC values.


The /%1$s/
endpoint
Security
When your Jenkins is secured, you can use HTTP BASIC authentication to authenticate remote API requests. See Authenticating scripted clients for more details.
Cross Site Request Forgery (CSRF) protection
If your Jenkins uses the "Prevent Cross Site Request Forgery exploits" security option (which it should), when you make a POST request, you have to send a CSRF protection token as an HTTP request header. See CSRF Protection for more details.
WARNING
This endpoint SHOULD be reachable only through a secure channel.
Build commands
The following build commands are available to POST to:
| Name |
Path |
Sample payload |
%2$s
Example
Suppose we have a secured Jenkins server at %3$s
, a dedicated Remote Trigger user named remote
that has an API Token of 92e9d8998a8c005697d252f09a2a311b
and the following payload.json
file:
{
"parameter":
[
{"name":"id","value":"123"},
{"name":"verbosity","value":"high"}
]
}
The following example demonstrates a GET to the /crumbIssuer
endpoint to retrieve a header and then a POST to the ping
command for the job named JOB_NAME using the curl tool:
crumb=$(curl '%3$scrumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)' --user remote:92e9d8998a8c005697d252f09a2a311b)
curl --request POST %3$s%1$s/ping/JOB_NAME --data-urlencode<EMAIL_ADDRESS>--user remote:92e9d8998a8c005697d252f09a2a311b --header "$crumb"
The console output should look like the following when the ping
command from the %1$s
endpoint returns the provided payload, formatted for compactness:
{"parameter":[{"name":"id","value":"123"},{"name":"verbosity","value":"high"}]}


Version ()
Written by
@dzt
SSH ID Path
Browse…
SSH Passphrase
Digital Ocean SSH Key Name
Digital Ocean API Key
Save


Stores options for multiple solvers.
This interface does not do any verification of solver parameters. It does not even verify that the specified solver exists. Use this only when you have particular knowledge of what solver is being invoked, and exactly what tuning is required.
Supported solver names/options:
"SNOPT" – Parameter names and values as specified in SNOPT User's Guide section 7.7 "Description of the optional parameters", used as described in section 7.5 for snSet(). The SNOPT user guide can be obtained from https://web.stanford.edu/group/SOL/guides/sndoc7.pdf
"IPOPT" – Parameter names and values as specified in IPOPT users guide section "Options Reference" http://www.coin-or.org/Ipopt/documentation/node40.html
"GUROBI" – Parameter name and values as specified in Gurobi Reference Manual, section 10.2 "Parameter Descriptions" https://www.gurobi.com/documentation/9.0/refman/parameters.html
"SCS" – Parameter name and values as specified in the struct SCS_SETTINGS in SCS header file https://github.com/cvxgrp/scs/blob/master/include/scs.h Note that the SCS code on github master might be more up-to-date than the version used in Drake.
"MOSEK" – Parameter name and values as specified in Mosek Reference https://docs.mosek.com/9.0/capi/parameters.html
|
| | SolverOptions ()=default |
| |
| void | SetOption (const SolverId &solver_id, const std::string &solver_option, double option_value) |
| |
| void | SetOption (const SolverId &solver_id, const std::string &solver_option, int option_value) |
| |
| void | SetOption (const SolverId &solver_id, const std::string &solver_option, const std::string &option_value) |
| |
| void | SetOption (CommonSolverOption key, const std::variant< double, int, std::string > &value) |
| | Set common options for all solvers supporting that option (for example, printing the progress in each iteration). More...
|
| |
| const std::unordered_map< std::string, double > & | GetOptionsDouble (const SolverId &solver_id) const |
| |
| const std::unordered_map< std::string, int > & | GetOptionsInt (const SolverId &solver_id) const |
| |
| const std::unordered_map< std::string, std::string > & | GetOptionsStr (const SolverId &solver_id) const |
| |
| const std::unordered_map< CommonSolverOption, std::variant< double, int, std::string > > & | common_solver_options () const |
| | Gets the common options for all solvers. More...
|
| |
| template<typename T > |
| const std::unordered_map< std::string, T > & | GetOptions (const SolverId &solver_id) const |
| |
| std::unordered_set< SolverId > | GetSolverIds () const |
| | Returns the IDs that have any option set. More...
|
| |
| void | Merge (const SolverOptions &other) |
| | Merges the other solver options into this. More...
|
| |
| bool | operator== (const SolverOptions &other) const |
| | Returns true if this and other have exactly the same solvers, with exactly the same keys and values for the options for each solver. More...
|
| |
| bool | operator!= (const SolverOptions &other) const |
| | Negate operator==. More...
|
| |
| void | CheckOptionKeysForSolver (const SolverId &solver_id, const std::unordered_set< std::string > &allowable_double_keys, const std::unordered_set< std::string > &allowable_int_keys, const std::unordered_set< std::string > &allowable_str_keys) const |
| | Check if for a given solver_id, the option keys are included in double_keys, int_keys and str_keys. More...
|
| |
|
| | SolverOptions (const SolverOptions &)=default |
| |
| SolverOptions & | operator= (const SolverOptions &)=default |
| |
| | SolverOptions (SolverOptions &&)=default |
| |
| SolverOptions & | operator= (SolverOptions &&)=default |
| |


Tycho follows a consistent programming style described here.
Also included are various hints on how to deal with Itcl
idiosyncrasies and suggestions for high-quality coding.
This is a working document, and will evolve over time.
Files and Directories
- Directories and makefiles
- Style Guide
- File headers
- Itcl File bodies
- Sample Itcl
Template File
tydoc
-
The Tycho documentation system.
- The Tycho/Ptolemy II Code Rating System
Operations
- Building Tcl Extensions
- Creating New Class Files
- Testing Tycho
Programming Tips
- Error handling
- Performance in Tcl
- Scope in Itcl
- Using the
update
command in Itcl
- Using the
after
command in Itcl
Tycho Home Page
Copyright © 1996-1998, The Regents of the University of California.
All rights reserved.
Last updated: 05/20/98,
comments to: tycho@eecs.berkeley.edu


The angular-datatables also provides an API in order to make the plugin ColVis works with datatables.
angular-datatables
ColVis


HTTP response freshness testing
This is a Node.js module available through the
npm registry. Installation is done using the
npm install
command:
$ npm install fresh
js
var fresh = require('fresh')
Check freshness of the response using request and response headers.
When the response is still “fresh” in the client’s cache true
is
returned, otherwise false
is returned to indicate that the client
cache is now stale and the full response should be sent.
When a client sends the Cache-Control: no-cache
request header to
indicate an end-to-end reload request, this module will return false
to make handling these requests transparent.
This module is designed to only follow the HTTP specifications, not to work-around all kinda of client bugs (especially since this module typically does not recieve enough information to understand what the client actually is).
There is a known issue that in certain versions of Safari, Safari will incorrectly make a request that allows this module to validate freshness of the resource even when Safari does not have a representation of the resource in the cache. The module jumanji can be used in an Express application to work-around this issue and also provides links to further reading on this Safari bug.
```js var reqHeaders = { ‘if-none-match’: ‘“foo”’ } var resHeaders = { ‘etag’: ‘“bar”’ } fresh(reqHeaders, resHeaders) // => false
var reqHeaders = { ‘if-none-match’: ‘“foo”’ } var resHeaders = { ‘etag’: ‘“foo”’ } fresh(reqHeaders, resHeaders) // => true ```
```js var fresh = require(‘fresh’) var http = require(‘http’)
var server = http.createServer(function (req, res) { // perform server logic // … including adding ETag / Last-Modified response headers
if (isFresh(req, res)) { // client has a fresh copy of resource res.statusCode = 304 res.end() return }
// send the resource res.statusCode = 200 res.end(‘hello, world!’) })
function isFresh (req, res) { return fresh(req.headers, { ‘etag’: res.getHeader(‘ETag’), ‘last-modified’: res.getHeader(‘Last-Modified’) }) }
server.listen(3000) ```


Dave knows human languages
Dave is learning computer languages
Follow along!
This is my first post to this blog in a long time. I created this blog as part of the "Phase 0" prep work for Dev Bootcamp, and I have since completed the whole program! Anyway, I know the whoel blog needs an overhaul, but in the meantime I decided to post a little bit that I learned in the course of a side project.
So, I created a toy project during DBC, a Rails app with a SQLite3 database, and I wanted to deploy it on Heroku. Heroku requires Postgres instead of SQLite. So, I broke my app trying to install Postgres, then rebuilt it from the parts of the old one.
When I first ran the migrations to create the new DB, it crashed. What? Why? It worked for SQLite? I couldn't find much on Google about why, but I had a hunch. My Rails app had nested resources with a "has_many ~ belongs_to" association, and I ran the inner, "dependent" one first, and it threw an error and crashed. I reversed the order and ran the outer migration first (the one that "has_many," not the one that "belongs_to"), and it ran just fine.
So that's it, it's not a game changer, but this is my contribution towards the comunity, hopefully if your migrations crash and you can't figure out why, this post will help.


Benchmark results for methods in class RangeBitmapBenchmarkTest
Properties
Shows historical runs: 20


jsUtils.isHex()
Checks if the variable is a valid hexadecimal number.
jsUtils.isHex( str )
str - any javascript variable
Returns true if the variable is a valid hexadecimal number or false otherwise.
Any input variable is treated as a string. The function will test each charector in this string to be inside the set of A..F, a..f, 0..9.
If all charectors are inside the set, it will return true, otherwise false. This function can be used to verify that a number is a valid
color number, since color numbers are hexidecimal numbers. The number cannot contain dot (.)
Example
<!DOCTYPE html>
<html>
<head>
<script src="system/libs/jsUtils.js" type="text/javascript"></script>
<script type="text/javascript">
window.onload = function() {
alert(jsUtils.isHex('1d0'));
alert(jsUtils.isHex('AF10'));
}
</script>
<body>
</body>
</html>
See Also


Settings
Recursive Downloading:
(Underdevelopment)Download files by crawling through directories
Save


Presentation Title
Your Name / @twitter / alley.com
#hashtag
- We are a full-service digital agency
- WordPress.com VIP Gold Partner
- Hiring!
Another Slide
This slide has a list with fragments
- First item
- Second item
- Third item
Slide With Editable Code
function say_hello( $name ) {
echo "Hello {$name}!";
}


FEDERAL HILL A film review by Ben Hoffman Copyright 1995 Ben Hoffman
Every big city in the U.S. has an area that is decayed, decadent, drug-ridden, and inhabited by punks. In Providence, R.I., for the past 50 years, the area is Federal Hill. Here you can find the gangs with their intense devotion to each other and their families but punks, nevertheless. When a film is made about them I expect it has a point (BOYZ IN THE HOOD). This one does not.
Nick (Anthony De Santo) and Ralph (Nicholas Turturro) grew up in Federal Hill. The only world they know is what happens in their neighborhood, what they can see from the top of the Hill. This limits their interests to what is bounded by their neighborhood and limits their horizons. They do not expect to better themselves nor, for the most, will they. In fact, they are drones, completely lacking in any aspirations.
Close by, but a million miles away in every other way, is Brown University where the rich send their kids. One of the students, a Senior, Wendy (Libby Langdon), enters Federal Hill to scout for some drugs for the Senior Prom. When she meets one of the Federal Hill residents, Nicky, she falls for him ... or so we are asked to believe by the filmmakers; a rather strong dose of incredibility for us to swallow. There is no chance that Wendy's parents will accept Nicky and how Nicky can ever believe that he would be is nonsense.
In any case, Nicky and his friend have been to long involved with the Federal Hill activities and no good will come of that.
A disappointing film.
Directed by Michael Corrente.
1.5 bytes 4 Bytes = Absolutely must see. 3 Bytes = Too good to be missed. 2 Bytes = So so. 1 Byte = Save your money.
Ben Hoffman
.
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


gnumpy
(There are translations of Gnumpy into various other languages; if you're looking for a translation I suggest a web search)
Gnumpy is free software, but if you use it in scientific work that gets published, you should cite this tech report in your publication.
Download: gnumpy.py (also be sure to have the most recent version of Cudamat)
Documentation: here.
Do you want to have both the compute power of GPU's and the programming convenience of Python numpy? Gnumpy + Cudamat will bring you that.
Gnumpy is a simple Python module that interfaces in a way almost identical to numpy, but does its computations on your computer's
GPU. See this example, training an RBM using Gnumpy.
Gnumpy runs on top of, and therefore requires, the excellent cudamat library, written by
Vlad Mnih.
Gnumpy can run in simulation mode: everything happens on the CPU, but the interface is the same. This can be helpful if you like to write your
programs on your GPU-less laptop before running them on a GPU-equipped machine. It also allows you to easily test what performance gain you get from
using a GPU. The simulation mode requires npmat, written by
Ilya Sutskever.
Gnumpy is licensed with a BSD-style license (i.e. it's completely free to use for everyone, also as a component in commercial software), with one
added note: if you use it for scientific work that gets published, you must include reference to the Gnumpy tech report in your publication. For
details of the license, see the top of gnumpy.py.
See also this presentation by Xavier Arrufat, introducing numpy at the Python for Data Analysis meetup in Barcelona, 2013.
Recent changes:
- 2013-02-22: Bugfixes in max() and log_1_plus_exp() that only affected behavior when no GPU was used.
- 2012-07-25: Bugfix. gnumpy.dot(x, x), when x is a 1-dimensional array, didn't work but now works.
- 2011-06-06: gnumpy.dot() now takes arrays of ndim>2.
- 2011-04-19: Bugfix: several bugs involving zero size arrays were fixed.
- 2011-04-15: Bugfix. "x=gnumpy.zeros(10); x[array([])] = garray([])" didn't work as it should. Now it does.
- 2011-03-24: Added gnumpy.outer().
- 2011-03-15: The ability to check for infs and nans automatically has been added to Gnumpy.
- 2010-07-19: Cudamat now enables fast indexing with arrays of indices. Download the newest Cudamat to have fast indexing with arrays in Gnumpy.
- 2010-07-08: Renamed the project to Gnumpy. It used to be called Gpunnumpy.
Home page


Airport
Search at the speed of light
Account
Search Airport Details
Name
Airport Code
Type
City
State/Province
Country


WITNESS LIST
Natural Resources
April 11, 2012 9:00 AM
ANGA, Availability of Natural Gas
FOR:
Averitt, Kip Consultant (ANGA, American Natural Gas Association), Austin, TX
Electric Interim Charges
ON:
Doggett, Trip CEO (ERCOT), Austin, TX
Hildebrand, P.E., Susana Chief Engineer (Texas Commission on Environmental Quality),
TX
Nasi, Mike Attorney (Balanced Energy for Texas Coalition), Austin, TX
Nelson, Donna Chairman (Public Utility Commission), Austin, TX
Energy Generation
ON:
Lopez, Frederick Director of Environmental Health (American Lung Association), Dallas,
TX
Interim Charges #1 and #5
ON:
Beneby, Doyle President and CEO (CPS Energy), San Antonio, TX
Gibbs, Gary (American Electric Power), Austin, TX
Hadden, Karen (SEED Coalition and Mercury Rules), Austin, TX
Oldham, Phillip Attorney (Texas Association of Manufactures), Austin, TX
Smith, Tom "Smitty" (Public Citizen), Austin, TX
Retirement of coal
ON:
Powis, Jen Lawyer (Sierra Club), Austin, TX


As we look at those billions of galaxies, there is one thing that is pretty striking, every single one of them is moving away from us! We must smell very bad.
As we saw earlier, energy of electrons inside of atoms are quantized. If you shine white light (with all colors) on a gas of a certain kind of atoms, only very specific set of wavelengths are absorbed. Theses lines of absorptions are unique to each atom. We can actually observe the absorption lines from space, and by looking at those lines we can tell the atomic composition of galaxies and stars; see Fig. "Absorption Spectrum".
But wait, there is even more information in those lines that we can extract - it requires using something called the Doppler effect.
You have heard the Doppler effect, even if you didn't know it. The Doppler effect is often heard from the sound of sirens on ambulances (or the whistle of a moving train) as they pass by you. The Doppler effect arises when a source of a wave is moving. As you can see in Fig. "Doppler Effect", as the source moves to the right, the wavelength of the wave on the right is smaller than the wavelength on the left.
The wave is stretched if the source is moving away from you or it becomes more squeezed if the source is moving towards you; i.e., without looking you can tell whether the train is coming toward you or going away from you.
If a source of light moves toward you, the wavelength will be shortened which means it will be bluer. If it moves away, the wavelength gets bigger and it becomes redder. What we see when we look at the Universe is that every galaxy (except for a couple of very close-by galaxies), are moving away from us. When we look at the pattern of light for the hydrogen atom for example, the whole pattern is just as we expect to be but it is shifted to the red; see Fig. "Redshift".
The modern interpretation of these observations is that the Universe is expanding. The spacetime tapestry is expanding such that the length of a meter is getting bigger with time. This expansion is happening everywhere and every galaxy is moving away from us and away from each other.


By: philstar.com | Updated October 12, 2016 - 12:25pm
MANILA, Philippines - One of the country’s longest-standing outfits from the ‘90s band explosion, is back in the music scene this month with an album of all-original material, titled “Pogi Years Old.”
The new record, released under Universal Records, is their ninth studio album and their first in six years.
The record is a mixture of comic relief, serious outtakes and love bites, all with a dash of kapilyuhan, something that the band has always been known for in their career that has spanned two decades.
The new album contains 21 tracks - fourteen in Filipino, two in English and five short pieces that serve as a “break” between tracks. Its carrier single is the ballad “Lagi Mong Tatandaan,” whose music video has just been premiered last October 4 via music channel MYX. The record also features collaborations with Rico Blanco, Gloc-9 and Frank Magalona.
All songs were written by the band themselves, except for “Ulan” by Coco Laurente, “Beautiful Girl” by Jose Mari Chan and “Panahon Na Naman ng Harana,” a medley which comprises of “Panahon Na Naman” by Rico Blanco and “Harana” by Eric Yaptangco, originally included in the band’s second studio album, 1997’s “Buruguduystunstugudunstuy.”
“Pogi Years Old” is released under Universal Records and will be available on CD in all record stores nationwide and on Spotify and other digital formats beginning October 17.


PKReceiptInfoField
Undocumented
-
Undocumented
-
Undocumented
-
Undocumented
-
Undocumented
-
Undocumented
-
Undocumented


"""
plg2dot.py
(C) 2011-2012 by Damir Cavar (http://cavar.me/damir/)
All rights reserved.
Converts XFST Prolog files to DOT.
For XFST see: http://www.fmsbook.com/
For Graphviz and DOT see: http://www.graphviz.org/
Required:
You will need to generate a prolog file of your FST using XFST.
See the XFST manual for instructions how to do that.
Usage:
Assume your generated prolog file is stored as mymorph.plg.
Use the following command line to convert it to DOT:
./plg2dot.py mymorph.plg > mymorph.dot
The DOT output in this command is redirected to the file mymorph.dot.
On Windows machines, or in case the plg2dot.py file is not set
to be executable, you might need to prepend the python3 command.
"""
import sys, codecs, re
sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())
networkname = re.compile(r"network\((?P<netlabel>.+)\)\.")
arcdef = re.compile(r"arc\((?P<netlabel>.+),\s+(?P<from>.+),\s+(?P<to>.+),\s+\"(?P<label>[\w+-]+)\"(:\"(?P<label2>\w+)\")?\)\.")
finaldef = re.compile(r"final\((?P<netlabel>.+),\s+(?P<state>.+)\)\.")
class Graph:
label = ""
finalstates = []
transitions = []
def getDOT(self):
finals = set(self.finalstates)
states = set()
for i in self.transitions:
states.add(i[0])
states.add(i[1])
tmp = ""
for i in self.transitions:
tmp = tmp + " ".join( ("\t", str(i[0]), "->", str(i[1]), "[label=\"" + i[2] + "\"];\n") )
return " ".join( ("digraph", self.label, "{\n") ) + "\trankdir=LR;\n\tsize=\"8,5\";\n" + \
"\tnode [shape = doublecircle]\n" + "\t\t" + " ".join(finals) + " ;\n\n" + \
"\tnode [shape = circle]\n" + "\t\t" + " ".join(states.difference(set(self.finalstates))) + ";\n\n" + \
"\tnull [shape = plaintext label=\"\"];\n\tnull -> 0;\n\n" + tmp + "}\n"
def main(files):
for i in files:
try:
ifp = open(i, mode="r", encoding="utf-8")
myGraph = Graph()
for line in ifp:
mo = arcdef.match(line)
if mo:
if mo.group("label2"):
label = mo.group("label") + ":" + mo.group("label2")
else:
label = mo.group("label")
myGraph.transitions.append( (mo.group("from"), mo.group("to"), label) )
continue
mo = finaldef.match(line)
if mo:
myGraph.finalstates.append(mo.group("state"))
continue
mo = networkname.match(line)
if mo:
myGraph.label = mo.group("netlabel")
ifp.close()
print(myGraph.getDOT())
except IOError as e:
sys.exit("File " + i + " IO error:" + str(e))
if __name__ == '__main__':
main(sys.argv[1:])


You can monitor and manage your business with the platform we will provide.
Our WorksLearn more about our works
SeaWire Mobile is Wireframe kit for iOS that available more than 200 Screen.
Learn MoreSeaWire Mobile is Wireframe kit for iOS that available more than 200 Screen.
Learn MoreSeaWire Mobile is Wireframe kit for iOS that available more than 200 Screen.
Learn MoreSeaWire Web is a wireframe kit that has more than 15 popular categories and more than 200 screens from each category, SeaWire Web deserves to be your partner in working on projects. So what are you waiting for?
Using the most popular google Font
Made for figma for intensive collaboration
Visual Hierarchy make SeaWire Web more valueable
Organized Component Using Styleguide


Will you be my neighbor?
Enter a number.
(at least 5 digits long and scroll down quickly for a full effect)
What is your name?
SUBMIT


Documentation Contents
Skip navigation bar
Java Management Extensions (JMX) Technology Tutorial
Java Management Extensions (JMX)
Java Platform, Standard Edition version 8
August, 2008
Contents | Previous |
Next
Contents
Preface
1. Getting Started
Platform Information
Examples Directory
Working Directory
2. Essentials of the JMX API
Standard MBeans
MBean Interface
MBean Implementation
Managing a Resource
Running the Standard MBean Example
Sending Notifications
NotificationBroadcaster Interface
Running the MBean Notification Example
Introducing MXBeans
QueueSamplerMXBean Interface
QueueSampler Class
QueueSample Class
Creating and Registering the MXBean in the MBean Server
Running the MXBean Example
MBean Descriptors
DescriptorKey Annotations
Using MBean Descriptors
Running the MBean Descriptors Example
3. JMX Connectors
Accessing Standard and Dynamic MBeans via the RMI Connector
Analyzing the Example Classes
Server.java
SimpleStandardMBean.java
SimpleStandard.java
SimpleDynamic.java
ClientListener.java
Client.java
Running the MBean Example
4. Lookup Services
Initial Configuration
External RMI Registry
External CORBA Naming Service
External LDAP Registry
Service Location Protocol (SLP) Lookup Service
Analyzing the Example Classes
Server.java
Client.java
Running the SLP Lookup Service Example
Setting up the SLP Lookup Service Example
Running the SLP Lookup Service Example
Jini Lookup Service
Analyzing the Example Classes
Server.java
Client.java
java.policy
jini.properties.template
Running the Jini Lookup Service Example
Setting up the Jini Lookup Service Example
Running the Jini Lookup Service Example
Java Naming and Directory Interface (JNDI) / LDAP Lookup Service
Analyzing the Example Classes
Server.java
Client.java
jmx-schema.txt
60jmx-schema.ldif
Running the JNDI/LDAP Lookup Service Example
Setting up the JNDI/LDAP Lookup Service Example
Running the JNDI/LDAP Lookup Service Example With an RMI Connector
5. Security
Simple Security
RMI Connectors With Simple Security
Server.java
SimpleStandardMBean.java
SimpleStandard.java
ClientListener.java
Client.java
Running the RMI Connector Example With Simple Security
Subject Delegation
Secure RMI Connectors With Subject Delegation
Server.java
java.policy
SimpleStandardMBean.java
SimpleStandard.java
ClientListener.java
Client.java
Running the Secure RMI Connector Example With Subject Delegation
Fine-Grained Security
RMI Connectors With Fine-Grained Security
The files will be analyzed in the following sections.Server.java
java.policy
SimpleStandardMBean.java
SimpleStandard.java
ClientListener.java
Client.java
Running the RMI Connector Example With Fine-Grained Security
Contents | Previous |
Next


Those are the basics of probability. We can use these basic ideas of probability to help us build more complex models that can help us build more complex structures.


Smart Tech
Admin Panel
Home
Section 1
Section 2
Section 3
Section 4
Section 5
Section 6
Section 7
Section 8
Section 9
Section 10
Pages
About
Section 1
Section 2
Section 3
Section 4
Section 5
Section 6
Section 7
Section 8
Login Form
Product 3 Columns
Product 4 Columns
List Product
Product Details
Shopping Cart
Payment Methods
Delivery Methods
Confirmation
Checkout Successful
Error 404
Contact
Blog
Blog
Blog Single
Products
Blog Contents
Log Out
×
Log Out
Do you want quit from Smart Tech Admin Panel


基本概念
class
每个类的定义都以关键字 class 开头，后面跟着类名，后面跟着一对花括号，里面包含有
类的属性与方法的定义。
类名可以是任何非 PHP 保留字的合法标签。一个合法类名以字母或下划线开头，后面跟着
若干字母，数字或下划线。以正则表达式表示为：[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\
xff]*。
一个类可以包含有属于自己的常量，变量（称为“属性”）以及函数（称为“方法”）。
Example #1 简单的类定义
var;
}
}
?>
当一个方法在类定义内部被调用时，有一个可用的伪变量 $this。$this 是一个到主叫对
象的引用（通常是该方法所从属的对象，但如果是从第二个对象静态调用时也可能是另一
个对象）。
Example #2 $this 伪变量的示例
foo();
// Note: the next line will issue a warning if E_STRICT is enabled.
A::foo();
$b = new B();
$b->bar();
// Note: the next line will issue a warning if E_STRICT is enabled.
B::bar();
?>
以上例程会输出：
$this is defined (A)
$this is not defined.
$this is defined (B)
$this is not defined.
new
要创建一个类的实例，必须使用 new 关键字。当创建新对象时该对象总是被赋值，除非该
对象定义了构造函数并且在出错时抛出了一个异常。类应在被实例化之前定义（某些情况
下则必须这样）。
如果在 new 之后跟着的是一个包含有类名的字符串，则该类的一个实例被创建。如果该类
属于一个名字空间，则必须使用其完整名称。
Example #3 创建一个实例
在类定义内部，可以用 new self 和 new parent 创建新对象。
当把一个对象已经创建的实例赋给一个新变量时，新变量会访问同一个实例，就和用该对
象赋值一样。此行为和给函数传递入实例时一样。可以用克隆给一个已创建的对象建立一
个新实例。
Example #4 对象赋值
var = '$assigned will have this value';
$instance = null; // $instance and $reference become null
var_dump($instance);
var_dump($reference);
var_dump($assigned);
?>
以上例程会输出：
NULL
NULL
object(SimpleClass)#1 (1) {
["var"]=>
string(30) "$assigned will have this value"
}
PHP 5.3.0 引进了两个新方法来创建一个对象的实例：
Example #5 创建新对象
以上例程会输出：
bool(true)
bool(true)
bool(true)
extends
一个类可以在声明中用 extends 关键字继承另一个类的方法和属性。PHP不支持多重继承
，一个类只能继承一个基类。
被继承的方法和属性可以通过用同样的名字重新声明被覆盖。但是如果父类定义方法时使
用了 final，则该方法不可被覆盖。可以通过 parent:: 来访问被覆盖的方法或属性。
当覆盖方法时，参数必须保持一致否则 PHP 将发出 E_STRICT 级别的错误信息。但构造函
数例外，构造函数可在被覆盖时使用不同的参数。
Example #6 简单的类继承
displayVar();
?>
以上例程会输出：
Extending class
a default value
::class
自 PHP 5.5 起，关键词 class 也可用于类名的解析。使用 ClassName::class 你可以获
取一个字符串，包含了类 ClassName 的完全限定名称。这对使用了命名空间的类尤其有用
。
Example #7 类名的解析
以上例程会输出：
NS\ClassName
User Contributed Notes 21 notes
===============================================================================
I was confused at first about object assignment, because it's not quite the
same as normal assignment or assignment by reference. But I think I've figured
out what's going on.
First, think of variables in PHP as data slots. Each one is a name that points
to a data slot that can hold a value that is one of the basic data types: a
number, a string, a boolean, etc. When you create a reference, you are making a
second name that points at the same data slot. When you assign one variable to
another, you are copying the contents of one data slot to another data slot.
Now, the trick is that object instances are not like the basic data types. They
cannot be held in the data slots directly. Instead, an object's "handle" goes
in the data slot. This is an identifier that points at one particular instance
of an obect. So, the object handle, although not directly visible to the
programmer, is one of the basic datatypes.
What makes this tricky is that when you take a variable which holds an object
handle, and you assign it to another variable, that other variable gets a copy
of the same object handle. This means that both variables can change the state
of the same object instance. But they are not references, so if one of the
variables is assigned a new value, it does not affect the other variable.
+---------+
// |(handle1)----+
// $reference --->+---------+ |
// |
// +---------+ |
// $assignment -->|(handle1)----+
// +---------+ |
// |
// v
// Object(1):foo="bar"
//
?>
$assignment has a different data slot from $objectVar, but its data slot holds
a handle to the same object. This makes it behave in some ways like a
reference. If you use the variable $objectVar to change the state of the Object
instance, those changes also show up under $assignment, because it is pointing
at that same Object instance.
foo = "qux";
print_r( $objectVar );
print_r( $reference );
print_r( $assignment );
//
// $objectVar --->+---------+
// |(handle1)----+
// $reference --->+---------+ |
// |
// +---------+ |
// $assignment -->|(handle1)----+
// +---------+ |
// |
// v
// Object(1):foo="qux"
//
?>
But it is not exactly the same as a reference. If you null out $objectVar, you
replace the handle in its data slot with NULL. This means that $reference,
which points at the same data slot, will also be NULL. But $assignment, which
is a different data slot, will still hold its copy of the handle to the Object
instance, so it will not be NULL.
+---------+
// | NULL |
// $reference --->+---------+
//
// +---------+
// $assignment -->|(handle1)----+
// +---------+ |
// |
// v
// Object(1):foo="qux"
?>
===============================================================================
What is the difference between $this and self ?
Inside a class definition, $this refers to the current object, while self
refers to the current class.
It is necessary to refer to a class element using self ,
and refer to an object element using $this .
Note also how an object variable must be preceded by a keyword in its
definition.
The following example illustrates a few cases:
self::STAT: ' . self::STAT ; // refer to a (static) constant
like this
print '
self::$stat: ' . self::$stat ; // static variable
print '
$this->stat: ' . $this->stat ; // legal, but not what you might
think: empty result
print '
$this->publ: ' . $this->publ ; // refer to an object variable
like this
print '
' ;
}
}
$me = new Classy( ) ;
$me->showMe( ) ;
/* Produces this output:
self::STAT: S
self::$stat: Static
$this->stat:
$this->publ: Public
*/
?>
===============================================================================
Some thing that may be obvious to the seasoned PHP programmer, but may surprise
someone coming over from C++:
Gives an error saying Print used undefined variable. One has to explicitly use
(notice the use of bar ?>):
$bar;
}
}
?>
bar; ?> refers to the class member, while using $bar means
using an uninitialized variable in the local context of the member function.
===============================================================================
stdClass is the default PHP object. stdClass has no properties, methods or
parent. It does not support magic methods, and implements no interfaces.
When you cast a scalar or array as Object, you get an instance of stdClass. You
can use stdClass whenever you need a generic object instance.
1, 'property2' => 'b');
?>
stdClass is NOT a base class! PHP classes do not automatically inherit from any
class. All classes are standalone, unless they explicitly extend another class.
PHP differs from many object-oriented languages in this respect.
You cannot define a class named 'stdClass' in your code. That name is already
used by the system. You can define a class named 'Object'.
You could define a class that extends stdClass, but you would get no benefit,
as stdClass does nothing.
(tested on PHP 5.2.8)
===============================================================================
CLASSES and OBJECTS that represent the "Ideal World"
Wouldn't it be great to get the lawn mowed by saying $son->mowLawn()? Assuming
the function mowLawn() is defined, and you have a son that doesn't throw
errors, the lawn will be mowed.
In the following example; let objects of type Line3D measure their own length
in 3-dimensional space. Why should I or PHP have to provide another method from
outside this class to calculate length, when the class itself holds all the
neccessary data and has the education to make the calculation for itself?
x = $xCoord;
$this->y = $yCoord;
$this->z = $zCoord;
}
/*
* the (String) representation of this Point as "Point3D(x, y, z)".
*/
public function __toString()
{
return 'Point3D(x=' . $this->x . ', y=' . $this->y . ', z=' . $this->z
. ')';
}
}
/*
* Line3D.php
*
* Represents one Line in 3-dimensional space using two Point3D objects.
*/
class Line3D
{
$start;
$end;
public function __construct($xCoord1=0, $yCoord1=0, $zCoord1=0, $xCoord2=1,
$yCoord2=1, $zCoord2=1)
{
$this->start = new Point3D($xCoord1, $yCoord1, $zCoord1);
$this->end = new Point3D($xCoord2, $yCoord2, $zCoord2);
}
/*
* calculate the length of this Line in 3-dimensional space.
*/
public function getLength()
{
return sqrt(
pow($this->start->x - $this->end->x, 2) +
pow($this->start->y - $this->end->y, 2) +
pow($this->start->z - $this->end->z, 2)
);
}
/*
* The (String) representation of this Line as "Line3D[start, end, length]
".
*/
public function __toString()
{
return 'Line3D[start=' . $this->start .
', end=' . $this->end .
', length=' . $this->getLength() . ']';
}
}
/*
* create and display objects of type Line3D.
*/
echo '
' . (new Line3D()) . "
\n"; echo '' . (new Line3D(0, 0, 0, 100, 100, 0)) . "
\n"; echo '' . (new Line3D(0, 0, 0, 100, 100, 100)) . "
\n"; ?> <-- The results look like this --> Line3D[start=Point3D(x=0, y=0, z=0), end=Point3D(x=1, y=1, z=1), length= 1.73205080757] Line3D[start=Point3D(x=0, y=0, z=0), end=Point3D(x=100, y=100, z=0), length=<PHONE_NUMBER>37] Line3D[start=Point3D(x=0, y=0, z=0), end=Point3D(x=100, y=100, z=100), length=<PHONE_NUMBER>57] My absolute favorite thing about OOP is that "good" objects keep themselves in check. I mean really, it's the exact same thing in reality... like, if you hire a plumber to fix your kitchen sink, wouldn't you expect him to figure out the best plan of attack? Wouldn't he dislike the fact that you want to control the whole job? Wouldn't you expect him to not give you additional problems? And for god's sake, it is too much to ask that he cleans up before he leaves? I say, design your classes well, so they can do their jobs uninterrupted... who like bad news? And, if your classes and objects are well defined, educated, and have all the necessary data to work on (like the examples above do), you won't have to micro-manage the whole program from outside of the class. In other words... create an object, and LET IT RIP! =============================================================================== A PHP Class can be used for several things, but at the most basic level, you'll use classes to "organize and deal with like-minded data". Here's what I mean by "organizing like-minded data". First, start with unorganized data. Now to organize the data into PHP classes: Now here's what I mean by "dealing" with the data. Note: The data is already organized, so that in itself makes writing new functions extremely easy. database // function to read <- database // etc, etc } class Item { public $name, $price, $qty, $total; // the data for this class... // function to calculate total // function to format numbers // function to deal with user-input / validation // function to build string for output // function to write -> database // function to read <- database // etc, etc } ?> Imagination that each function you write only calls the bits of data in that class. Some functions may access all the data, while other functions may only access one piece of data. If each function revolves around the data inside, then you have created a good class. =============================================================================== I hope that this will help to understand how to work with static variables inside a class bar; } } $ob = new a(); a::getFoo(); // output: I am foo $ob->getFoo(); // output: I am foo //a::getBar(); // fatal error: using $this not in object context $ob->getBar(); // output: I am bar // If you keep $bar non static this will work // but if bar was static, then var_dump($this->bar) will output null // unset($ob); a::setFoo(); // The same effect as if you called $ob->setFoo(); because $foo is static $ob = new a(); // This will have no effects on $foo $ob->getFoo(); // output: I am a new foo ?> Regards Motaz Abuthiab =============================================================================== Here's another simple example. age = 0; $this->weight = 100; } // define methods public function eat($units) { echo $this->name." is eating ".$units." units of food... "; $this->weight += $units; } public function run() { echo $this->name." is running... "; } public function kill() { echo $this->name." is killing prey... "; } public function sleep() { echo $this->name." is sleeping... "; } } // extended class definition class PolarBear extends Bear { // constructor public function __construct() { parent::__construct(); $this->colour = "white"; $this->weight = 600; } // define methods public function swim() { echo $this->name." is swimming... "; } } ?> =============================================================================== The following odd behavior happens in php version 5.1.4 (and presumably some other versions) that does not happen in php version 5.2.1 (and possibly other versions > 5.1.4). The second line will not only create the $instance object successfully, it will also modify the value of $_SESSION['instance']! The workaround I arrived at, after trial and error, was to avoid using object names which match a $_SESSION array key. This is not intended to be a bug report, since it was apparently fixed by version 5.2.1, so it's just a workaround suggestion. =============================================================================== if you do this PHP will tell you "class b not found", because you've defined class b before a. However, the error tells you something different.... Got me a little confused :) =============================================================================== For those of us who are new to inheritance, private functions are not visible in an inherited class. Consider: "); } private function func2() { echo("I'm func2 in A!


|
117. Counting Time Limit: 0.25 sec, Memory Limit: 1 MB Find amount of numbers for given sequence of integer numbers such that after raising them to the M-th power they will be divided by K. Input Input consists of two lines. There are three integer numbers N, M, K (0<N, M, K<10001) on the first line. There are N positive integer numbers − given sequence (each number is not more than 10001) − on the second line. Output Write answer for given task. Sample Input 4 2 50 9 10 11 12 Sample Output 1 | ||||||
|


--- ---
| Internet Engineering Task Force | fge. Galiegue, Ed. |
| Internet-Draft | |
| Intended status: Informational | K. Zyp |
| Expires: August 26, 2017 | SitePen (USA) |
| G. Court | |
| 2013 |
JSON Schema: interactive and non interactive validation
draft-fge-json-schema-validation-00
JSON Schema (application/schema+json) has several purposes, one of which is instance validation. The validation process may be interactive or non interactive. For instance, applications may use JSON Schema to build a user interface enabling interactive content generation in addition to user input checking, or validate data retrieved from various sources. This specification describes schema keywords dedicated to validation purposes.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on August 26, 2017.
Copyright (c) 2013 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
JSON Schema can be used to require that a given JSON document (an instance) satisfies a certain number of criteria. These criteria are materialized by a set of keywords which are described in this specification. In addition, a set of keywords is defined to assist in interactive instance generation. Those are also described in this specification.
This specification will use the terminology defined by the JSON Schema core specification. It is advised that readers have a copy of this specification.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119].
This specification uses the term "container instance" to refer to both array and object instances. It uses the term "children instances" to refer to array elements or object member values.
This specification uses the term "property set" to refer to the set of an object's member names; for instance, the property set of JSON Object { "a": 1, "b": 2 } is [ "a", "b" ].
Elements in an array value are said to be unique if no two elements of this array are equal, as defined by the core specification.
It should be noted that the nul character (\x00) is valid in a JSON string. An instance to validate may contain a string value with this character, regardless of the ability of the underlying programming language to deal with such data.
The JSON specification does not define any bounds to the scale or precision of numeric values. JSON Schema does not define any such bounds either. This means that numeric instances processed by JSON Schema can be arbitrarily large and/or have an arbitrarily large decimal part, regardless of the ability of the underlying programming language to deal with such data.
Two validation keywords, "pattern" and "patternProperties", use regular expressions to express constraints.
Furthermore, given the high disparity in regular expression constructs support, schema authors SHOULD limit themselves to the following regular expression tokens:
Finally, implementations MUST NOT consider that regular expressions are anchored, neither at the beginning nor at the end. This means, for instance, that "es" matches "expression".
Some validation keywords only apply to one or more primitive types. When the primitive type of the instance cannot be validated by a given keyword, validation for this keyword and instance SHOULD succeed.
This specification groups keywords in different sections, according to the primitive type, or types, these keywords validate. Note that some keywords validate all instance types.
In order to validate an instance, some keywords are influenced by the presence (or absence) of other keywords. In this case, all these keywords will be grouped in the same section.
Some keywords, if absent, MAY be regarded by implementations as having a default value. In this case, the default value will be mentioned.
Keywords with the possibility to validate container instances (arrays or objects) only validate the instances themselves and not their children (array items or object properties). Some of these keywords do, however, contain information which is necessary for calculating which schema(s) a child must be valid against. The algorithms to calculate a child instance's relevant schema(s) are explained in a separate section.
It should be noted that while an array element will only have to validate against one schema, object member values may have to validate against more than one schema.
The value of "multipleOf" MUST be a JSON number. This number MUST be strictly greater than 0.
A numeric instance is valid against "multipleOf" if the result of the division of the instance by this keyword's value is an integer.
The value of "maximum" MUST be a JSON number. The value of "exclusiveMaximum" MUST be a boolean.
If "exclusiveMaximum" is present, "maximum" MUST also be present.
Successful validation depends on the presence and value of "exclusiveMaximum":
"exclusiveMaximum", if absent, may be considered as being present with boolean value false.
The value of "minimum" MUST be a JSON number. The value of "exclusiveMinimum" MUST be a boolean.
If "exclusiveMinimum" is present, "minimum" MUST also be present.
Successful validation depends on the presence and value of "exclusiveMinimum":
"exclusiveMinimum", if absent, may be considered as being present with boolean value false.
The value of this keyword MUST be an integer. This integer MUST be greater than, or equal to, 0.
A string instance is valid against this keyword if its length is less than, or equal to, the value of this keyword.
The length of a string instance is defined as the number of its characters as defined by RFC 4627 [RFC4627].
The value of this keyword MUST be an integer. This integer MUST be greater than, or equal to, 0.
A string instance is valid against this keyword if its length is greater than, or equal to, the value of this keyword.
The length of a string instance is defined as the number of its characters as defined by RFC 4627 [RFC4627].
"minLength", if absent, may be considered as being present with integer value 0.
The value of this keyword MUST be a string. This string SHOULD be a valid regular expression, according to the ECMA 262 regular expression dialect.
A string instance is considered valid if the regular expression matches the instance successfully. Recall: regular expressions are not implicitly anchored.
The value of "additionalItems" MUST be either a boolean or an object. If it is an object, this object MUST be a valid JSON Schema.
The value of "items" MUST be either an object or an array. If it is an object, this object MUST be a valid JSON Schema. If it is an array, items of this array MUST be objects, and each of these objects MUST be a valid JSON Schema.
Successful validation of an array instance with regards to these two keywords is determined as follows:
The following example covers the case where "additionalItems" has boolean value false and "items" is an array, since this is the only situation under which an instance may fail to validate successfully.
This is an example schema:
{ "items": [ {}, {}, {} ], "additionalItems": false }
With this schema, the following instances are valid:
the following instances are invalid:
If either keyword is absent, it may be considered present with an empty schema.
The value of this keyword MUST be an integer. This integer MUST be greater than, or equal to, 0.
An array instance is valid against "maxItems" if its size is less than, or equal to, the value of this keyword.
The value of this keyword MUST be an integer. This integer MUST be greater than, or equal to, 0.
An array instance is valid against "minItems" if its size is greater than, or equal to, the value of this keyword.
If this keyword is not present, it may be considered present with a value of 0.
The value of this keyword MUST be a boolean.
If this keyword has boolean value false, the instance validates successfully. If it has boolean value true, the instance validates successfully if all of its elements are unique.
If not present, this keyword may be considered present with boolean value false.
The value of this keyword MUST be an integer. This integer MUST be greater than, or equal to, 0.
An object instance is valid against "maxProperties" if its number of properties is less than, or equal to, the value of this keyword.
The value of this keyword MUST be an integer. This integer MUST be greater than, or equal to, 0.
An object instance is valid against "minProperties" if its number of properties is greater than, or equal to, the value of this keyword.
If this keyword is not present, it may be considered present with a value of 0.
The value of this keyword MUST be an array. This array MUST have at least one element. Elements of this array MUST be strings, and MUST be unique.
An object instance is valid against this keyword if its property set contains all elements in this keyword's array value.
The value of "additionalProperties" MUST be a boolean or an object. If it is an object, it MUST also be a valid JSON Schema.
The value of "properties" MUST be an object. Each value of this object MUST be an object, and each object MUST be a valid JSON Schema.
The value of "patternProperties" MUST be an object. Each property name of this object SHOULD be a valid regular expression, according to the ECMA 262 regular expression dialect. Each property value of this object MUST be an object, and each object MUST be a valid JSON Schema.
Successful validation of an object instance against these three keywords depends on the value of "additionalProperties":
If either "properties" or "patternProperties" are absent, they can be considered present with an empty object as a value.
If "additionalProperties" is absent, it may be considered present with an empty schema as a value.
In this case, validation of the instance depends on the property set of "properties" and "patternProperties". In this section, the property names of "patternProperties" will be called regexes for convenience.
The first step is to collect the following sets:
Having collected these three sets, the process is as follows:
Validation of the instance succeeds if, after these two steps, set "s" is empty.
This schema will be used as an example:
{ "properties": { "p1": {} }, "patternProperties": { "p": {}, "[0-9]": {} }, "additionalProperties": false }
This is the instance to validate:
{ "p1": true, "p2": null, "a32&o": "foobar", "": [], "fiddle": 42, "apple": "pie" }
The three property sets are:
Applying the two steps of the algorithm:
The set "s" still contains two elements, "" and "fiddle". Validation therefore fails.
This keyword's value MUST be an object. Each value of this object MUST be either an object or an array.
If the value is an object, it MUST be a valid JSON Schema. This is called a schema dependency.
If the value is an array, it MUST have at least one element. Each element MUST be a string, and elements in the array MUST be unique. This is called a property dependency.
For all (name, schema) pair of schema dependencies, if the instance has a property by this name, then it must also validate successfully against the schema.
Note that this is the instance itself which must validate successfully, not the value associated with the property name.
For each (name, propertyset) pair of property dependencies, if the instance has a property by this name, then it must also have properties with the same names as propertyset.
The value of this keyword MUST be an array. This array MUST have at least one element. Elements in the array MUST be unique.
Elements in the array MAY be of any type, including null.
An instance validates successfully against this keyword if its value is equal to one of the elements in this keyword's array value.
The value of this keyword MUST be either a string or an array. If it is an array, elements of the array MUST be strings and MUST be unique.
String values MUST be one of the seven primitive types defined by the core specification.
An instance matches successfully if its primitive type is one of the types defined by keyword. Recall: "number" includes "integer".
This keyword's value MUST be an array. This array MUST have at least one element.
Elements of the array MUST be objects. Each object MUST be a valid JSON Schema.
An instance validates successfully against this keyword if it validates successfully against all schemas defined by this keyword's value.
This keyword's value MUST be an array. This array MUST have at least one element.
Elements of the array MUST be objects. Each object MUST be a valid JSON Schema.
An instance validates successfully against this keyword if it validates successfully against at least one schema defined by this keyword's value.
This keyword's value MUST be an array. This array MUST have at least one element.
Elements of the array MUST be objects. Each object MUST be a valid JSON Schema.
An instance validates successfully against this keyword if it validates successfully against exactly one schema defined by this keyword's value.
This keyword's value MUST be an object. This object MUST be a valid JSON Schema.
An instance is valid against this keyword if it fails to validate successfully against the schema defined by this keyword.
This keyword's value MUST be an object. Each member value of this object MUST be a valid JSON Schema.
This keyword plays no role in validation per se. Its role is to provide a standardized location for schema authors to inline JSON Schemas into a more general schema.
{ "type": "array", "items": { "$ref": "#/definitions/positiveInteger" }, "definitions": { "positiveInteger": { "type": "integer", "minimum": 0, "exclusiveMinimum": true } } }
As an example, here is a schema describing an array of positive integers, where the positive integer constraint is a subschema in "definitions":
The value of both of these keywords MUST be a string.
Both of these keywords can be used to decorate a user interface with information about the data produced by this user interface. A title will preferrably be short, whereas a description will provide explanation about the purpose of the instance described by this schema.
Both of these keywords MAY be used in root schemas, and in any subschemas.
There are no restrictions placed on the value of this keyword.
This keyword can be used to supply a default JSON value associated with a particular schema. It is RECOMMENDED that a default value be valid against the associated schema.
This keyword MAY be used in root schemas, and in any subschemas.
Structural validation alone may be insufficient to validate that an instance meets all the requirements of an application. The "format" keyword is defined to allow interoperable semantic validation for a fixed subset of values which are accurately described by authoritative resources, be they RFCs or other external specifications.
The value of this keyword is called a format attribute. It MUST be a string. A format attribute can generally only validate a given set of instance types. If the type of the instance to validate is not in this set, validation for this format attribute and instance SHOULD succeed.
Implementations MAY support the "format" keyword. Should they choose to do so:
Implementations MAY add custom format attributes. Save for agreement between parties, schema authors SHALL NOT expect a peer implementation to support this keyword and/or custom format attributes.
This attribute applies to string instances.
A string instance is valid against this attribute if it is a valid date representation as defined by RFC 3339, section 5.6 [RFC3339].
This attribute applies to string instances.
A string instance is valid against this attribute if it is a valid Internet email address as defined by RFC 5322, section 3.4.1 [RFC5322].
This attribute applies to string instances.
A string instance is valid against this attribute if it is a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034].
This attribute applies to string instances.
A string instance is valid against this attribute if it is a valid representation of an IPv4 address according to the "dotted-quad" ABNF syntax as defined in RFC 2673, section 3.2 [RFC2673].
This attribute applies to string instances.
A string instance is valid against this attribute if it is a valid representation of an IPv6 address as defined in RFC 2373, section 2.2 [RFC2373].
This attribute applies to string instances.
A string instance is valid against this attribute if it is a valid URI, according to [RFC3986].
Calculating the schema, or schemas, a child instance must validate against is influenced by the following:
In addition, it is important that if one or more keyword(s) implied in the calculation are not defined, they be considered present with their default value, which will be recalled in this section.
The defining characteristic of the child instance is its index within the array. Recall: array indices start at 0.
The two implied keywords in this calculation are "items" and "additionalItems".
If either keyword is absent, it is considered present with an empty schema as a value. In addition, boolean value true for "additionalItems" is considered equivalent to an empty schema.
If items is a schema, then the child instance must be valid against this schema, regardless of its index, and regardless of the value of "additionalItems".
In this situation, the schema depends on the index:
The defining characteristic is the property name of the child.
The three keywords implied in this calculation are "properties", "patternProperties" and "additionalProperties".
If "properties" or "patternProperties" are absent, they are considered present with an empty object as a value.
If "additionalProperties" is absent, it is considered present with an empty schema as a value. In addition, boolean value true is considered equivalent to an empty schema.
The calculation below uses the following names:
If set "p" contains value "m", then the corresponding schema in "properties" is added to "s".
For each regex in "pp", if it matches "m" successfully, the corresponding schema in "patternProperties" is added to "s".
The schema defined by "additionalProperties" is added to "s" if and only if, at this stage, "s" is empty.
JSON Schema validation does not have any additional security considerations than those defined by the JSON Schema core specification.
This specification does not have any influence with regards to IANA.
| [RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997. |
| [RFC1034] | Mockapetris, P., "Domain names - concepts and facilities", STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987. |
| [RFC2373] | Hinden, R. and S. Deering, "IP Version 6 Addressing Architecture", RFC 2373, DOI 10.17487/RFC2373, July 1998. |
| [RFC2673] | Crawford, M., "Binary Labels in the Domain Name System", RFC 2673, DOI 10.17487/RFC2673, August 1999. |
| [RFC3339] | Klyne, G. and C. Newman, "Date and Time on the Internet: Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002. |
| [RFC3986] | Berners-Lee, T., Fielding, R. and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, DOI 10.17487/RFC3986, January 2005. |
| [RFC4627] | Crockford, D., "The application/json Media Type for JavaScript Object Notation (JSON)", RFC 4627, DOI 10.17487/RFC4627, July 2006. |
| [RFC5322] | Resnick, P., Internet Message Format", RFC 5322, DOI 10.17487/RFC5322, October 2008. |
| [ecma262] | ECMA 262 specification" | , "


Each round, if no candidate receives more than 50% of the votes, we eliminate the candidate with the
least votes and redistribute the votes.
Ties are broken in order of candidate listing.
Each candidate is separated on a new line.
Candidates are numbered starting from 1 from the top.
Each ballot is separated on a new line.
A ballot should be a sequence of numbers referencing a candidate, separated by spaces.
The sequence should be in order of most preferred to least preferred.
Ballots do not need to rank all the candidates.
Input candidates and ballots and click simulate!


PHP-FIG: how the PHP world got off their islands
We all publish software
Lots of it
Difficulties are to be overcome
DRY
Don't repeat yourself
✓ reuse
Duplication
Interoperability
"The ability of a system to work with or use the parts or equipment of another system."
So what does Drupal do for interoperability?
Coding standards
So one human can read another's code.
APIs
So one human can use another's code.
Abstract, reusable modules
Don't fork
Module conventions
- Module discovery.
- Class auto-loading.
- Asset handling.
- Web server hardening.
Much of our code is not specific to Drupal.
\Drupal\Component
in Drupal 8 core
Getting us off the island: FIG
Framework Interoperability Group
The standards are open source
- MIT (code)
- Creative Commons (non-code)
The community is open source
#phpfig
on irc.freenode.net
.
https://groups.google.com/forum/?fromgroups#!forum/php-fig
.
Voting members are PHP projects.
- Members vote on whether proposals should be accepted as standards recommendations.
- Drupal is a voting member. Its representative is Larry 'Crell' Garfield.
- New members are approved by existing members.
Members are not required to implement any standards
- Projects can disagree with standards.
- Implementing new PSRs can break backwards compatibility (BC), which delays implementations.
PSR
PHP Standard Recommendation
PSR-2 (PSR-1)
Coding standard/style
PSR-4 (PSR-0)
Autoloading
Composer
Sharing interoperable software has never been easier


PageSpeed Authorizing and Mapping Domains
Authorizing domains
In addition to optimizing HTML resources, PageSpeed restricts itself to optimizing resources (JavaScript, CSS, images) that are served from domains, with optional paths, that must be explicitly listed in the configuration file. For example:
- Apache:
ModPagespeedDomain http://example.com ModPagespeedDomain cdn.example.com ModPagespeedDomain http://styles.example.com/css ModPagespeedDomain *.example.org
- Nginx:
pagespeed Domain http://example.com; pagespeed Domain cdn.example.com; pagespeed Domain http://styles.example.com/css; pagespeed Domain *.example.org;
PageSpeed will rewrite resources found from these explicitly
listed domains, although in the case of styles.example.com
only resources under the css
directory will be rewritten.
Additionally, it will rewrite resources that are
served from the same domain as the HTML file, or are specified as
a path relative to the HTML. When resources are rewritten, their
domain and path are not changed. However, the leaf name is changed to
encode rewriting information that can be used to identify and serve
the optimized resource.
The leading "http://" is optional; bare hostnames will be interpreted as referring to HTTP. Wildcards can be used in the domain.
These directives can be used in location-specific configuration sections.
Mapping origin domains
In order to improve the performance of web pages, PageSpeed must examine and modify the content of resources referenced on those pages. To do that, it must fetch those resources using HTTP, using the URL reference specified on the HTML page.
In some cases, the URL specified in the HTML file is not the best URL to use to fetch the resource. Scenarios where this is a concern include:
- If the server is behind a load balancer, and it's more efficient to reference the server directly by its IP address, or as 'localhost'.
- The server has a special DNS configuration
- The server is behind a firewall preventing outbound connections
- The server is running in a CDN or proxy, and must go back to the origin server for the resources
- The server needs to service https requests
In these situations the remedy is to map the origin domain:
- Apache:
ModPagespeedMapOriginDomain origin_to_fetch_from origin_specified_in_html [host_header]
- Nginx:
pagespeed MapOriginDomain origin_to_fetch_from origin_specified_in_html [host_header];
Wildcards can also be used in the origin_specified_in_html
, e.g.
- Apache:
ModPagespeedMapOriginDomain localhost *.example.com
- Nginx:
pagespeed MapOriginDomain localhost *.example.com;
The origin_to_fetch_from
can include a path after the domain
name, e.g.
- Apache:
ModPagespeedMapOriginDomain localhost/example *.example.com
- Nginx:
pagespeed MapOriginDomain localhost/example *.example.com;
When a path is specified, the source domain is mapped to the destination
domain and the source path is mapped to the concatenation of the path from
origin_to_fetch_from
and the source path. For example, given the
above mapping, http://www.example.com/index.html
will be mapped
to http://localhost/example/index.html
.
The origin_specified_in_html can specify https but the origin_to_fetch_from can only specify http, e.g.
- Apache:
ModPagespeedMapOriginDomain http://localhost https://www.example.com
- Nginx:
pagespeed MapOriginDomain http://localhost https://www.example.com;
This directive lets the server accept https requests for
www.example.com
without requiring a SSL certificate to fetch
resources - in fact, this is the only way PageSpeed can service https requests
as currently it cannot use https to fetch resources. For example, given the
above mapping, and assuming the server is configured for https support,
PageSpeed will fetch and optimize resources accessed using
https://www.example.com
, fetching the resources from
http://localhost
, which can be the same server process or a
different server process.
- Apache:
ModPagespeedMapOriginDomain http://localhost https://www.example.com ModPagespeedShardDomain https://www.example.com \ https://example1.cdn.com,https://example2.cdn.com
- Nginx:
pagespeed MapOriginDomain http://localhost https://www.example.com; pagespeed ShardDomain https://www.example.com https://example1.cdn.com,https://example2.cdn.com;
In this example the https origin domain is mapped to localhost
and sharding is used to parallelize
downloads across hostnames. Note that the shards also specify https.
By specifying a source domain in this directive, you are authorizing
PageSpeed to rewrite resources found in that domain. For example, in the
above directives, '*.example.com' gets authorized for rewrites from HTML files,
but 'localhost' does not. See Domain
.
When PageSpeed fetches resources from a mapped origin domain, it
specifies the source domain in the Host:
header in the
request. You can override the Host:
header value with the
optional third parameter host_header
. See
Mapping Origins with a Shared Domain for
an example.
See also
LoadFromFile
to load origin resource directly from the filesystem and avoid an HTTP
connection altogether.
These directives can be used in location-specific configuration sections.
Mapping rewrite domains
When PageSpeed rewrites a resource, it updates the HTML to refer to the resource by its new name. Generally PageSpeed leaves the resource at the same origin and path that was originally found in the HTML. However, it is possible to map the domain of rewritten resources. Examples of why this might be desirable include:
- Serving static content from cookieless domains, to reduce the size of HTTP requests from the browser. See Minimizing Payload
- To move content to a Content Delivery Network (CDN)
This is done using the configuration file directive:
- Apache:
ModPagespeedMapRewriteDomain domain_to_write_into_html \ domain_specified_in_html
- Nginx:
pagespeed MapRewriteDomain domain_to_write_into_html domain_specified_in_html;
Wildcards can also be used in the domain_specified_in_html
, e.g.
- Apache:
ModPagespeedMapRewriteDomain cdn.example.com *example.com
- Nginx:
pagespeed MapRewriteDomain cdn.example.com *example.com;
The domain_to_write_into_html
can include a path after the
domain name, e.g.
- Apache:
ModPagespeedMapRewriteDomain cdn.com/example *.example.com
- Nginx:
pagespeed MapRewriteDomain cdn.com/example *.example.com;
When a path is specified, the source domain is rewritten to the destination
domain and the source path is rewritten to the concatenation of the path from
domain_to_write_into_html
and the source path. For example, given
the above mapping, http://www.example.com/index.html
will be
rewritten to http://cdn.com/example/index.html
.
Note: It is the responsibility of the site administrator to
ensure that PageSpeed is installed on
the domain_to_write_into_html
. This might be a separate server, or
there may be a single server with multiple domains mapped into it. The files
must be accessible via the same path on the destination server as was specified
in the HTML file. No other files should be stored on the
domain_to_write_into_html
-- it should be functionally equivalent
to domain_specified_in_html
. See
also MapProxyDomain which enables proxying content
from a different server.
For example, if PageSpeed
cache_extends http://www.example.com/styles/style.css
to
http://cdn.example.com/styles/style.css.pagespeed.ce.HASH.css
,
then cdn.example.com
will have to have a mechanism in place to
either rewrite that file in place, or refer back to the origin server to
pull the rewritten content.
Note: It is the responsibility of the site administrator to ensure that moving resources onto domains does not create a security vulnerability. In particular, if the target domain has cookies, then any JavaScript loaded from a resource moved to a domain with cookies will gain access to those cookies. In general, moving resources to a cookieless domain is a great way to improve security. Be aware that CSS can load JavaScript in certain environments.
By specifying a domain in this directive, either as source or destination,
you are authorizing PageSpeed to rewrite resources found in this
domain. See Domain
.
These directives can be used in location-specific configuration sections.
Mapping Origins with a Shared CDN
Consider a scenario where an installation serving multiple domains uses a single CDN for caching and delivery of all content. The origin fetches need to be routed to the correct VirtualHost on the server. This can be achieved by using a subdirectory per domain in the CDN, and then using that subdirectory to map to the correct VirtualHost at origin. The host-header control offered by the third argument to MapOriginDomain makes this feasible.
In the example below, resources with a domain of
sharedcdn.example.com and path starting with /vhost1 will be fetched
from localhost but with a Host:
header value of
vhost1.example.com. Without the third argument to MapOriginDomain,
the Host:
header would be sharedcdn.example.com.
- Apache:
ModPagespeedMapOriginDomain localhost sharedcdn.example.com/vhost1 vhost1.example.com ModPagespeedMapRewriteDomain sharedcdn.example.com/vhost1 vhost1.example.com
- Nginx:
pagespeed MapOriginDomain localhost sharedcdn.example.com/vhost1 vhost1.example.com; pagespeed MapRewriteDomain sharedcdn.example.com/vhost1 vhost1.example.com;
This would be used in conjunction with a VirtualHost setup for vhost1.example.com, and a single CDN setup for multple hosts segregated by subdirectory.
Sharding domains
Best practices suggest minimizing round-trip times by parallelizing downloads across hostnames. PageSpeed can partially automate this for resources that it rewrites, using the directive:
- Apache:
ModPagespeedShardDomain domain_to_shard shard1,shard2,shard3...
- Nginx:
pagespeed ShardDomain domain_to_shard shard1,shard2,shard3...;
Wildcards cannot be used in this directive.
This will distribute the domains for rewritten URLs among the specified shards. The shard selected for a particular URL is computed from the original URL.
- Apache:
ModPagespeedShardDomain example.com \ static1.example.com,static2.example.com
- Nginx:
pagespeed ShardDomain example.com static1.example.com,static2.example.com;
Using this directive, PageSpeed will distribute roughly half the
resources rewritten from example.com
into static1.example.com
, and the rest to
static2.example.com
. You can specify as many shards as
you like. The optimum number of shards is a topic of active
research, and is browser-dependent. Configuring between 2 and 4
shards should yield good results. Changing the number of shards
will cause PageSpeed to choose different names for resources,
resulting in a partial cache flush.
When used in combination with RewriteDomain
, the Rewrite
mappings will be done first. Then the shard selection occurs. Origin domains
are always tracked so that when a browser sends a sharded URL back to the
server, PageSpeed can find it.
Let's look at an example:
- Apache:
ModPagespeedShardDomain example.com static1.example.com,static2.example.com ModPagespeedMapRewriteDomain example.com www.example.com ModPagespeedMapOriginDomain localhost example.com
- Nginx:
pagespeed ShardDomain example.com static1.example.com,static2.example.com; pagespeed MapRewriteDomain example.com www.example.com; pagespeed MapOriginDomain localhost example.com;
In this example, example.com
and www.example.com
are "tied" together via
MapRewriteDomain
. The origin-mapping
to localhost
propagates automatically
to www.example.com
, static1.example.com
, and
static2.example.com
. So when PageSpeed cache-extends an HTML
stylesheet reference http://www.example.com/styles.css
, it will be:
- Fetched by the server rewriting the HTML
from
localhost
- Rewritten to
http://example.com/styles.css.pagespeed.ce.HASH.css
- Sharded to
http://static1.example.com/styles.css.pagespeed.ce.HASH.css
Proxying and optimizing resources from trusted domains
Proxying resources is desirable under several scenarios:
- The resources on the origin domain may benefit from optimizations done by PageSpeed.
- SPDY may work better if there are fewer domains on a page.
- The target domain running PageSpeed may have better serving infrastructure than the origin.
It is possible to proxy and optimize resources whose origin is a trusted
domain that may not be running PageSpeed. This cannot be directly achieved
with MapRewriteDomain because that is a declaration that the domains listed
are functionally equivalent to one another, either because they are backed by
the same storage, or because the target is acting as a proxy (e.g. a
CDN). MapProxyDomain
makes it technically possible to proxy and
optimize resources from any domain that you trust.
You must only proxy resources that are controlled by an organization you trust because it is possible for malicious content (e.g. GIFAR) proxied from an untrustworthy domain to gain access to private content on your domain, compromising your site or its viewers. You must never map directories that may contain files that may be controlled by a third party.
There may be legal issues restricting the optimization of resources you don't own. If in doubt consult a lawyer. {# TODO(jmarantz): it should be possible to use this directive in #} {# combination with Disallow & rewrite_domains to proxy without #} {# optimizing. A demo/test of that will be left for a follow-up. #}
- Apache:
ModPagespeedMapProxyDomain target_domain/subdir \ origin_domain/subdir [rewrite_domain/subdir]
- Nginx:
pagespeed MapProxyDomain target_domain/subdir origin_domain/subdir [rewrite_domain/subdir];
If the optional rewrite_domain/subdir argument is supplied then optimized resources will be rewritten to that location. This is useful for rewriting optimized resources proxied from an external origin to a CDN.
It is important to specify a subdirectory in the target domain, because PageSpeed will need to be able to unambiguously identify the origin domain given the target when fetching content. Thus each MapProxyDomain command should be given a distinct subdirectory of the target domain.
It is important to specify a subdirectory in the origin domain to limit the scope of the proxying. For example, in picasaweb, all of a user's photos are underneath a single subdirectory; it is critical not to enable proxying for the entire site.
Example
You can see proxy-mapping in action at www.modpagespeed.com
on this
example.
Fetch server restrictions
PageSpeed will only fetch resources from localhost
and
domains explicitly mentioned in domain configuration directives such
as Domain
, MapRewriteDomain
and MapOriginDomain
. As this security restriction is not
desirable for some large deployments, in Apache it is possible to disable it
starting from <IP_ADDRESS>, via the following configuration directive (which has
a global effect):
ModPagespeedDangerPermitFetchFromUnknownHosts on
Warning: Enabling
DangerPermitFetchFromUnknownHosts
could permit
hostile third parties to access any machine and port that the server running
mod_pagespeed has access to, including potentially those behind firewalls.
- The server running mod_pagespeed has no more access to machines or
ports than anyone on the Internet, and that machines it can access will
not treat its traffic specially (mod_pagespeed <IP_ADDRESS> and newer will
make sure its own traffic to
localhost
does not appear to be local, but that does not work across machines) - Every virtual host in Apache running mod_pagespeed (and, if applicable,
the global configuration) has an accurate explicit
ServerName
, and sets the optionsUseCanonicalName
andUseCanonicalPhysicalPort
toOn
. - A proxy running in front of the mod_pagespeed server fully verifies that
the URLs and
Host:
headers that reach it refer only to machines the mod_pagespeed server is expected to contact.
MapOriginDomain
in preference to this switch.
Specifying additional URL-valued attributes
All PageSpeed filters that process URLs need to know which attributes of which elements to consider. By default they consider those in the HTML4 and HTML5 specifications and a few common extensions:
 <area href=...> <audio src=...>
  <button formaction=...> <command icon=...>  <embed src=...> <form action=...> <frame src=...>    <input type="image" src=...>  <link href=...> <q cite=...>


SmartGlow
Light Regulator
Connection informations
MQTT broker
[MQTT DANGER TEXT]
[MQTT SUCCESS TEXT]
Connect
System settings
Automatic light adjustment
Lights brightness
Update


Non omnis moriar. Exegi monumentum1.
1 or, actually, just many abandoned projects and GitHub repos
This is to testify I was actually really fluffin' busy.
In loving memory of all the products I never shipped.
thedjinn.io
was a service that allowed users to select CSS selectors
on a website and harvest data and feed them into online charts.
authmagic.io
was a service enabled their users to quickly implement
Slack-like magic login links. And a number of other magic (auth) things.
Based off of etcd
, this was meant to be a highly available,
distributed open-source cron implementation.
Initially based on a standalone raft algorithm implementation.
Born out of passion for affordable traveling, cheapestflights.world
was a mailing list where my co-founder and I shared some crazy deals
we managed to find.


My Cat Fiona
About Me
I am an orange tabby! I love cuddles and purring. Some day I will catch the laser pointer.
Here are some of my favorite things:
- Naps
- Laser Pointers
- Belly Rubs
- Treats
- Strings
Here are some of my favorite foods:
Best Nap Spots
- In the Sun
- On the Bed
- On the Fridge
- On the Couch


Idaho college receives $1.1M to expand teacher training
by The Associated PressTWIN FALLS, Idaho (AP) — An Idaho college has received a $1.1 million grant to help reverse a statewide teacher shortage through an alternative certification program.
The Times-News reports the College of Southern Idaho plans to expand its Non-Traditional Educator Preparation Program.
The state Workforce Development Council operating under the office of Republican Gov. Brad Little approved the grant.
Officials say the program is for teachers without a certificate or hoping to change their certificate and career changers or paraprofessionals who want to become fully accredited teachers.
Officials say the accelerated, four-semester program provides classroom mentors for hands-on training as well as monthly course material delivered in person or online.
The program is expected to train 830 teachers over the three-year period of the grant.
___
Information from: The Times-News, http://www.magicvalley.com
The Associated Press


Book Cover Maker
Once you start typing your information, the preview on the right will get updated!
Save Cover
Book Title
Book Subtitle
Author Name
Publisher
Publishing Year
Background Color
Book Title Color
Book Subtitle Color
Author Name Color
Publisher Color
Publishing Year Color
Brought to you by:
Publisher
Your Title
Your Subtitle Here
By:
Author
Publishing Year Here
You can download the cover by right-clicking it and choosing "save image as"
or click outside this rectangle to return to editing.


NPM:
npm install fuckadblock
Bower:
bower install fuckadblock
CDN:
https://cdnjs.cloudflare.com/ajax/libs/fuckadblock/3.2.1/fuckadblock.min.js<EMAIL_ADDRESS>Integrity:
sha256-4/8cdZfUJoNm8DLRzuKwvhusQbdUqVov+6bVj9ewL7U= (fuckadblock.js) sha256-xjwKUY/NgkPjZZBOtOxRYtK20GaqTwUCf7WYCJ1z69w= (fuckadblock.min.js)
Ideally positioned at the end of <body>.
// Function called if AdBlock is not detected
function adBlockNotDetected() {
alert('AdBlock is not enabled');
}
// Function called if AdBlock is detected
function adBlockDetected() {
alert('AdBlock is enabled');
}
// We look at whether FuckAdBlock already exists.
if(typeof fuckAdBlock !== 'undefined' || typeof FuckAdBlock !== 'undefined') {
// If this is the case, it means that something tries to usurp are identity
// So, considering that it is a detection
adBlockDetected();
} else {
// Otherwise, you import the script FuckAdBlock
var importFAB = document.createElement('script');
importFAB.onload = function() {
// If all goes well, we configure FuckAdBlock
fuckAdBlock.onDetected(adBlockDetected)
fuckAdBlock.onNotDetected(adBlockNotDetected);
};
importFAB.onerror = function() {
// If the script does not load (blocked, integrity error, ...)
// Then a detection is triggered
adBlockDetected();
};
importFAB.integrity = 'sha256-xjwKUY/NgkPjZZBOtOxRYtK20GaqTwUCf7WYCJ1z69w=';
importFAB.crossOrigin = 'anonymous';
importFAB.src = 'https://cdnjs.cloudflare.com/ajax/libs/fuckadblock/3.2.1/fuckadblock.min.js';
document.head.appendChild(importFAB);
}
// At launch, check if AdBlock is enabled
// Uses the method fuckAdBlock.check()
checkOnLoad: true
// At the end of the check, is that it removes all events added ?
resetOnEnd: true
// The number of milliseconds between each check
loopCheckTime: 50
// The number of negative checks after which there is considered that AdBlock is not enabled
// Time (ms) = 50*(5-1) = 200ms (per default)
loopMaxNumber: 5
// CSS class used by the bait caught AdBlock
baitClass: 'pub_300x250 pub_300x250m pub_728x90 text-ad textAd text_ad text_ads text-ads text-ad-links'
// CSS style used to hide the bait of the users
baitStyle: 'width: 1px !important; height: 1px !important; position: absolute !important; left: -10000px !important; top: -1000px !important;'
// Displays the debug in the console (available only from version 3.2 and more)
debug: false
// Allows to set options
// #options: string|object
// #value: string
fuckAdBlock.setOption(options, value);
// Allows to check if AdBlock is enabled
// The parameter 'loop' allows checking without loop several times according to the value of 'loopMaxNumber'
// Example: loop=true => time~=200ms (time varies depending on the configuration)
// loop=false => time~=1ms
// #loop: boolean (default: true)
fuckAdBlock.check(loop);
// Allows to manually simulate the presence of AdBlock or not
// #detected: boolean (AdBlock is detected ?)
fuckAdBlock.emitEvent(detected);
// Allows to clear all events added via methods 'on', 'onDetected' and 'onNotDetected'
fuckAdBlock.clearEvent();
// Allows to add an event if AdBlock is detected
// #detected: boolean (true: detected, false: not detected)
// #fn: function
fuckAdBlock.on(detected, fn);
// Similar to fuckAdBlock.on(true|false, fn)
fuckAdBlock.onDetected(fn);
fuckAdBlock.onNotDetected(fn);
(Available only from version 3.1 and more)
By default, FuckAdBlock is instantiated automatically.
To block this automatic instantiation, simply create a variable "fuckAdBlock" with a value (null, false, ...) before importing the script.
<script>var fuckAdBlock = false;</script>
<script src="./fuckadblock.js"></script>
After that, you are free to create your own instances:
fuckAdBlock = new FuckAdBlock;
// and|or
myFuckAdBlock = new FuckAdBlock({
checkOnLoad: true,
resetOnEnd: true
});


|
| |||
| Managed Object Types | Data Object Types | All Properties | All Methods |
Enum Constants
| Name | Description |
|---|---|
| vmAndAppMonitoring |
HA response to both guest and application heartbeat failure is enabled.
|
| vmMonitoringDisabled |
Virtual machine health monitoring is disabled. In this state,
HA response to guest and application heartbeat failures are disabled.
|
| vmMonitoringOnly |
HA response to guest heartbeat failure is enabled.
To retrieve the guest heartbeat status, use the
VirtualMachine.guestHeartbeatStatus
property.
|
| Top of page | |||
| Managed Object Types | Data Object Types | All Properties | All Methods |


LSTMForecaster
LSTMForecaster
Introduction
Long short-term memory(LSTM) is a special type of recurrent neural network(RNN). We implement the basic version of LSTM - VanillaLSTM for this forecaster for time-series forecasting task. It has two LSTM layers, two dropout layer and a dense layer. LSTMForecaster is derived from tfpark.KerasMode, and can use all methods of KerasModel. Refer to tfpark.KerasModel API Doc for details.
For the detailed algorithm description, please refer to here.
Method
Arguments
target_dim
: Specify the number of variables we want to forecast. i.e. the the dimension of model output feature. This value defaults to 1.feature_dim
: Specify the number of variables we have in the input data. i.e. the the dimension of model input feature. This value defaults to 1.lstm_units
: Specify the dimensionality of the output space for LSTM layers. This value defaults to (16, 8).dropouts
: Specify the fraction of the input units to drop for dropout layers. This value defaults to 0.2. Note that The same dropout rate will be set to all layers if dropouts is one float value while lstm_units has multiple elements.metric
: Specify the metric for validation and evaluation. This value defaults to MSE.lr
: Specify the learning rate. This value defaults to 0.001.loss
: Specify the target function you want to optimize on. This value defaults to MSE.optimizer
: Specify the optimizer used for training. This value defaults to Adam.
__init__
LSTMForecaster(target_dim=1,
feature_dim=1,
lstm_units=(16, 8),
dropouts=0.2,
metric="mean_squared_error",
lr=0.001,
loss="mse",
optimizer="Adam",
)
fit, evaluate, predict
Refer to fit, evaluate, predict defined in tfpark.KerasModel API Doc


Write. Post. Explore.
Summer of 2017 I went to Alaska to work at Sheep Mountain Lodge.
The experience was incredible. The wildlife is abundant and the people are very independent.
Matanuska Glacier is 5 minutes away from Sheep Mountain Lodge. There are tours where you can trek and ice climb the glacier.
Last updated 3 mins ago
In 2016, I got to sail under the Golden Gate Bridge with my team form the ship named the Pride of America
The experience was surreal and the Golden Gate glistened underneath the dim sun.
Last updated 3 mins ago
Poipu is a beach located in Kauai, HW. This beach is known for its massive sea turtles and
seals. They will often come up on the beach and lay out in the sun. The animal patrol units will set up caution tape around them to make
sure they are not disturbed by the bustling tourists trying to get a closer look. I definitely recommend this place
Last updated 3 mins ago