A listing of files within multifiles for management of client-side synchronization with a server-provided set of files.
More...
|
| | __init__ () |
| | Primarily used for testing. More...
|
| |
| | __init__ (const DownloadDb) |
| |
| | __init__ (Filename server_file, Filename client_file) |
| | Create a download db with these client and server dbs. More...
|
| |
| | __init__ (Ramfile server_file, Filename client_file) |
| | Create a download db with these client and server dbs. More...
|
| |
| | addClientMultifile (str server_mfname) |
| |
| | addVersion (const Filename name, const HashVal hash, int version) |
| | Appends a new version of the file onto the end of the list, or changes the hash associated with a version previously added.  More...
|
| |
| bool | clientMultifileDecompressed (str mfname) |
| |
| bool | clientMultifileExists (str mfname) |
| |
| bool | clientMultifileExtracted (str mfname) |
| |
| | createNewServerDb () |
| | Used on the server side makefiles to create a new clean server db. More...
|
| |
| | deleteClientMultifile (str mfname) |
| |
| | expandClientMultifile (str mfname) |
| |
| HashVal | getClientMultifileHash (str mfname) |
| | Return the hash value of the file we are working on. More...
|
| |
| str | getClientMultifileName (int index) |
| |
| Phase | getClientMultifilePhase (str mfname) |
| |
| int | getClientMultifileSize (str mfname) |
| |
| int | getClientNumMultifiles () |
| |
| const HashVal | getHash (const Filename name, int version) |
| | Returns the MD5 hash associated with the indicated version of the indicated file. More...
|
| |
| int | getNumVersions (const Filename name) |
| | Returns the number of versions stored for the indicated file. More...
|
| |
| str | getServerFileName (str mfname, int index) |
| |
| HashVal | getServerMultifileHash (str mfname) |
| | Return the hash value of the server file. More...
|
| |
| str | getServerMultifileName (int index) |
| |
| Phase | getServerMultifilePhase (str mfname) |
| |
| int | getServerMultifileSize (str mfname) |
| |
| int | getServerNumFiles (str mfname) |
| |
| int | getServerNumMultifiles () |
| |
| int | getVersion (const Filename name, const HashVal hash) |
| | Returns the version number of this particular file, determined by looking up the hash generated from the file. More...
|
| |
| bool | hasVersion (const Filename name) |
| | Returns true if the indicated file has version information, false otherwise. More...
|
| |
| | insertNewVersion (const Filename name, const HashVal hash) |
| | Inserts a new version 1 copy of the file, sliding all the other versions up by one. More...
|
| |
| | output (Ostream out) |
| |
| DownloadDb::Db | readDb (Filename file, bool want_server_info) |
| |
| DownloadDb::Db | readDb (Ramfile file, bool want_server_info) |
| |
| | serverAddFile (str mfname, str fname) |
| |
| | serverAddMultifile (str mfname, Phase phase, int size, int status) |
| |
| | setClientMultifileComplete (str mfname) |
| |
| | setClientMultifileDecompressed (str mfname) |
| |
| int | setClientMultifileDeltaSize (str mfname, int size) |
| |
| | setClientMultifileExtracted (str mfname) |
| |
| | setClientMultifileHash (str mfname, HashVal val) |
| | Set the hash value of file we are working on. More...
|
| |
| | setClientMultifileIncomplete (str mfname) |
| |
| | setClientMultifileSize (str mfname, int size) |
| |
| | setNumVersions (const Filename name, int num_versions) |
| | Reduces the number of versions of a particular file stored in the ddb by throwing away all versions higher than the indicated index. More...
|
| |
| | setServerMultifileHash (str mfname, HashVal val) |
| | Set the hash value of file we are working on. More...
|
| |
| | setServerMultifileSize (str mfname, int size) |
| |
| | write (Ostream out) |
| |
| bool | writeClientDb (Filename file) |
| |
| bool | writeDb (Filename file, DownloadDb::Db db, bool want_server_info) |
| |
| bool | writeServerDb (Filename file) |
| |
| | writeVersionMap (Ostream out) |
| |
A listing of files within multifiles for management of client-side synchronization with a server-provided set of files.
This class manages one copy of the database for the client, representing the files on the client system, and another copy for the server, representing the files the server has available.


| Interface | Description |
|---|---|
| CallBack |
| Class | Description |
|---|---|
| ApproximateStringMatcher | |
| ArrayWrappedIntIntMap |
Simple Map type data structure for storing entries of (int -> int) mappings where the max key value is below 2^16
to avoid hashing keys and use direct array index reference for retrieving the values.
|
| AssertionUtil | |
| BatchPrinter |
Tool for printing the content of record batches to screen.
|
| ByteBufUtil | |
| ByteBufUtil.HadoopWritables |
Modeled after
org.apache.hadoop.io.WritableUtils . |
| DecimalUtility | |
| DrillExceptionUtilTest | |
| DrillFileSystemUtil |
In Drill file system all directories and files that start with dot or underscore is ignored.
|
| DrillFileSystemUtilTest | |
| EncodedSchemaPathSet |
This class provided utility methods to encode and decode a set of user specified
SchemaPaths to a set of encoded SchemaPaths with the following properties.
|
| ExecutorServiceUtilTest |
Tests for validating the Drill executor service utility class
|
| FileSystemUtil |
Helper class that provides methods to list directories or file or both statuses.
|
| FileSystemUtilTest | |
| FileSystemUtilTestBase |
Base test class for file system util classes that will during test initialization
setup file system connection and create directories and files needed for unit tests.
|
| ImpersonationUtil |
Utilities for impersonation purpose.
|
| JarUtil | |
| JsonStringArrayList<E> | |
| JsonStringHashMap<K,V> | |
| MemoryAllocationUtilities | |
| MiniZooKeeperCluster |
Mostly Copied from HBase's MiniZooKeeperCluster, but without the Hadoop dependency.
|
| Pointer<T> | |
| SerializationModule |
This helper class holds any custom Jackson serializers used when outputing
the data in JSON format.
|
| StoragePluginTestUtils |
Utility methods to speed up tests.
|
| SystemPropertyUtil |
A collection of utility methods to retrieve and parse the values of Java system properties.
|
| TestApproximateStringMatcher | |
| TestArrayWrappedIntIntMap | |
| TestQueryMemoryAlloc | |
| TestValueVectorElementFormatter | |
| Text |
A simplified byte wrapper similar to Hadoop's Text class without all the dependencies.
|
| Text.TextSerializer | |
| Utilities | |
| ValueVectorElementFormatter |
This class is responsible for formatting ValueVector elements.
|
| VectorUtil |
| Enum | Description |
|---|---|
| ActionOnFile |
Defines possible actions on the file and performs the necessary action
|
Copyright © 2021 The Apache Software Foundation. All rights reserved.


Writing expressions with TALES
Both METAL & TAL attributes make use of expressions to access values from the object model which was provided to the rendering process. These expressions are written in the Template Attribute Language Expression Syntax: TALES.
TALES expression types
TALES is in fact a collection of expression types, each with its own syntax. In ZPT-Sharp, each expression type is provided by a plugin. The installed plugins determine which expression types are available.
<div tal:define="message string:Welcome!">
Hello
</div>
In the example above, the string expression type is selected by using the prefix
string:
.
One of the installed expression type plugins must be nominated in the application configuration file as the default expression type. Any expressions which are not qualified with a prefix are evaluated using the default expression plugin; typically that is the path expression plugin.
The standard expression types
The following lists a few examples of the 'standard' expression plugins which are installed by the ZPT-Sharp NuGet bundles. At the end of this page, a few other plugins are listed which are not shipped as standard.
Easily access model values
TALES path expressions provide a simplified read-only perspective of a .NET object model.
path:here/CurrentUser/GetShoppingCart/Contents/Count
Path expressions traverse items within an object hierarchy using the forward-slash character. This syntax is familiar to developers and designers alike, as it looks similar to a URL. Expressions may traverse properties, methods (as long as they have no parameters), indexers and readable fields, all using the same notation.
path:user/Nickname | user/FullName | user/Username
Path expressions may also include multiple paths, separated by the pipe symbol. In this case, the first path which is successfully evaluated is returned as the result of the expression.
Path expressions are very powerful; there is more to read about their capabilities on their detailed documentation page.
Negate boolean values
The not expression plugin always prefixes another expression.
not:path:quotes/Hamlet/ToBe
The expression following the not:
prefix is evaluated in isolation and its result is
coerced to either true or false.
Finally, the opposite of that boolean value is returned as the expression result.
The rules for coercing values to true/false are found in the not expression's documentation page.
Write and format strings
The string plugin may be used to provide text values. Its usefulnes comes to light when used with placeholders to inject the results of path expressions into the string.
string:Hello $name; how are you feeling today?
As can be seen from the example, placeholders are denoted with the dollar symbol. More complex paths must be prefixed with a dollar symbol and encapsulated in braces.
string:You have ${user/BooksOnLoan/GetHumanReadableCount | noBooks} on loan
The full documentation page for string expressions goes into further depth about how they are written.
Evaluate C♯ expressions
It is also possible to evaluate native C♯ expressions, using the csharp expression plugin.
csharp:String.Concat(user.Forename.Substring(0, 1), " ", user.Surname)
The example above creates an abbreviated full-name using the first character of the user's forename and their full surname.
Notice that the double-quotation marks in the expression had to be encoded as "
?
Because TALES expressions are written inside HTML/XML attribute values, naked double-quotes are not permitted,
meaning that the encoding is mandatory.
The same is true of greater-than, less-than and ampersand symbols.
There is a lot more to learn about the capabilities and also the limitations of C♯ expressions within ZPT-Sharp. This information is available on C♯ expressions documentation page.
Other expression types
The following expression types not distributed in the standard ZPT-Sharp bundles. They are available via freely installable plugins if desired.
- Python expressions allow you to evaluate native Python expressions, via Iron Python.
- Load expressions instruct ZPT-Sharp to load another document/view and render it using the current model. Particularly useful when combined with TAL content/replace attributes which use the structure modifier.


Collaborative work made simple.
The dead easy repository for Coq libraries.
Install OPAM and run:
opam repo add coq https://github.com/coq/repo-stable.git opam search that-super-library opam install that-super-library


email-title
email-content
To make a long story ... great!
© 2010 - 2014 Baalil Ltd.
This is a system generated message. Please do not reply.
Sincerely, SixQs ® Team
+972-4-8335263
admin@sixqs.com


Wrapper of DataWarehouse variables for both basic and complex differential operations at both physical and amr boundaries.
More...
#include <BCFDView.h>
|
| | BCFDView (const typename Field::label_type &label, const VarLabel *subproblems_label, int material, const Level *level, const std::vector< BCInfo< Field > > &bcs) |
| | Constructor. More...
|
| |
| | BCFDView (DataWarehouse *dw, const typename Field::label_type &label, const VarLabel *subproblems_label, int material, const Patch *patch, const std::vector< BCInfo< Field > > &bcs, bool use_ghosts=use_ghosts_dflt) |
| | Constructor. More...
|
| |
| virtual | ~BCFDView ()=default |
| | Destructor. More...
|
| |
| | BCFDView (const BCFDView &)=delete |
| | Prevent copy (and move) constructor. More...
|
| |
| BCFDView & | operator= (const BCFDView &)=delete |
| | Prevent copy (and move) assignment. More...
|
| |
template<typename Problem, size_t I, BCF... P>
class Uintah::PhaseField::BCFDView< Problem, I, P >
Wrapper of DataWarehouse variables for both basic and complex differential operations at both physical and amr boundaries.
Factory Implementation for dynamic instantiation
- Template Parameters
-
◆ BCFDView() [1/3]
template<typename Problem , size_t I, BCF... P>
Constructor.
Instantiate view components without gathering info from the DataWarehouse
- Parameters
-
| label | list of variable labels for each component |
| subproblems_label | label of subproblems in the DataWarehouse |
| material | material index |
| level | grid level |
| bcs | vector with info on the boundary conditions |
◆ BCFDView() [2/3]
template<typename Problem , size_t I, BCF... P>
Constructor.
Instantiate a view and gather info from dw
- Parameters
-
| dw | DataWarehouse from which data is retrieved |
| label | label of variable in the DataWarehouse |
| subproblems_label | label of subproblems in the DataWarehouse |
| material | index of material in the DataWarehouse |
| patch | grid patch |
| bcs | vector with info on the boundary conditions |
| use_ghosts | if ghosts value are to be retrieved |
◆ ~BCFDView()
template<typename Problem , size_t I, BCF... P>
◆ BCFDView() [3/3]
template<typename Problem , size_t I, BCF... P>
Prevent copy (and move) constructor.
◆ operator=()
template<typename Problem , size_t I, BCF... P>
Prevent copy (and move) assignment.
◆ Name
template<typename Problem , size_t I, BCF... P>
◆ use_ghosts_dflt
template<typename Problem , size_t I, BCF... P>
Default value for use_ghost when retrieving data.
The documentation for this class was generated from the following file:


It is a simple application that converts image metadata in JCAMP-DX format to CSV format.
Choose a folder that contains JCAMP files. Once this step is done, step 2 will be available.
Click on the Generate button to generate a file. Then the newly generated file will be placed under the Result Files section. The file can then be opened, viewed, downloaded, and deleted. Generated files are kept until they are manually deleted or Chrome browser refreshes its cache.


This website is about me and my hobbies.
However, when I say hobbies I actually mean my favorite video games and their competitive aspects.
Hope you enjoy your stay!
Phone:<PHONE_NUMBER>
E-Mail: leefred1@msu.edu


Musharraf treason case: Special court to announce verdict on Nov 28
by Hasnaat MalikISLAMABAD: The special court hearing a high treason case against former military ruler General (retd) Pervez Musharraf will announce its verdict on November 28.
After a passage of six years, the three-judge special court led by Justice Waqar Ahmed Seth reserved its verdict on Tuesday.
The case against the military dictator was filed by the Pakistan Muslim League – Nawaz (PML-N) government in late 2013 for subverting the Constitution when he imposed a state of emergency on November 3, 2007.
Musharraf seized power in 1999 after a coup against then-prime minister Nawaz Sharif who had tried to remove him as army chief.
He was forced out nine years later when threatened with impeachment and lived in self-imposed exile till his return to Pakistan in March 2013.
Musharraf became Pakistan’s first army chief to be charged with treason when he was indicted on March 31, 2014.
He pleaded not guilty to five charges and dismissed them as being politically motivated.
The trial, however, could not be concluded over the past six years due to several reasons.
First, the special court initially directed the federal government to include three more individuals and initiate a treason case against them.
Consequently, the proceedings remained suspended for a couple of years until the Supreme Court set aside the special court’s order and directed it to proceed against Musharraf only.
In March 2016, the former army chief left Pakistan to seek medical treatment in Dubai.
In October this year, the Pakistan Tehreek-e-Insaf (PTI) government de-notified the prosecution team which was hired in December 2013 by the PML-N government.
Renowned lawyer Akram Sheikh was heading the prosecution team. He resigned soon after the PTI’s victory in the 2018 general elections and the remaining team members were sacked this year.


Self-awareness Area of Focus
Objective - I have clearly defined what TRANSITION means to me - both personally and professionally:
Desired End State - I can clearly describe what successful TRANSITION looks and feels like:
Self-Reflection - I have a clear sense of who I am and what really matters to me - both personally and professionally:
EQ - I am able to use emotional information in an effective and meaningful way:
Strengths and Spiritual Wellness - I have identified my talents, my strengths, and the problems I want to solve in the future:
Values - I have a clear understanding of my personal values to guide my decision making:
Priorities - I have developed a personal decision matrix of both personal and professional priorities to guide my decision making:
I have identified the expectations I have for my actions and those who I chose to spend time with:
Self-awareness Area of Focus
Objective - I have clearly defined what TRANSITION means to me - both personally and professionally:
Objective - I have clearly defined what TRANSITION means to me - both personally and professionally:
Objective - I have clearly defined what TRANSITION means to me - both personally and professionally:
Objective - I have clearly defined what TRANSITION means to me - both personally and professionally:
Objective - I have clearly defined what TRANSITION means to me - both personally and professionally:


R.P.R.P.G.
(Reproducible Pseudo Random Password Generator)
First name:
Last name:
Birthday:
Email:
Username:
Account:
Password Length:
Characters to exclude:
Characters to include:
Extra Passphrase:
Your Password is:
Include Lowercase Letters?
Yes
No
Include Uppercase Letters?
Yes
No
Include Numbers?
Yes
No
Include these symbols?
'!@#$%^&*()-=_+[]:;',./?`~'
Yes
No
Use new generate seed? This is a new feature added at May 4, 2019 20:38 PST. If your are trying to re-generate a password from before this time, do not select this option
Yes
No
Go to Repo


class: center, top, title-slide # STAT 302 Lecture Slides 7 ## Statistical Applications: SVD and PCA ### Bryan Martin --- # Outline 1. Singular Value Decomposition (SVD) 2. Dimension Reduction 3. Image Analysis 4. Cluster Analysis 5. Principal Components Analysis (PCA) .middler[**Goal:** Appreciate the beauty of SVD and PCA!] --- class: inverse .sectionhead[Part 1. Singular Value Decomposition (SVD)] --- layout: true # SVD --- ## Motivation Often times, we are interested in identifying patterns or other interesting information in *high-dimensional* data, as is often done in clustering. Or we want to preserve the inherent structure in our data while reducing the complexity and size, such as image compression. Other times, we may want to assess variable importance. SVD provides a powerful tool to do all of these things, and more! * Image compression * De-noising * Clustering / pattern detection * Variable selection * Recommendation systems -- .middler[] --- ## Definition A **singular value decomposition**, or **SVD**, is a decomposition (obviously). It is not a function or transformation! `$$\mathbf{X} = \mathbf{U} \mathbf{D} \mathbf{V}^T$$` * **Input:** Any `\(n \times p\)` matrix `\(\mathbf{X}\)` * **Output:** * `\(\mathbf{U}\)`: `\(n \times n\)` orthogonal[1] matrix * `\(\mathbf{D}\)`: `\(n \times p\)` matrix * `\(\mathbf{V}\)`: `\(p \times p\)` orthogonal matrix Note that `\(\mathbf{U}\)`, `\(\mathbf{D}\)`, and `\(\mathbf{V}\)` are all **unique**! While this definition of SVD is true for all matrices, in practice, we almost always encounter the SVD in *reduced form*. $$\ $$ [1] A matrix `\(\mathbf{A}\)` is orthogonal if `\(\mathbf{A}^T\mathbf{A}=\mathbf{A}\mathbf{A}^T = \mathbf{I}\)`, where `\(\mathbf{I}\)` is the identity matrix. --- layout: false # Tall Matrix - Full SVD .middler[] --- # Tall Matrix - Reduced SVD .middler[] --- # Wide Matrix - Full SVD .middler[] --- # Wide Matrix - Reduced SVD .middler[] --- # Components of SVD .center[] * `\(\mathbf{U}\)`: left singular vectors, `\(\mathbf{u}\)` * Interpretation: map our `\(n\)` observations to `\(p\)` "concepts" * `\(\mathbf{D}\)`: singular values, `\(\sigma\)` * Interpretation: strengths of each "concept" * `\(\mathbf{V}\)`: right singular vectors, `\(\mathbf{v}\)` * Interpretation: map our `\(p\)` variables to `\(p\)` "concepts" --- # Matrix Rank The **rank** of a matrix is equal to * the maximum number of **linearly independent** row vectors in the matrix * the maximum number of **linearly independent** column vectors in the matrix These definitions are equivalent. Note that for a matrix `\(\mathbf{X}\in \mathbb{R}^{n \times p}\)`, the maximum possible `\(\text{rank}(\mathbf{X}) = \text{min(n,p)}\)`. If `\(\mathbf{X}\)` has this rank, it is called a **full rank** matrix. --- # Rank-k Approximation Among the most useful properties of the SVD is that it provides us with a method to calculate the *optimal*[1] rank `\(k\)` approximation to a matrix `\(\mathbf{X}\)`. \\[ `\begin{equation} \tilde{\mathbf{X}}_k =\tilde{\mathbf{U}}_k\tilde{\mathbf{D}}_k\tilde{\mathbf{V}}_k^T = \sum_{i=1}^{k} \sigma_i \mathbf{u}_i\mathbf{v}_i^T \end{equation}` \\] * `\(\tilde{\mathbf{X}}_k\)`: best rank `\(k\)` approximation to `\(\mathbf{X}\)` * `\(\tilde{\mathbf{U}}_k\)`: first `\(k\)` singular vectors (columns) of `\(\mathbf{U}\)` * `\(\tilde{\mathbf{D}}_k\)`: leading `\(k\times k\)` sub-block of `\(\mathbf{D}\)` * `\(\tilde{\mathbf{V}}_k^T\)`: first `\(k\)` singular vectors (rows) of `\(\mathbf{V}^T\)` Note that we can also write out this approximation by summing up the product first `\(k\)` singular values and singular vectors .footnote[[1] Optimal in the L2 sense. Not important for this class, but happy to talk about what this means in more detail if you are curious.] --- layout: true # Interpretation - Movie Ratings --- .middler[] .footnote[Thanks to [Mining of Massive Datasets, Chapter 11](http://www.mmds.org/) for this motivating data] --- .middler[] --- ## `\(\mathbf{U}\)` as "user-to-concept" .center[] .footnote[Note: Sign of the values aren't super important, except in how they contrast within singular vector. Focus on the magnitudes.] --- ## `\(\mathbf{D}\)` as "strength of concept" .center[] --- ## `\(\mathbf{V}^T\)` as "movie-to-concept" .center[] .footnote[Note: Sign of the values aren't super important, except in how they contrast within singular vector. Focus on the magnitudes.] --- layout: false # A note on "concepts" The concepts we are discussing are not objective. There is no "truth" inherent in our concepts of sci-fi and romance. Even in this contrived and simplified example, we are reducing the movies to core ideas or genres that we are calling concepts. In the real world these concepts are not so clear, we can only intuit them in so far as our data allows. For example, in our case without any previous knowledge, we might see from `\(\mathbf{V}^T\)` that Matrix, Alien, and Star Wars are all closely related to something that Casablanca and Titanic are not. This gives us a concept of Sci-fi! Likewise, we could do the same to "derive" our concept of romance. After all, what's that third concept supposed to be? --- class: inverse .sectionhead[Part 2. Dimension Reduction] --- layout: true # Dimension Reduction --- Maybe we think our third concept is just noise, what can we do? Set it equal to `\(0\)`! .center[] --- Maybe we think our third concept is just noise, what can we do? Set it equal to `\(0\)`! .center[] --- Maybe we think our third concept is just noise, what can we do? Set it equal to `\(0\)`! .center[] --- Maybe we think our third concept is just noise, what can we do? Set it equal to `\(0\)`! .center[] --- layout: false # Recommendation System What if we have rankings for a new user, and we want to make an educated guess about what genres they prefer for recommendations? .center[] Note: We can use a similar procedure multiplying several users' ratings of a new movie by `\(\mathbf{U}\)` users-to-concepts vectors in order to put movies into certain genres! --- class: inverse .sectionhead[Part 3. Image Analysis] --- layout: true # Image Analysis --- We'll use the package `jpeg` for this section. There are other options for handling images in R, I encourage you to Google them if you end up working with images! ```r library(jpeg) # Load my image tmp <- "https://raw.githubusercontent.com/bryandmartin/STAT302/master/images/cameraman.jpg" # Read image into R img <- readJPEG(readBin(tmp, "raw",1e6)) dim(img) ``` ``` ## [1] 256 256 ``` ```r img[1:5, 1:5] ``` ``` ## [,1] [,2] [,3] [,4] [,5] ## [1,] 0.6196078 0.6156863 0.6196078 0.6078431 0.6196078 ## [2,] 0.6196078 0.6156863 0.6196078 0.6117647 0.6196078 ## [3,] 0.6156863 0.6117647 0.6156863 0.6117647 0.6196078 ## [4,] 0.6117647 0.6117647 0.6156863 0.6156863 0.6196078 ## [5,] 0.6117647 0.6117647 0.6117647 0.6235294 0.6196078 ``` --- Note my image is `\(256 \times 256\)` pixels because it is grayscale. Thus, it is just a matrix! The values in the matrix represent the intensity (darkness) of the grayscale. If I had loaded a color version of this image, it would have been an array of size `\(256 \times 256 \times 3\)`, with one channel for red, blue, and green colors. --- Here I create a function to display an image. Don't worry too much about the details. It is mostly just initializing an empty plot as a place to display my image. ```r img_plot <- function(img, ...) { # type = 'n' plots empty points # labels are empty using xlab and ylab # xaxt and yaxt remove the ticks # `...` allows me to set arbitrary graph parameters, like main plot(1:2, type = "n", xlab = " ", ylab = " ", xaxt = "n", yaxt = "n", ...) rasterImage(img, 1.0, 1.0, 2.0, 2.0) } ``` --- ```r img_plot(img, main = "Cameraman") ``` .center[ ![](lectureslides_svdpca_files/figure-html/unnamed-chunk-4-1.png) ] --- First we create a function to generate the best rank `\(k\)` approximation of any matrix `\(A\)`. ```r SVD_approx <- function(A, k) { # Generate components of SVD a_svd <- svd(A) sing_vals <- a_svd$d U <- a_svd$u V <- a_svd$v # Turn singular values into diagonal matrix. Be careful if k = 1! if (k == 1) { D <- matrix(sing_vals[1], nrow = 1, ncol = 1) } else { D <- diag(sing_vals[1:k]) } # Calculate best rank-k approximation A_approx <- U[, 1:k] %*% D %*% t(V[, 1:k]) return(A_approx) } ``` --- Next we make a function that uses `SVD_approx()` to plot the best rank `\(k\)` approximation to our image. Note that pixel intensity values must be between `\(0\)` and `\(1\)`, so we cap all values to fall within that range. ```r img_approx <- function(img, k){ approx_mat <- SVD_approx(img, k) # Cap minimum intensity approx_mat[approx_mat < 0] <- 0 # Cap maximum intensity approx_mat[approx_mat > 1] <- 1 img_plot(approx_mat, main = paste0("Best rank ", k, " approximation")) # Comment out return for purposes of slides # We don't want to store the approximation, only plot it # return(approx_mat) } ``` --- ```r img_approx(img, 200) ```  --- ```r img_approx(img, 1) img_approx(img, 2) img_approx(img, 3) ```  --- ```r img_approx(img, 5) img_approx(img, 10) img_approx(img, 25) ```  --- layout: false layout: true # How many singular values? --- We will define the **energy** of a matrix as the sum of the squared singular values, \\[ \text{energy}(\mathbf{A}) = \sum_i \sigma^2_i. \\] We can plot the energy stored in each singular value, as well as the cumulative energy as follows: ```r svd_img <- svd(img) sing_vals2 <- svd_img$d^2 energy_df <- data.frame("sing_vals" = sing_vals2, "energy" = cumsum(sing_vals2)/sum(sing_vals2)) dim(energy_df) ``` ``` ## [1] 256 2 ``` Thus we have a total of 256 singular values, meaning our image matrix is of rank 256! --- ```r ggplot(energy_df, aes(x = 1:nrow(energy_df), y = sing_vals)) + geom_point() + theme_bw(base_size = 20) + labs(y = "Singular Values", x = "k") ggplot(energy_df, aes(x = 1:nrow(energy_df), y = energy)) + geom_point() + theme_bw(base_size = 20) + labs(y = "Cumulative Energy", x = "k") ```  --- In general, if we are using SVD to do dimension reduction, a common rule of thumb is that we want to retain 90% of the energy. However, for image compression, this likely will be too much compression! ```r # which.max will return index of first TRUE k <- which.max(energy_df$energy > .90) img_approx(img, k) ```  --- What if we want to retain 99.8% of the energy in our image? ```r k <- which.max(energy_df$energy > .998) img_approx(img, k) ```  --- We were able to retain 99.8% of the energy in our image using only 68 singular values! Thus, we are able to reduce the dimensionality of our matrix by 73.4375%. This is a similar concept to how JPEG compression works!1 .footnote[[1] A similar concept, but not the same algorithm. JPEG compression uses something called the discrete cosine transformation, not SVD.] --- layout: false layout: true # Clustering --- What if we want to get a sense of the inherent groupings, or **clusters**, in our data? Let's load the `foreign` package to read in a `.dta` file. ```r library(foreign) cereal <- read.dta("http://statistics.ats.ucla.edu/stat/data/cerealnut.dta") head(cereal) ``` ``` ## brand calories protein fat Na fiber carbs sugar K ## 1 Cheerios 110 6 2 290 2.0 17.0 1 105 ## 2 Cocoa Puffs 110 1 1 180 0.0 12.0 13 55 ## 3 Honey Nut Cheerios 110 3 1 250 1.5 11.5 10 90 ## 4 Kix 110 2 1 260 0.0 21.0 3 40 ## 5 Lucky Charms 110 2 1 180 0.0 12.0 12 55 ## 6 Oatmeal Raisin Crisp 130 3 2 170 1.5 13.5 10 120 ``` --- We have data of nutritional information about various cereals. Here, we are interested in analyzing which cereals are similar to each other. We can do this using exploratory analysis with SVD! For now, we'll stick to a simple visual analysis (more on clustering later in the course). Thus, we will only plot our data along two dimensions. Because we are interested in cereal clusters, we want to look at the cereal-to-concept values. Because cereals are our observations, this is the columns of `\(\mathbf{U}\)`. --- ```r library(ggrepel) # remove the text brand labels cereal_svd <- svd(cereal[, -1]) cereal_df <- data.frame("x" = cereal_svd$u[, 1], "y" = cereal_svd$u[, 2], "label" = cereal$brand) ggplot(cereal_df, aes(x = x, y = y, label = label)) + geom_point() + theme_bw(base_size = 20) + geom_text_repel(size = 4) ```  ---  * bran cereals * sugary cereals * raisin cereals * cereals with honey --- What factors contributed most to each dimension? Look at the columns of `\(\mathbf{V}\)` (rows of `\(\mathbf{V}^T\)`). ```r cereal_df <- data.frame("x" = cereal_svd$v[, 1], "y" = cereal_svd$v[, 2], "label" = colnames(cereal)[-1]) ggplot(cereal_df, aes(x = x, y = y, label = label)) + geom_point() + theme_bw(base_size = 20) + geom_text_repel(size = 4) ``` --- .middler[  ] * Bran cereals have the most potassium * Saltier cereals farther to the left --- We can also look at the nutrient-to-concept "scores" of each dimension. Recall that to calculate user-to-concept scores in the movie ranking data we multiplied `\(\mathbf{X} \mathbf{V}\)`. To calculate nutrient-to-concept "scores", we calculate `\(\mathbf{U}^T \mathbf{X}\)`. ```r scores <- t(cereal_svd$u) %*% as.matrix(cereal[,-1]) cereal_df <- data.frame("x" = scores[1, ], "y" = scores[2, ], "label" = colnames(cereal)[-1]) ggplot(cereal_df, aes(x = x, y = y, label = label)) + geom_point() + theme_bw(base_size = 20) + geom_text_repel(size = 4) ``` --- Compare to the previous plot. This allows us to see the relative impact of each nutrient on our concepts. .center[  Note that the two nutrients (NA and K) with the highest values are also those that have the highest magnitude in the raw data. We will talk about the importance of scaling variables in the next section! ] --- layout: false class: inverse .sectionhead[Part 5. PCA] --- layout: true # Introduction to PCA --- .middler-nocent[ **Principal Components Analysis (PCA)** is the process by which we calculate the principal components. **Principal components** are the set of orthogonal axes along which data have the highest variance. Let's break this down. ] --- First, we have to identify the first principal component. This is the axes along which the data have the most variance. .center[] .footnote[[Source on stackexchange](https://stats.stackexchange.com/questions/2691/making-sense-of-principal-component-analysis-eigenvectors-eigenvalues)] --- Next, we have to find the subsequent orthogonal vectors along which the data have the most variance. .center[] .footnote[[Source on Wikipedia](https://en.wikipedia.org/wiki/Principal_component_analysis)] --- layout:false # Relationship between PCA and SVD Sound familiar? PCA is *very* similar to SVD! In fact, PCA is typically actually calculated using the SVD. We won't worry too much about the details for this class, but in a nutshell: * PCA can be calculated using a linear algebra tool called eigen decomposition on the covariance matrix * This is equivalent to applying SVD after mean-centering the columns of `\(\mathbf{X}\)` * Thus PCA and SVD are used for many similar reasons! Computing the SVD is fast and easy, computing a covariance matrix is hard. Thus, when calculating PCA, people often use the SVD! --- # A Pedantic Note Note that information available online about the relationship between SVD and PCA can be confusing. Some sources say they are effectively the same thing. Others say that it is like comparing apples and oranges. In a way, they are both right. When we talked about SVD, we talked about the *applications* of SVD. The SVD itself is just a linear algebraic decomposition. In contrast, PCA is an analysis/exploratory data/visualization/dimension reduction technique. This is why people say they are apples and oranges. However, the actual math we use to perform SVD and PCA is (typically) much the same. The applications we apply them too are often the same as well. This is why other people say they are essentially the same thing. -- **My takeaway for you:** Don't worry too much about the pedantics. Focus on what problems these tools can help you solve! --- # More on dimension reduction .middler-nocent[ PCA is perhaps the single most popular dimension reduction technique. Why is it so popular? It gives us a way to represent and visualize high dimensional data with a lower dimensional structure while retaining as much of what is interesting as possible! Here, "interesting" is measured by variation. When we care about preserving the variation in our data, but want to represent it using fewer dimensions, we might use PCA! ] --- layout: true # US Arrests Data .center[] --- Here is an example PCA using US Arrests data (with variables standardized to have mean 0 and standard deviation 1). This type of image is sometimes called a **biplot**. The axes are the first two principal components. Credit for this image, along with much of the helpful interpretations in this section: An Introduction to Statistical Learning by Gareth James, Daniela Witten, Trevor Hastie, Robert Tibshirani. --- Biplots show two pieces of important information: * **scores:** the positions of observations in principal components space, "observation-to-concept" * This is just the columns of `\(\mathbf{U}\)` from SVD! (up to scaling) * **loadings:** how much each variable contributes to the principal components, "variable-to-concept" * This is just the columns of `\(\mathbf{V}\)` from SVD! --- Let's focus on the loadings first. Some observations: * First principal component is highly correlated with all three serious crimes, very little with urban population * Second principal component is highly correlated with urban population, very little with all three serious crimes * All three crimes are correlated with each other, and have very low correlation with urban population --- What does this mean for the scores? * States with high values of violent crime will tend to be towards the right * States with higher urban population will tend to be towards the top --- Interpreting the scores: * CA, NV, FL: high crime rates * ND, VT: Low crime rate * CA, HI: high urbanization * MS, NC, SC: low urbanization * IN, VA, DE: average levels of urbanization and crime rates (remember centering!) --- layout: false # What does PCA give us? .middler-nocent[ PCA provides us with principal components. These have two primary interpretations, both of which are useful. * Directions in feature space along which the data vary the most * Think of as dimensions that preserve the most interesting information + Directions in the feature space along which the data are closest + Think of as dimensions that provide a good summary of the data ] --- layout: true # Scaling variables before PCA .center[] --- We mentioned before that we centered and scaled the variables. Centering is mathematically necessary, but what happens if we don't scale? Let's return to our US arrests data biplot. --- * Left: Same figure as before (variables are scaled to have standard deviation 1) * Right: biplot using unscaled data -- + Left: All variables have similar loading magnitudes + Right: Assault and UrbanPop have by far the largest loadings. Why? --- The three violent crimes are reported at number of occurrences per 100,000 people. Criminal assault has a much higher rate of reporting than rape and murder. Urban Population is measured as the percentage of the population that lives in an urban area. Assault and UrbanPop tend to have much larger magnitudes than Rape and Murder. Thus, they will dominate measures of variance, like principal components. --- If we simply changed the unit that we measured Assault in (what if it was number of occurrences per 100 people?), this plot would change dramatically. Do we really want a biplot that just represents the scale of a variables? Typically, no. This is why we usually scale our variables when performing PCA. --- One important disclaimer: this is not always the case! If our variables are measured in the same units, we may not wish to scale the variables because we can also lose information. For example, gene expression data we would not want to standardize because we want to compare all genes on the same scale of measurement. --- layout: false # Uniqueness of Principal Components One nice property of principal components is that the loadings are unique, up to a sign flip. In other words, there is no randomness (besides signs) in the process of generating principal components. --- layout: true # Proportion of Variance Explained (PVE) --- For SVD we talked about using the **energy**. The analog for PCA is the **proportion of variance explained (PVE)**. We can define the **total variance** of a data set as: \\[ `\begin{equation} \sum_{j=1}^p\text{Var}(X_j) = \sum_{j=1}^p\frac{1}{n}\sum_{i=1}^n x_{ij}^2. \end{equation}` \\] --- Note that when we actually write out an equation for a principal component `\(Z_m\)` in terms of our variables `\(\mathbf{X}\)`, we can express it: \\[ `\begin{equation} Z_m = \phi_{1m}X_1 + \phi_{2m}X_2 + \cdots + \phi_{pm}X_p, \end{equation}` \\] where `\(\phi_{km}\)` is the loading of the `\(k\)`th variable for the `\(m\)`th principal component. To get the variance explained by the `\(m\)`th principal component, we simply multiply: \\[ `\begin{equation} \frac{1}{n}\sum_{i=1}^n\left(\sum_{j=1}^p \phi_{jm}x_{ij}\right)^2. \end{equation}` \\] --- layout: false layout: true # Deciding how many components to use .center[] --- When using PCA, we often use a **scree plot** to decide how many components to use. Above is a scree plot for the US arrests data. --- In general, an `\(n\times p\)` data matrix `\(\mathbf{X}\)` with `\(n\)` observations and `\(p\)` variables has min( `\(n-1,\ p\)` ) distinct principal components. Typically we don't want all of them, we only want enough to get a good understanding of the data! -- Like many things in statistics, there is unfortunately not a magic rule I can tell you, like to always use 5 principal components, or only use 10% of the total principal components. In reality, the process is a bit more *ad hoc*, and as much of an art as a science. --- So what can you do? My recommendation is to make a scree plot, like the one above. Most standard PCA software will have implementations of scree plots for you, so you don't need to make one yourself. -- In general, you have to eyeball the scree plot and look for the point where there is an elbow in the scree plot and the next principal component does not explain enough variance to warrant inclusion. Alternatively, decide what proportion of total variance you want to explain, and choose the minimum number of components necessary to explain that proportion. --- layout: false # Summary .middler-nocent[ * SVD and PCA are both powerful tools for many applications * Visualizing your data * Data compression * Extracting new features from your data * Dimension reduction for easier and more effective analysis and computation ]


Home
About
The Stuff
Contact us
Manage Account
Notifications
Profile
Mobile App
Drinks
Log out
Who are we?
We enjoy
playing with data.
Copyright © CUHacking Cool Team
>


| pgpool-II 4.0.3 Documentation | |||
|---|---|---|---|
| Prev | Up | Chapter 7. Configuration Examples | Next |
This tutrial explains the simple way to try "Watchdog" on AWS and using the Elastic IP Address as the Virtual IP for the high availability solution.
Note: You can use watchdog with Pgpool-II in any mode: replication mode, master/slave mode and raw mode.
For this example, we will use two node Pgpool-II watchdog cluster. So we will set up two Linux Amazon EC2 instances and one Elastic IP address. So for this example, do the following steps:
Launch two Linux Amazon EC2 instances. For this example, we name these instances as "instance-1" and "instance-2"
Configure the security group for the instances and allow inbound traffic on ports used by pgpool-II and watchdog.
Install the Pgpool-II on both instances.
Allocate an Elastic IP address. For this example, we will use "<IP_ADDRESS>" as an Elastic IP address"
Mostly the Pgpool-II configurations for this example will be same as in the Section 7.2, except the delegate_IP which we will not set in this example instead we will use wd_escalation_command and wd_de_escalation_command to switch the Elastic IP address to the maste/Active Pgpool-II node.
use_watchdog = on delegate_IP = '' wd_hostname = 'instance-1-private-ip' other_pgpool_hostname0 = 'instance-2-private-ip' other_pgpool_port0 = 9999 other_wd_port0 = 9000 wd_escalation_command = '$path_to_script/aws-escalation.sh' wd_de_escalation_command = '$path_to_script/aws-de-escalation.sh'
use_watchdog = on delegate_IP = '' wd_hostname = 'instance-2-private-ip' other_pgpool_hostname0 = 'instance-1-private-ip' other_pgpool_port0 = 9999 other_wd_port0 = 9000 wd_escalation_command = '$path_to_script/aws-escalation.sh' wd_de_escalation_command = '$path_to_script/aws-de-escalation.sh'
Create the aws-escalation.sh and aws-de-escalation.sh scripts on both instances and point the wd_escalation_command and wd_de_escalation_command to the respective scripts.
Note: You may need to configure the AWS CLI first on all AWS instances to enable the execution of commands used by wd-escalation.sh and wd-de-escalation.sh. See configure AWS CLI
This script will be executed by the watchdog to assign the Elastic IP on the instance when the watchdog becomes the active/master node. Change the INSTANCE_ID and ELASTIC_IP values as per your AWS setup values.
aws-escalation.sh:
#! /bin/sh ELASTIC_IP=<IP_ADDRESS> # replace it with the Elastic IP address you # allocated from the aws console INSTANCE_ID=i-0a9b64e449b17ed4b # replace it with the instance id of the Instance # this script is installed on echo "Assigning Elastic IP $ELASTIC_IP to the instance $INSTANCE_ID" # bring up the Elastic IP aws ec2 associate-address --instance-id $INSTANCE_ID --public-ip $ELASTIC_IP exit 0
This script will be executed by watchdog to remove the Elastic IP from the instance when the watchdog resign from the active/master node.
aws-de-escalation.sh:
#! /bin/sh ELASTIC_IP=<IP_ADDRESS> # replace it with the Elastic IP address you # allocated from the aws console echo "disassociating the Elastic IP $ELASTIC_IP from the instance" # bring down the Elastic IP aws ec2 disassociate-address --public-ip $ELASTIC_IP exit 0
"Configure AWS CLI", AWS Documentation: Configuring the AWS Command Line Interface.
"associate-address", AWS Documentation: associate-address reference.
"disassociate-address", AWS Documentation: disassociate-address reference.
Start Pgpool-II on each server with "-n" switch and redirect log messages to the pgpool.log file. The log message of master/active Pgpool-II node will show the message of Elastic IP assignment.
LOG: I am the cluster leader node. Starting escalation process LOG: escalation process started with PID:23543 LOG: watchdog: escalation started Assigning Elastic IP <IP_ADDRESS> to the instance i-0a9b64e449b17ed4b { "AssociationId": "eipassoc-39853c42" } LOG: watchdog escalation successful LOG: watchdog escalation process with pid: 23543 exit with SUCCESS.
Confirm to ping to the Elastic IP address.
[user@someserver]$ ping <IP_ADDRESS> PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data. 64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=0.328 ms 64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=64 time=0.264 ms 64 bytes from <IP_ADDRESS>: icmp_seq=3 ttl=64 time=0.412 ms
Try to connect PostgreSQL by "psql -h ELASTIC_IP -p port".
[user@someserver]$ psql -h <IP_ADDRESS> -p 9999 -l
To confirm if the Standby server acquires the Elastic IP when the Active server becomes unavailable, Stop the Pgpool-II on the Active server. Then, the Standby server should start using the Elastic IP address, And the Pgpool-II log will show the below messages.
LOG: remote node "<IP_ADDRESS>:9999 [Linux ip-172-31-2-94]" is shutting down LOG: watchdog cluster has lost the coordinator node LOG: watchdog node state changed from [STANDBY] to [JOINING] LOG: watchdog node state changed from [JOINING] to [INITIALIZING] LOG: I am the only alive node in the watchdog cluster HINT: skipping stand for coordinator state LOG: watchdog node state changed from [INITIALIZING] to [MASTER] LOG: I am announcing my self as master/coordinator watchdog node LOG: I am the cluster leader node DETAIL: our declare coordinator message is accepted by all nodes LOG: I am the cluster leader node. Starting escalation process LOG: escalation process started with PID:23543 LOG: watchdog: escalation started Assigning Elastic IP <IP_ADDRESS> to the instance i-0dd3e60734a6ebe14 { "AssociationId": "eipassoc-39853c42" } LOG: watchdog escalation successful LOG: watchdog escalation process with pid: 61581 exit with SUCCESS.
Confirm to ping to the Elastic IP address again.
[user@someserver]$ ping <IP_ADDRESS> PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data. 64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=0.328 ms 64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=64 time=0.264 ms 64 bytes from <IP_ADDRESS>: icmp_seq=3 ttl=64 time=0.412 ms
Try to connect PostgreSQL by "psql -h ELASTIC_IP -p port".
[user@someserver]$ psql -h <IP_ADDRESS> -p 9999 -l


Total Distance:
Operation Details
Operation Map
Breached
Operation :
Date of Execution:
Number of Checkpoints:
Target's Location:
Operation Details
Operation Map
Breached
Operation :
Location Map
Operation Details
Operation Map
Breached
Click Me!!


{% extends "base.html" %} {% set active_page = "" %} {% block content %}
Instructions detailing the process for adding data to RetroBioCat are available here
All database contributions are attributed with your name and organisation, as they are entered in your user profile. This information can be changed in the 'User Profile' page, in the user menu at the right of the navbar. Deleting your account will remove this information.
Entered data will be reviewed by a 'super-contributor' or 'enzyme leader'. Database contributors may receive email communication from RetroBioCat.
Feedback on the data entry process or the database in general is very welcome.
{% if current_user.is_anonymous %}


filmcritic.com presents a review from staff member Max Messier. You can find the review with full credits at http://www.filmcritic.com/misc/emporium.nsf/2a460f93626cd4678625624c007f2b46/da54d7633c37df3e882568b400043295?OpenDocument
Black and White A film review by Max Messier copyright 2000 filmcritic.com
A very unique and brutal subculture exists in America these days. It's a strange juxtaposition of harsh street life and uber-materialistic greed tempered with a sense of justifiability from a code of unwritten ethics. The world is that of the gangsta rappers, the ghetto boys, and the thug-life advocators that dominate the world of hip-hop and rap music. Black and White, the latest film by James Toback, explores this subculture that grows stronger with every new generation it affects.
The hardest thing about an outsider trying to infiltrate a subculture and explain it to the masses is that the truth is often lost in the translation.
Everybody is in this film. Brooke Shields and Robert Downey Jr. play documentarians trying to capture the essence behind the influence of the hip-hop movement on Generation Y kids. Ben Stiller is a cop trying to take down one of the hip-hop artists portrayed in the film by Power (of the rap group Wu-Tang Clan). A crop of newer faces – Jared Leto, Gaby Hoffman, Scott Caan, William Lee Scott – appear throughout in the film in various supporting roles. But the strangest casting for the film, I must admit, is Mike Tyson. The scary thing is that he pulls off a decent job. Which is a selling point of the movie: Overall, the film is filled with actors stretching their acting chops and trying to work against type and prove they're above their usual mediocre material.
Toback directs the actors in the film to improv their way through a roughly written script and, in turn, try to make some sense of the strange plot twists. Some of the scenes work well, especially one where Robert Downey Jr. hits on Mike Tyson, but some of the scenes have that `movie of the week' feeling. The main fault with the film is that it fails to make any real statement about its subject matter or explain much about the actions of the characters. Was Toback's intent to explore the hip-hop culture or simply to exploit it like the rich, white guys in the film? Then again, that's how he cast himself in the movie. And you know, I guess that's what he really is.
Three Stars
Director/Writer: James Toback Starring: Scott Caan, Robert Downey Jr., Stacy Edwards, Allan Houston, Gaby Hoffmann, Kidada Jones, Jared Leto, Marla Maples, Joe Pantoliano, Bijou Phillips, Power, Raekwon, Claudia Schiffer, William Lee Scott, Brooke Shields, Ben Stiller, Eddie Kaye Thomas, James Toback, Mike Tyson, Elijah Wood, Kim Matulova Producers: Daniel Bigel, Mark Burg
-- Christopher Null -<EMAIL_ADDRESS>- http://www.filmcritic.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


dashboard
dashboard
dashboard
games
games
games
settings
settings
notifications
notifications
notifications
more_vert
logout
close
local_mall
Shop
language
Info
hvac
3d Printing
settings
Settings
logout
Logout
Inbox
Archived notifications will not be deleted
Select All
Cancel
Archive Selected
Delete Selected


When I'm developing a website one of the development considerations I take into account among many is Website/Webpage performance. I want my site or the site I'm working on to load or look like its loaded as fast as possible with as few requests as possible.  Slow rendering pages can make the difference of a visitor to your site using your service or moving on to one of your competitors. We don't want that.
Ideally we want our sites to render in 1000ms (1 second!) — Breaking the 1000ms Time to Glass Mobile Barrier . Yes you read that right 1 second. How do we get there though is the big question. Images followed by JavaScript and CSS tend to be the heaviest parts of webpages in respect to size and requests so that seems like the logical spot to start our optimizations.
I'm not going to go over all of the best practices provided by Google — Page Speed Rules & Google Web Fundamentals Performance Section — or Yahoo and Steve Souders because this is already a lengthy post. I will go over some of the ones that can be achieved easiest.
The ones I'll be focusing on in this post are:
Before implementing any of the web performance best practices it's best to have a baseline of what your site currently "scores" and how heavy your images may or may not be. Luckily there isn't a shortage of tools to use to get this baseline.
| Google PageSpeed Insights | Enter your domain name and select Analyze. There is also Firefox and Chrome Extensions Available Extensions |
| GTMetrix | Enter your domain name and select Go |
| Pingdom Tools Website Speed Test | Enter your domain and select Test Now |
| Yahoo YSlow | This is a browser extension/bookmarklet and command line/terminal tool. |
| Sitespeed.io | Command Line/Terminal tool. Produces a lot of information on your site. Extremely handy. |
| Webpagetest.org | Everyone should use Webpagetest. Will test mobile/desktop and multitude of browsers. |
In addition to those above mentioned tools there are copious amounts of browser extensions to use. One of the better ones is the Web Developer Toolbar Chrome Version – FireFox Version .
Once you have your baseline from any of the above services we can move on to the nuts and bolts of actually speeding up our site. Throughout this post I'll be working on a page from my site ( corydowdy.com/demos ) that has already had some of the best practices applied and is using Google's Mod_PageSpeed Apache Module.
The baseline I'll be using is split into two parts. One with PageSpeed Module turned off on desktop and off on mobile . The other with PageSpeed service on for the desktop and mobile devices which you can see causes a few issues that I'll fix further on down. Your website will more than likely have only one baseline to go from.
Images, as I said earlier, are usually the heaviest and biggest components in our web pages / web sites. So making these smaller can give us huge gains. Particularly when choosing the right image format. Some quick and dirty rules on choosing the correct image format.
<video>
Those rules are quick and dirty because not every browser supports SVG and I left out one of my newer favorite formats - WebP .
 Addy Osmani has a great post on Image Optimization Tools that gathers many of the desktop and browser based tools to optimize images. If you're not into grunt / gulp or any of the other JavaScript task runners and are able to install server modules I highly recommend taking advantage of mod_pagespeed . It will optimize your images and convert them to many formats including to WebP for supported browsers. If you're not in the position to install server modules then you may want to look at the PageSpeed Service .
Another way to get an optimized image is to use Google's PageSpeed Chrome extension. Open up the DevTools Panel (ctrl+shift+i on Windows or cmd+opt+i Mac ) and navigate to the PageSpeed tab (baring that you have the pagespeed extension listed up top installed). Select Analyze. If you have images that can be optimized they will be listed under the "Optimize Images" suggestion. You may then click the "see optimized content " link. Open for each image and save to your image directory. This can be a cumbersome process so the use one of the previously mentioned tools can be extremely helpful.
The final piece to the image optimization puzzle is responsive images. Recently the Responsive Images Community Group (RICG) put together a proposal for responsive images. Their work produced the picture element and the srcset element. You can use these elements today (even in browsers like Internet Explorer!) by taking advantage of the Filament Group's PictureFill polyfill.
Enabling compression can be different depending on your server you host your site on. The simplest way to do it is to head over to the HTML5 boilerplate server configs section on github . The section labeled under Web Performance has Expires headers and enables compression for you. Drop that into your web root and you're good to go. Example of the Apache specific lines I'm talking about can be found on lines 709-984.
My Demos page has four (4) CSS files and six (6) JavaScript files loaded externally and two images inside
an
tag. This may seem like a lot of JavaScript to some people
and not many to others. Since my normal work flow uses Grunt unCSS I separate my individual component CSS
(navigation plug ins etc) in order to keep dynamically created css from breaking after the uncss task. A sample of
that work flow can be found
here .
As I mentioned before I use Grunt in my work flow. You don't have to use any task runner. None at all. This is strictly my preference. It makes things easier for me but each persons workflow is different so don't paint yourself into a corner thinking you NEED to use a task runner. For those who do not use a task runner like Grunt here are some other tools you can use to concatenate and minify your JavaScript files and minify and combine your CSS files.
To minimize my request size I'll use grunt-contrib-cssmin to minify and combine my css files and grunt-contrib-concat and uglify to minify and combine my JavaScript files. I'll install these to my project files in one command.
npm install grunt-contrib-cssmin grunt-contrib-concat grunt-contrib-uglify --save-dev
Once those are installed I'll move on to the Gruntfile and setup which CSS files I want combined and the Javascript files I want to combine and uglify (minify) paying close attention to their order. I don't want a JavaScript plug-in dependent on JQuery being loaded after JQuery.
An example Gruntfile follows:
// cssmin setup
cssmin: {
combine: {
files: {
// File to create CSS Files I want to combine and minify
'css/app.min.css': ['css/demo.css', 'css/demo-menu.css','css/another-demo.css', 'css/demo-3.css']
}
}
},
// concat and uglify setup
concat: {
options: {
separator: ';'
},
basic: {
// javascript files I want to combine
src: ['jquery.js','js-1.js','js-2.js','js-3.js', 'js-4.js', 'js-5.js'],
// The Resulting JavaScript I want to create
dest: 'js/min/cd-demos.comb.js'
}
},
uglify: {
options: {
// the banner is inserted at the top of the output
banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n',
compress: {
drop_console: true
}
},
dist: {
files: {
'js/min/<%= pkg.name %>-demos.min.js' : ['js/min/cd-demos.comb.js']
}
}
},
After setting up the files I want grunt to create and use we can move on to enabling the task and registering them so we can run them from our terminal.
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-concat');
You can register a grunt task that will combine any of the plugins you installed to run at once. Since I'm using Sass I'll create a build task to compile my Scss to CSS, combine the separate component CSS files then minify it. The JavaScript task will concat the multiple JS files then uglify them.
grunt.registerTask( 'build', ['sass', 'cssmin'] );
grunt.registerTask( 'buildjs', ['concat', 'uglify'] );
When you register a task it allows you to call it from your command line. For instance if I were to
type grunt build
it will run grunt-sass and grunt-contrib-cssmin on the
targets I specified in my Gruntfile. Same goes for the task I called buildjs above. By doing the above I
have reduced my CSS and JavaScript requests from ten (10) to two (2).
Inlining CSS is simple if you have very small css file (14 kb or so) but it too comes with some warnings. You will
save a trip to the server to get your CSS (good!) but you will lose out on it being able to be cached. To inline
CSS copy the small css into a

Home

You may notice there is no <link>
tag containing a CSS file. Link
tags will block painting of the web page which will slow down rendering. Few ways to combat this are outlined at
Make Mobile Pages Render in Under 1 Second
and loading stylesheets without blocking painting .
Currently my favorite way to load stylesheets async is loadCSS
by the Filament Group. You may choose to skip all that and just plop your css link in your head. This comes down to
your performance "budget" and how much time and knowledge you're willing to spend.
If you page is small and your not dealing with responsive design you can just plug the css needed to render the "above the fold" content on the first request like we did above. If you're not in that position but you have a VPS/Dedicated Server or your hosting provider allows you to install modules then save yourself some hair pulling and a lot of work and install Mod_PageSpeed. Once PageSpeed is installed you can inline css by enabling the inline_css filter. To Prioritize Critical CSS with Mod_PageSpeed you can enable the prioritize_critical_css filter. Mod_PageSpeed really is worth installing and that good!
For those not fortunate to have Mod_PagSpeed Paul Kinlan, a Chrome Developer Advocate, has created a JavaScript snippet to find the above the fold content in his post Detecting Critical Above the Fold CSS . There is also a demo video . Feedthebot has a post on how to prioritize critical content .
 This can and will work but in regards to RWD (Resposive Web Design) we have these things called media queries. As a developer we don't know anything about the users screen size. Is it mobile device? What is considered above the fold (how "tall" the screen is)? Scott Jehl (@scottjehl) suggests instead of thinking "mobile first" that if you're going to inline or "embed" css that we should start thinking "global first".
WRT inlining critical CSS & async-loading the rest, I’m starting wonder if instead of “mobile-first,”
we should be thinking “global-first.”
— Scott Jehl (@scottjehl) June 9, 2014
The CSS that you can, or rather should, inline/embed into the head is the CSS that will render a usable page on any and all devices (think text styling, basic page structure etc). Then you can load the "enhanced" or rest of the css to fully render your page. Keeping in mind that the inlined CSS portion should be small and able to be fetched in the first round trip to your server.
To avoid Render Blocking JavaScript we can do two things with minimal work. Either add the "defer" attribute to your script
tags
or the "async" attribute
to your script tags
. Defer
works by waiting till After the HTML parser is finished. Async works by letting HTML parsing to
continue and then load the scripts whenever they are ready. Both of these methods do not take into account script order
so dependencies may be loaded after the script they are dependent on. Another way to load scripts in a non blocking
manner is to use a script loader such as RequireJS
which can seem and be a little bit complicated.  —. If you'd rather skip the sometimes very complicated world of script loading take a look
at Mod_PageSpeed and enabled the defer_javascript
filter.
If you're doing any JavaScript modifications as the page loads this may cause problems. So make sure you test in a dev environment before deploying. Ilya Grigorik says Async is ready for every browser due to preloading scanners and has a few things to consider at the end of his post. He also suggest removing defer altogether in preference to async. To support older browsers that do not recognize async he suggest adding defer also like so:

The Filament Group, in all their awesome ways, has released a function to load your JavaScript in a non-blocking manner called loadJS . This is extremely useful and I am in the process of converting my sites to it currently.
You can couple this function along with their loadCSS function which they have already done for you and it is called Enhance Js . This file should be inlined in your head. It allows for the loading of webfonts, CSS, and JavaScript in a non-blocking fashion. It also includes a cookie function to remove inlined CSS after a return visit in favor of the cached version that is loaded async.
I've done all the above and then some to optimize my site. In fact some of my pages (as of this writing it may change :) ) score 98 to 99 in Google PageSpeed Insights. My Demos page isn't as lucky.
| Score | Picture | |
|---|---|---|
| No Mod_PageSpeed | 84 Mobile 94 Desktop | Score Picture |
| With Mod_PageSpeed | 57 Mobile 84 Desktop | Score Picture |
I can immediately improve this score by taking the two svg's inside the image tag and inlining them either as an
inline <svg>
or as a data uri. I'll first run the SVG I'm using on my
page through grunt svgmin
which will remove some of the fluff generated from Adobe Illustrator.
Popping in an inline SVG is easy but you have to do it with a few caveats. Chrome adds weird padding above and below the SVG. I fixed that with this Gist and removing the width and height properties from the SVG and replacing them with 100% in each one which allows the SVG to take up the entire width and height of its container. If you want more control over the size you can control it through CSS or setting it in it's "viewBox" attribute. You may choose to give it a class name (recommended). I just kept it as SVG since I'm not doing any other CSS modification to any other SVG's. You also have to take into account your sites analytics and making sure your visitors browsers can handle inline SVG. Caniuse is a great resource for this along with Chris Coyier's great site css-tricks specifically his post on using svg .
The results of Mod_Pagespeed and inlining my SVG are pretty great. On a return or repeat view of the site all Critical Path CSS is inlined along with any small css files I may have included. This is because mod_pagespeed with the "inline_css" and "inline_critical_css" filters enabled will post a beacon back to my server with the height of the users screen. This enables mod_pagespeed to then gather all the css selectors used in the "above the fold" content, inline those and lazy load the remaining CSS for every view after the initial view.
| Score | |
|---|---|
| Desktop | 99 |
| Mobile | 98 |
There still is a "Consider Fixing" suggestion of Leverage Browser Caching. That happens to be a suggestion of extending the cache time of my Typekit script. The cache time is pretty low on it and I can't seem to find anywhere on how to extend it so it will have to stay.
Start off small for optimizing your website but at the very least please enable compression and run your images through an image optimizer. If you don't want to go through the process of optimizing your site, or your budget doesn't allot for optimization (it should be a design choice like anything else) at the least install Mod_Pagespeed. It's a great module that not only does the things mentioned in this post but has filters that can help Optimize Caching, Minimize Round Trip times, Minimize Request Overhead, Minimize Payload Size and Optimize Rendering. All those filters can be found at PageSpeed Filters page for the module.
GO FORTH AND MAKE THE WEB FAST!


Back
Back
Rating:
Meetings:
Gamers:
Delete game
Meetings
+
City
Location
Date
Time
Members
Creator
Take part


PING!
PING! (LAN Gaming) is expected to be the talk of all computer gamers across the city. Gaming freaks queue up for hours during Elan since worldly reality is not enough for them. Ultimate black listed racers, sharp shooting snipers, beyond God-like streaks and lots more keep people highly engaged to ultimate addiction...
Introduction
Format
Rules
Contact


{% extends 'layout.html' %} {% block pageTitle %} Start page template - NHS.UK prototype kit {% endblock %} {% block content %}
You can find information about getting help with health costs at NIdirect.gov.uk.
What did you think of this service? (Takes 30 seconds)


Download
Download a zip package of data.
Download
Download a data file.
Download
Download a zip package of resources.
Download
Upload
NOTICE: Current data will be replaced!
Upload a zip package of data.
Browse
Upload
Upload a data file.
---------
Browse
Upload
Upload a zip package of resources.
Browse
Upload


capJS is a javascript library that operates on capture files
Convert a capture file to hcwpax (hashcat mode = 22000)
If you are having issues with capJS or having any feature requests, feel free to open issues in the capJS Github issues page as necessary.


What is a scope and how does it work in JavaScript?
There are two types of scopes, 'Global Scope' and 'Local Scope'. Global scope is a variable declared outside of a function
and can be used in all scripts. A local scope is a variable that is limited to one function and that
function only.


The appearance of the Zmail Web Client (ZWC) interface can be customized. The customized theme can be as easy as selecting which of the existing Zmail themes is available for users to select. You can create a theme simply by setting two colors and their variants within one of Zmail sample themes to change the background, or you can make more elaborate changes to the user interface using images in addition to changing colors.
The ZWC user interface theme that displays as the default on the Zmail Web Client and the themes that users can select in the ZWC Options>General tab can be configured in Class of Services or in individual accounts. A number of Zmail themes are included with ZCS.
Go to the Zmail Wiki, and view the Zmail Rebranding and Themes page for complete documentation about how to customize a theme and deploy it to your Zmail servers.


This is the first time I'm using Snow Dots project wiki to explain a change to many of you users at once! I hope it proves useful.
I want to let you know about some significant changes I'm making in the way Tower of Psych and Snow Dots manage flow of control and execution of concurrent behaviors. Without going into detail, here is the flavor:
Until Now
You add various function calls to a topsGroupedList object, and it's job is to call them all over and over in order to keep them all going at the same time. The big trouble is that you have to add the function calls to the loop object by hand, and it's not clear what you're supposed to add.
From Now On
There are new topsRunnable objects, which are meant to "run", which means to execute part of your experiment. Some of these are also "topsSteppable" objects, which means they are able to run a little bit at a time. This allows multiple objects to "step" in an interleaved way, so that they all run together.
For example the "topsStateMachine" is now implemented as a topsSteppable, and it can interleave with a "topsCallList", which can call arbitrary functions. So, you can do things like update hardware and graphics at the same time that you're traversing states.
There is a new example using topsRunnable and topsSteppable objects in tower-of-psych/demos/demoRunnables.m. It shows how to interleave a topsStateMachine with a topsCallList. I hope it also conveys the general intuition behind topsRunnable objects.
I also updated all the existing demos in Tower of Psych and Snow Dots to use these new classes.
What to Do
You should "svn update" both Tower of Psych and Snow Dots at the same time.
Since there are new classes, and I got rid of some old ones, only update when you're ready to make some code changes to your own task. The basic change will be:
Replace topsFunctionLoop with topsCallList. Interleave topsCallList with topsStateMachine using topsSergeant (as in demoRunnables.m).
Support
I'm updating the HTML documentation that you can download for each project. I know it's not comprehensive, but you can at least see what the new Tower of Psych classes are, and some about
I also expect that we'll stay in touch individually, so that should help.
Thanks!


| CONTENTS | PREV | NEXT |
META-INF/services
directory that is used to list any
service providers that are contained in the file. For each service
provider interface that is implemented by a class stored in the JAR
file, a file whose name is the fully-qualified class name of the
service provider interface is placed within the
services
directory. The file should contain the
fully-qualified class names of the implementation classes present
in the JAR file, one per line. For example, if the JAR file
contains a service provider class named
com.mycompany.mypackage.MyImageReaderSpi
, which
implements the javax.imageio.spi.ImageReaderSpi
interface, there should be a file named
META-INF/services/javax.imageio.spi.ImageReaderSpi
containing the line
com.mycompany.mypackage.MyImageReaderSpi
.
The Image I/O API
will automatically examine any JAR files that are found on the
class path, and identify those that contain Image I/O plug-ins. For
each plug-in found, a single instance of its service provider class
will be instantiated and stored in a run-time registry class,
javax.iamgeio.spi.IIORegistry
.
JAR files on the
application class path (i.e., the path set using the
CLASSPATH
variable), or elsewhere (e.g., available via
a network URL) may be loaded by the application. They are not
loaded by default in order to minimize startup time.
The
javax.imageio.spi.IIORegistry
class may also be used
at run-time to deregister installed plug-ins and to register new
ones. In particular, it is possible to use a
ClassLoader
to load a plug-in over the network, which
may then be registered and used exactly like a locally installed
plug-in.
Most applications
should not need to deal directly with the registry. Instead, they
may make use of convenience methods contained within the
javax.imageio.ImageIO
class that search for
appropriate plug-ins automatically.


--- layout: default title: General guidelines nav: General ---
Enforce standards mode and more consistent rendering in every browser possible with this simple doctype at the beginning of every HTML page.
From the HTML5 spec:
Authors are encouraged to specify a lang attribute on the root html element, giving the document's language. This aids speech synthesis tools to determine what pronunciations to use, translation tools to determine what rules to use, and so forth.
Read more about the lang
attribute in the spec.
Head to Sitepoint for a list of language codes.


Equipment near the phone?
App connection device,Close to the device, closer to the more conducive to find
the device.
The closer distance,the more conducive to find equipment.
If your device is connected by other mobile
phone,and connect the mobile phone is still
near the equipment,then you need to close the connected phone bluetooth,and then
to use the new phone search equipment. Because of a device can only be a phone
connection at the same time
Try to restart the bluetooth
If the device battery is enough,and close to
the cell phone still can't find the device,you
can try the phone bluetooth is turned off to open,after a wait a moment,to search for equipment.
Try to restart the device
If the device is not connected by another phone and can not find it close to
the phone, you can try
to restart the device and then open the APP search again Prepared.
Try to restart the phone
Please try to restart the phone to open the APP,after the connected devices.


🏷$356 Chemka ♨ hot spring 🌞 july - nov | jan - march 📢 place Kilimanjaro ⛰
🏊
✌ Great experience when the weather holds
What is like:
#⃣ Underground springs pond #⃣warm clear clean water #⃣ideal for swimming. #⃣very deep, in some places up to 10 meters
Pick-Up 🛬 & Drop-Off 🛫 Points 📍 :
✈ KILIMANJARO AIRPORT ✈ ARUCHA AIRPORT ✈ DAR ES SALAAM
Activities: You will swim ,🍲 eat, drink and 🤣laugh alot!


PRESSKIT
Game Name: Candy Road
Developer: Lina Lu
Company: Roadkill
Release Date: April 30, 2017
Platforms: iOS (iPhone® & iPad®) and Android
Website: http://candyroad.co
Languages: English, Français, Deutsch, Italiano, Español, Português, русский язык, 正体字, 正體字, 日本語, 한국어, العربية
Tell us about Roadkill!
Lina: Roadkill was named after all the characters in the Candy Road game, because they all become roadkill at some point!
What makes people download Candy Road?
Lina: I loved playing computer games growing up, so I prototyped a flying goose crossing the road for fun and found myself pretty addicted to it. From there I decided to make it into a full game. I get pretty obssessed with something once I start working on it so I added localization for non-English speaking players to enjoy the game, lots of characters, different exotic terrains, a claw machine, a gift volcano, hidden characters to unlock, and there will be plenty more to come! All of the game features can be enjoyed completely free of charge, so that everyone can play it whether they are waiting in line or on a long roadtrip.
Was it challenging to do the coding, art and sound yourself?
Lina: This was my first game so everything was a first for me and I go into something with the belief that there is nothing you can't learn. Having never done something before means that you may not get them perfect on the first go so there was a fair bit of experimentation, learning and iteration that went into the Candy Road you play today on your phone!
What did you enjoy most about making Candy Road?
Lina:
I spent a lot of time thinking about how to make the characters look interesting and fun to play. The brainstorming characters part was really fun! I literally sat down at a cafe and came up with about 50 characters, then went home to put them into voxel art and then animated them to put in the game. The most rewarding part was seeing something go from a sketch in a notebook to a live character being squashed in the game!
Credits
Game, Sound & Art: Lina
Contact
Inquiries<EMAIL_ADDRESS>Twitter: Candy Road @candyroadgame
Instagram: Candy Road @candyroadgame
Play on iPhone, iPad & Android!
Why do pigs fly?
Why do pigs fly across the road?
Why do pigs fly across the road AND eat candy?


| Module | ActiveResource::CustomMethods |
| In: |
/usr/lib/ruby/gems/1.8/gems/activeresource-3.0.0.beta4/lib/active_resource/custom_methods.rb
|
A module to support custom REST methods and sub-resources, allowing you to break out of the "default" REST methods with your own custom resource requests. For example, say you use Rails to expose a REST service and configure your routes with:
map.resources :people, :new => { :register => :post }, :member => { :promote => :put, :deactivate => :delete } :collection => { :active => :get } This route set creates routes for the following HTTP requests: POST /people/new/register.xml # PeopleController.register PUT /people/1/promote.xml # PeopleController.promote with :id => 1 DELETE /people/1/deactivate.xml # PeopleController.deactivate with :id => 1 GET /people/active.xml # PeopleController.active
Using this module, Active Resource can use these custom REST methods just like the standard methods.
class Person < ActiveResource::Base self.site = "http://37s.sunrise.i:3000" end Person.new(:name => 'Ryan).post(:register) # POST /people/new/register.xml # => { :id => 1, :name => 'Ryan' } Person.find(1).put(:promote, :position => 'Manager') # PUT /people/1/promote.xml Person.find(1).delete(:deactivate) # DELETE /people/1/deactivate.xml Person.get(:active) # GET /people/active.xml # => [{:id => 1, :name => 'Ryan'}, {:id => 2, :name => 'Joe'}]
| delete | -> | orig_delete |
# File /usr/lib/ruby/gems/1.8/gems/activeresource-3.0.0.beta4/lib/active_resource/custom_methods.rb, line 68 68: def delete(custom_method_name, options = {}) 69: # Need to jump through some hoops to retain the original class 'delete' method 70: if custom_method_name.is_a?(Symbol) 71: connection.delete(custom_method_collection_url(custom_method_name, options), headers) 72: else 73: orig_delete(custom_method_name, options) 74: end 75: end
Invokes a GET to a given custom REST method. For example:
Person.get(:active) # GET /people/active.xml # => [{:id => 1, :name => 'Ryan'}, {:id => 2, :name => 'Joe'}] Person.get(:active, :awesome => true) # GET /people/active.xml?awesome=true # => [{:id => 1, :name => 'Ryan'}]
Note: the objects returned from this method are not automatically converted into ActiveResource::Base instances - they are ordinary Hashes. If you are expecting ActiveResource::Base instances, use the find class method with the :from option. For example:
Person.find(:all, :from => :active)
# File /usr/lib/ruby/gems/1.8/gems/activeresource-3.0.0.beta4/lib/active_resource/custom_methods.rb, line 56 56: def get(custom_method_name, options = {}) 57: connection.get(custom_method_collection_url(custom_method_name, options), headers) 58: end
# File /usr/lib/ruby/gems/1.8/gems/activeresource-3.0.0.beta4/lib/active_resource/custom_methods.rb, line 60 60: def post(custom_method_name, options = {}, body = '') 61: connection.post(custom_method_collection_url(custom_method_name, options), body, headers) 62: end


Architecture
TOCAtom is based on Chromium, Squirrel, Node.js, JavaScript / CoffeeScript, Json and CSS / less.
Atom is a specialized variant of Chromium designed to be a text editor rather than a web browser.
For example, the layout of our workspace and panes is based on flexbox.
Every Atom window is essentially a locally-rendered web page.
All the APIs available to a typical Node.js application are also available to the code running in each window’s JavaScript context.


What will it be like?
August-22-2015
So, this is it. I, and many others are making the jump. We are all doing this DBC thing in order to change our lives in a way we hope is for the better. I know I had an idea of what DBC would be, and now that I have been in a week some of those ideas have changed. I want to write about what I thought going in, and what I think now.
So going in is a good place to start right? I remember when I was told about DBC, about the benefits of graduating from this bootcamp, about how hard it was. I had talked to a former student and knew it would be work. I thought Prep, or phase 0 would not be that hard. I have previous experience with HTML, CSS, JavaScript and the likes. I figured I would blow through Phase-0 and work on things to prep me for Phase-1 the whole time. When I would arrive for phase -1 I knew the world load would be hard. I expected to spend maybe 40 to 50 hours a week of work. These are just the basics of what I thought things would be like.
What I think now is totally different.  While I feel better about it now, it showed me that I will have to work hard in Phase-0 to get the most out of it, it will not be a cake walk. Phase-1(and the rest) has also been ramped up in my mind. After hearing the instructors talk I figured out that 50 hours a week is not nearly enough time to get through everything I will need. While spending 70 + hours a week at school for 9 weeks does not sound 100% fun, I am excited for what I will be learning and how it will effect my life.
The mindset that they drill into you at DBC is also different than I thought it would be. I assumed that it would be more about how intelligent I am to start, how much information I can absorb. It is not that way at all. They really push the idea that you can learn as much as you need if you just push yourself. That if you go in thinking that you do not know everything, and that that is a good thing. They want you to come in hungry to learn. The mindset is not, oh I got this perfect, it is more that this isn't perfect and how can I make it so.
That is the end for now, I will probably update this as my time in DBC goes on. Bye for now.


--- layout: default title: 'About' ---
Involution’s design practice is dedicated to open source innovation in healthcare and has a significant track record of creating beautiful software for patients, clinicians, researchers, and analysts over the past decade.
We build at the intersection of data and people, enabling a roadmap for future precision medicine products and services.
Designing software for the complete coding experience at hospitals.
An open source eConsent platform for genomic medicine research.
An open source application providing a holistic view of your health. Based on an individual’s health data, it identifies where an individual’s health numbers are, and where they should be.
|
|
|||
Over almost a decade of work, our team at Involution Studios have applied precision medicine principles to software products ranging from research tools, to hospital enterprise software, to open source applications. Now we want to use our experience to bring it to a national scale.
We are a team of designers and engineers with backgrounds in biology, biomedical engineering, and digital product design, with a passion for designing for the future of health care.
Juhan Sonin has been a software designer and creative director for two decades with his work being featured in the New York Times, Newsweek, BBC International, Wired, New Scientist, and National Public Radio (NPR).
He is a nationally recognized expert in healthcare software design and serves on Stanford Medicine X’s Design Council. Juhan also designs national policy having lead HIMSS’ mobile health standards workgroup to CCHIT’s PHR (personal health record) design guidelines to co-authoring Inspired EHRs (inspiredehrs.org).
Creating and shipping open source healthcare products is part of Juhan’s DNA and range from hGraph.org, DeterminantsOfHealth.org, UnderstandingEbola.org, UnderstandingZika.org, and CareCards.me.
Eric is a designer specializing in system design and software application, leading Involution’s creationary process in UI design and pushing concepts into production. His designs have delighted patients and clinicians, and also the boardroom, leading to major investments and acquisitions for his clients.
Crafting beautiful experiences for a decade, Eric has enjoyed transforming the future of healthcare. He has worked with numerous influential companies including 3M, Walgreens, Johnson & Johnson, and Mount Sinai. His work has been featured at TED, Wired, and the US Patent Office.
Eric works on open source healthcare prototypes using Arduino controllers and low-cost sensors to diagnose humans without a single drop of blood.
Edwin is a UI/UX designer with a background in biomedical communications. He has worked with Partners, Notovox, and WuXi NextCODE.
He has created visualizations and designs for the National Aquarium in Baltimore, National Library of Medicine, the Society of Interventional Radiology, has been a Vesalian Scholar for visual communication in the health sciences, and a finalist in the National Science Foundation Visualization Challenge, the Information is Beautiful Awards, and has worked closely with surgeons and medical researchers at Johns Hopkins Hospital to create visualizations for emerging medical procedures and research.
Danny is an action catalyst empowering people traveling together toward best health (patients, caregivers, clinicians). He wears many hats in healthcare: patient with MS, care partner for several family members’ end-of-life journeys, a nurse for 40+ years, an informaticist and a QI leader.
Danny’s current work focuses on communication at transitions of care, person-centered health planning, informed decision-making, and technology supporting solutions created with and for people at the center. He has collaborated with PCORI, AHRQ, and MassHealth among others. Danny blogs at health-hats.


The element(s) you want to add scrollbar(s) should have the typical CSS properties of an overflowed block which are a height (or max-height) value, an overflow value of auto (or hidden) and content long enough to require scrolling. For horizontal scrollbar, the element should have a width (or max-width) value set.
the element should have a width (or max-width) value set
the element should have a width (or max-width) value set
the element should have a width (or max-width) value set
the element should have a width (or max-width) value set
the element should have a width (or max-width) value set
the element should have a width (or max-width) value set
the element should have a width (or max-width) value set
the element should have a width (or max-width) value set
the element should have a width (or max-width) value set
the element should have a width (or max-width) value set
the element should have a width (or max-width) value set
the element should have a width (or max-width) value set
the element should have a width (or max-width) value set
the element should have a width (or max-width) value set
the element should have a width (or max-width) value set


This map shows the layout of Bearathlon 2017 at the Berkeley marina. If you are familiar with Bearathlon, the layout is the exact same as in previous years.
The start/finish/expo area is located on the Windsurf Launch dock while transition is in shorebird park.
Please be mindful that all areas and paths between areas, with the exception of transition and the finish line, have not been roped off to the public. Please ask a volunteer to watch your stuff and do not leave things completely unattended.
The Collegiate Draft Legal Sprint triathlon combines a 750 meter swim, a 3-looped 20 kilometer bike, and a 2-looped 5 kilometer run. The entry fee will be $60.
Events
Draft Legal Participants:
Please read through the "RULES" tab as well as the USAT Draft Legal Rules Summary located HERE.
Keep in mind that there draft legal events tend to be dictated by different terms and it is highly advised you see the attached documents.
The Collegiate Classic Sprint triathlon combines a 750 meter swim, a 3-looped 20 kilometer bike, and a 2-looped 5 kilometer run. The entry fee will be $60.
Events
Collegiate Classic Participants:
Please read through the "RULES" tab.
The Open Classic Sprint triathlon combines a 750 meter swim, a 3-looped 20 kilometer bike, and a 2-looped 5 kilometer run. The entry fee will be $60.
Events
Open Classic Participants:
Please read through the "RULES" tab.


Bloc Jams
About the project
This is a student project done through Bloc.io's curriculum. This project's LOE's were close to 80 hours.
This project contained learning centered around HTML5, CSS3, jQuery, JavaScript, DOM Scripting, DOM Events, and AngularJS. Bloc Jams is an interactive music player, similar to Spotify. Design aspects were provided by Bloc, to ensure the curriculum focused on JavaScript, DOM events, and Functionality.


Connect to our 24/7 real-time, online question service.
Tips and instructions to help with your searching.
Options for contacting UW Libraries staff.


|
HamlPHP
Yet another Haml parser written in PHP
|
Public Member Functions | |
| __construct (NodeFactory $factory=null) | |
| getFilterContainer () | |
| parseFile ($fileName) | |
| parseString ($rawString) | |
| parseLines (array $rawLines=array()) | |
| getNextLine () | |
Protected Member Functions | |
| initializeNodeFactory () | |
Private Attributes | |
| $_nodeFactory = null | |
| $_lines | |
| $_currLine |
Definition at line 12 of file Compiler.php.
| __construct | ( | NodeFactory $ | factory = null | ) |
Definition at line 18 of file Compiler.php.
References initializeNodeFactory().
| getFilterContainer | ( | ) |
Definition at line 24 of file Compiler.php.
Referenced by initializeNodeFactory().
| getNextLine | ( | ) |
Definition at line 79 of file Compiler.php.
| initializeNodeFactory | ( | ) | [protected] |
Definition at line 35 of file Compiler.php.
References getFilterContainer().
Referenced by __construct().
| parseFile | ( | $ | fileName | ) |
Compiles haml from a file.
| string | $fileName |
Definition at line 45 of file Compiler.php.
References parseString().
| parseLines | ( | array $ | rawLines = array() | ) |
Compiles haml from an array of lines.
| array | $rawLines |
Definition at line 66 of file Compiler.php.
Referenced by parseString().
| parseString | ( | $ | rawString | ) |
Compiles haml from a string.
| string | $rawString |
Definition at line 55 of file Compiler.php.
References parseLines().
Referenced by parseFile().
$_currLine [private] |
Definition at line 16 of file Compiler.php.
$_lines [private] |
Definition at line 15 of file Compiler.php.
$_nodeFactory = null [private] |
Definition at line 14 of file Compiler.php.


Just click on the following text control. The toggle button needs to be pressed. ESC key closes the keyboard. If the browser shows suggestions they will close first if you press ESC.


Pontianak is the capital of the Indonesian province of West Kalimantan. It is a medium-size trading port city on the island of Borneo.
Position 0°03’S 109°9’E.
This port is an official Port of Entry but cruisers have completed clearance here.
See Indonesia Formalities for all the details re. clearing into and out of Indonesia.
You can tie your dingy up at the Harbour Masters office, it is a short walk into town from there. All authorities are within 100 metres of the Harbour Masters office including the Police. The main office for Immigration is a taxi bike ride just past the museum.
Last updated February 2016.
The Chief Pilot is reported to be quite helpful and speaks good English.
Cruisers visiting here in November 2013 were advised to anchor opposite the Harbour Master's office in order to be "safer". However, during the night they were burgled of deck equipment and interior valuables having left the main hatch open for ventilation. Cruisers should take the necessary safety measures in this port and post a constant watch on deck.
There are no facilities for yachts here. Avoid tying up next to the wharf at the Fisheries Department where you may be directed with the assurance of plenty of water and soft mud. There is in fact hard sand and very little water.
Fuel is difficult to buy, be cautious purchasing black market diesel.
The water is non potable and should be purchased in gallon containers from water purification points. You will need to bargain.
Last updated November 2013.


DH_PYTHON3(1) User Commands DH_PYTHON3(1) NAME dh_python3 - calculates Python 3 dependencies, adds maintainer scripts to byte compile files, etc. SYNOPSIS dh_python3 -p PACKAGE [-V [X.Y][-][A.B]] DIR_OR_FILE [-X REGEXPR] OPTIONS --version show program's version number and exit -h, --help show this help message and exit --no-guessing-deps disable guessing dependencies --no-dbg-cleaning do not remove any files from debug packages --skip-private don't check private directories -v, --verbose turn verbose mode on -i, --indep act on architecture independent packages -a, --arch act on architecture dependent packages -q, --quiet be quiet -p PACKAGE, --package=PACKAGE act on the package named PACKAGE -N NO_PACKAGE, --no-package=NO_PACKAGE do not act on the specified package -V VRANGE specify list of supported Python versions. See py3compile(1) for examples -X REGEXPR, --exclude=REGEXPR exclude items that match given REGEXPR. You may use this option multiple times to build up a list of things to exclude. --compile-all compile all files from given private directory in postinst/rtup‐ date not just the ones provided by the package (i.e. do not pass the --package parameter to py3compile/py3clean) --depends=DEPENDS translate given requirements into Debian dependencies and add them to ${python:Depends}. Use it for missing items in requires.txt. --recommends=RECOMMENDS translate given requirements into Debian dependencies and add them to ${python:Recommends} --suggests=SUGGESTS translate given requirements into Debian dependencies and add them to ${python:Suggests} SEE ALSO /usr/share/doc/python3-doc/README.PyDist (python3-doc package) dh_python3 3.0~beta2 September 2010 DH_PYTHON3(1)


Below is a short list of commonly used terms and acronyms dealing with waste management and reduction.
Organic matter that has been decomposed in a process called composting, which produces a nutrient rich soil conditioner.
Environmental Protection Agency
Municipal Solid Waste (MSW) is commonly known as trash and refers to various items consumers throw away after they are used.
Recycling is the process of converting waste into reusable material.
Sustainable Materials Management (SMM) is the use and reuse of materials across their entire lifecycle.
Waste generation refers to the weight or volume of materials and products that enter the waste stream before recycling, composting, landfilling, or combustion takes place.
The Waste Reduction Model (WARM) is a tool for estimating greenhouse gas reductions resulting from SMM.
In 2015, 262.4 million tons of MSW generated.
Source reduction/waste prevention
Recycling
Composting
Combustion with energy recovery
Disposal through landfilling
Enter your age to gain a new perspective on these numbers.
The EPA has transitioned their focus from waste management to waste reduction and reuse.
In 2015, 1.56 lbs of MSW was recycled per person per day.
91 million tons of the 262.4 million tons of MSW generated in 2015 was made of recycled and composted materials.
67.7 million tons came from recycled materials
2.1 million tons came from food
21.3 million tons came from yard trimmings
1.2 million tons came from consumer electronics
The information compiled on this website was taken from a number of sources. The purpose of this website is to provide the general public with a easy to digest overview of the current state of the environment within the United States.
For an even deeper look into these statistics, check out the resources listed below.