This chapter describes the use and functional understanding of Principle Component Analysis (PCA). PCA is very popular and commonly used during the early phases of model development to provide information on variance. In particular, PCA is a transformative process that orders and maximizes variances found within a dataset.
The primary goal of principal components analysis is to reveal the hidden structure in a dataset. In so doing, we may be able to; 43
identify how different variables work together to create the dynamics of the system,
reduce the dimensionality of the data,
decrease redundancy in the data,
filter some of the noise in the data,
compress the data,
prepare the data for further analysis using other techniques.
PCA preserves the global structure among the data points,
It is efficiently applied to large data sets,
PCA may provide information on the importance of features found in the original datasets.
PCA can easily suffer from scale complications,
Similarly to the point above, PCA is susceptible to significant outliers. If the number of samples is small or when values have many potential outliers, this can influence scaling and relative point placement,
Intuitive understanding can be tricky.
It is common for the first step when carrying out a PCA is to center, scale, normalize the data. This is important due the fact that PCA is sensitive to the scale of the features. If the features are quite different frome each other, i.e. different by one or more orders of magnitude then scaling is crucial.
While determining the variance of your dataset, it should be clear that the order of magnitude of your data features matters significantly. The reasons for this should be clear that if one axis is in 1,000’s while the second axis is between 1 and 10, the larger scale will have a higher variance distorting the results.
What do the center and scale arguments do in the prcomp
command?
There are four common methods for scaling data:
| Method | Formula |
|---|---|
| Centering | \(f(x) ~=~ \large x - \bar x\) |
| Scaling [0, 1] | \(f(x) ~=~ \Large \frac {x - min(x)} {max(x) - min(x)}\) |
| Scaling [a, b] | \(f(x) ~=~ \large (b - a)* \Large \frac {x - min(x)} {max(x) - min(x)} + a\) |
| Normalizing | \(f(x) ~=~ \Large \frac {x - mean(x)} {\sigma_x}\) |
Investigating the differences between the amino acid Phenylalanine (F) before and after 2 scaling methods.
Investigating the plots above, the main idea to recognize is that the data has not been fundamentally changed, simply ‘shifted and stretched’ or more accurately transformed. It appears that any visible changes of the distributions can be accounted for by differing binnings.
Although the differences are between all three histograms are minor, any transformation would be sufficient to use. However, I chose to use the Normalized dataset.
The first step for calculating PCA is to determine the Covariance matrix. Covariance provides a measure of how strongly variables change together.44 45
Remember, this simplified formula is to determine covariance for a two-dimensional system.
\[\begin{equation} cov(x, y) ~=~ \frac{1}{N} \sum_{i=1}^N (x_i - \bar x) (y_i - \bar y) \end{equation}\]
Where \(N\) is the number of observations, \(\bar x\) is the mean of the independent variable, \(\bar y\) is the mean of the dependent variable.
When dealing with a many feature variables one needs to determine the covariance of matrices, \(\large M\) using linear algebra. 46
\[\begin{equation} cov ~ (M) ~=~ \left( \frac{1}{N-1} \right) ~ D^T \cdot D, ~~~ where ~~~~~ D = M - M_{means} \end{equation}\]
Where \(D^T\) is the transpose of the difference matrix, \(N\) is the number of observations or rows in this case.
The procedure below is an outline, not the full computation of PCA.
This procedure for PCA relies on the fact that it is similar to the singular value decomposition (SVD) used when determining eigenvectors and eigenvalues. 47
Singular value decomposition says that every n x p matrix can be written as the product of three matrices: \(A = U \Sigma V^T\) where:
- \(U\) is an orthogonal n x n matrix.
- \(\Sigma\) is a diagonal n x p matrix. In practice, the diagonal elements are ordered so that \(\Sigma_{ii} ~\geqq~ \Sigma_{jj}\) for all i < j.
- \(V\) is an orthogonal p x p matrix, and \(V^T\) represents a matrix transpose.
The SVD represents the essential geometry of a linear transformation. It tells us that every linear transformation is a composition of three fundamental actions. Reading the equation from right to left:
- The matrix \(V\) represents a rotation or reflection of vectors in the p-dimensional domain.
- The matrix \(\Sigma\) represents a linear dilation or contraction along each of the p coordinate directions. If n \(\neq\) p, this step also canonically embeds (or projects) the p-dimensional domain into (or onto) the n-dimensional range.
- The matrix \(U\) represents a rotation or reflection of vectors in the n-dimensional range.
The intuition for understanding PCA is reasonably straightforward. Consider the 2-dimensional data cloud of points or observations in a hypothetical experiment, as seen in the figure on the left. Variances along both the x and y dimensions are calculated. However, given the data shown, there is a rotation of that x-y plane, which will present the data showing its most significant variance. This variance will reside on an axis analogous to points on an Ordinary Least Squares (OLS) line. This axis is called the first principle component followed by the second principal component and so on.
Unlike an OLS calculation, PCA will determine not only the first and most significant variance of your data set, but it will, through the rotation and transform your dataset via linear algebra, calculating N variances within your dataset, where N is equal to the number of features in the dataset. The second principal component will be calculated only along a coordinate axis, which is perpendicular (orthogonal or orthonormal) to the first. Each subsequent principal component will then be calculated along axes which are orthogonal to each other. A further benefit of using PCA is that the variances it reports will be ranked in order from highest to lowest. 48
| Graphic | Range (Green lines) | Differences |
|---|---|---|
| Raw Data (Left) | 1 <= x <= 4 | 3 units |
| Transformed Data (Right) | -2.45 <= x <= 2.77 | 5.22 units |
If we investigate the figures above we find that the range of the samples is (1 <= x <= 4), while the range for the transformed data is (-2.45 <= x <= 2.76). The differences between the two ranges are 3 and 5.21 units, respectively. The rotation should be no surprise since the PCA is essentially a maximization of variance.
Many R-packages will carry out the steps for PCA all behind the ‘scenes’ but giving no greater understanding for beginners. For example, stats::prcomp
49, stats::princomp
50 are most commonly used. However, there are dozens of similar packages. A keyword search for PCA at R-cran 51 provides 78 matches, as of November 2019.
norm_c_m_20aa
start_time <- Sys.time() # Start timer
c_m_20_PCA <- prcomp(norm_c_m_20aa)
Sys.time() - start_time # End timer & display time difference
## Time difference of 0.02533388 secs
Two plots are commonly used to determine the number of principal components that a researcher would generally accept as useful. The eigenvalues derived from PCA are proportional to the variances which they represent, and depending on the strategy used to calculate them, the eigenvalues are equal to the variances of the components.
The first of the two plots which I which is the scree plot. 52 The scree plot is a ranked list of the eigenvalues plotted against its principal components. An eigenvalue score of one is thought to provide a comparable amount of information as a single variable un-transformed by PCA.
The second plot describes the cumulative proportion of variance versus the principal component. This graphic shows how much each principal component represents the entire cumulative variances or total squared error.
\[\begin{equation} Cumlative ~ Proportion ~of ~Variance ~=~ \frac{\sigma_i^2}{\sum_{i=1}^N \sigma_i^2} \end{equation}\]
Here again, there are several criteria regarding how best to use the information from the is plot. The first of which is Cattell’s heuristic. Cattell advises using the principal component that is above the elbow of the curve. The second heuristic is keeping the total number of factors that best explains 80%-95% of the variance. There is no hard-fast rule at this time; a set of researchers only uses the first three factors or none at all.53 A second suggestion is to use the Kaiser rule, which states it is sufficient to use Principal Components, which have an eigenvalue greater than or equal to one. 54
If we investigate the ‘cumulative proportion of variance’ plot, we see an arbitrary line on the Y-axis, which denotes the 90% mark. At this point, the plot suggests that a researcher could use the most significant 12 of the variances from the PCA.
Black indicates control protein set, Class = 0
Blue indicates myoglobin protein set, Class = 1
The first two principal components describe 46.95% of the variance.
Anomalous data points are data that is greater than the absolute value of 3 sigma, Anomalous Point > \(| 3 \sigma |\).
I have chosen to analyze the PCA biplot of the first and second principal components. The first and second components were used because they describe nearly 50% of the variance (46.95%).
Rule Set Given PC1:
Outlier_1: c_m_20_PCA$x[, 1] > 3 standard deviations
Outlier_2: c_m_20_PCA$x[, 1] < -3 standard deviations
## [1] 285
Rule Set Given PC2:
Outlier_3: c_m_20_PCA$x[, 2] > 3 standard deviations
Outlier_4: c_m_20_PCA$x[, 2] < -3 standard deviations
## [1] 177
union
of outliers_PC1
and outliers_PC2
and then using sort.
total_pca_1_2_outliers <- union(outliers_PC1, outliers_PC2)
total_pca_1_2_outliers <- sort(total_pca_1_2_outliers)
length(total_pca_1_2_outliers)
## [1] 461
# Write out to Outliers folder
write.table(total_pca_1_2_outliers,
file = "./00-data/03-ml_results/pca_outliers.csv",
row.names = FALSE,
na = "",
col.names = "rowNum",
sep = ",")
It is important to remember and understand that this list of “total_pca_1_2_outliers” includes BOTH negative and positive controls. The groupings are as follows:
| Group | Range of Groups |
|---|---|
| Controls | 1, …, 1216 |
| Positive (Myoglobin) | 1217, …, 2341 |
Principal Component Analysis is very popular and an excellent choice to include during Exploratory Data. Analysis. One objective for using PCA is to filter noise from the dataset used and, in turn, increase any signal or to sufficiently delineate observations from each other. In fact, in the figure below, there are five colored groups outside the main body of observations that are marked at ‘outliers.’ The number of outliers obtained from PCA is 461 proteins. The premise of this experiment is to determine if PCA is an excellent representative measure for proteins that are categorized is false-positive, and false-negatives in the five subsequent machine learning model approach. It will be interesting to see if anyone of these groups will be present in the group of false-positives and false-negatives in any of the machine learning models.
The table and the figure below show a subset of outliers produced when the first and second principal component is graphed. My interest lies in finding if any one of the lettered groups (A-E) are part of the false-positives and false-negatives from each of the machine learning models. Each of the five groups is rich is a small number of amino acids. We hope that this information will shine a light on how the different machine models work. It is also expected that this will give help in constructing a model that is more interpretable for the more difficult opaque machine learning models, such as Random Forest, Neural Networks, and possibly Support Vector Machine using the Radial Basis Function.
| Group | Increased concentration of amino acid | Example observations |
|---|---|---|
| A | H, L, K | 1478 |
| B | E, K | 1934, 1870, 2100 |
| C | V, I, F, Y | 182, 1752, 2156 |
| D | C, S | 1360, 2240 |
| E | G, D, Q | 664, 2304 |
Emily Mankin, Principal Components Analysis: A How-To Manual for R, http://people.tamu.edu/~alawing/materials/ESSM689/pca.pdf↩
Trevor Hastie, Robert Tibshirani, Jerome Friedman, ‘The Elements of Statistical Learning; Data Mining, Inference, and Prediction,’ Second Edition, Springer, DOI:10.1007/978-0-387-84858-7, 2009↩
https://blogs.sas.com/content/iml/2017/08/28/singular-value-decomposition-svd-sas.html↩
Brian Everitt, Torsten Hothorn, An Introduction to Applied Multivariate Analysis with R, Springer, DOI:10.1007/978-1-4419-9650-3, 2011↩
https://stat.ethz.ch/R-manual/R-devel/library/stats/html/prcomp.html↩
https://stat.ethz.ch/R-manual/R-devel/library/stats/html/princomp.html↩
https://cran.r-project.org/web/packages/available_packages_by_name.html↩
Raymond Cattell, “The scree test for the number of factors.” Multivariate Behavioral Research. 1 (2): 245–76. DOI:10.1207/s15327906mbr0102_10, 1966↩
Nicole Radzill, Ph.D., personal communication.↩
https://stats.stackexchange.com/questions/253535/the-advantages-and-disadvantages-of-using-kaiser-rule-to-select-the-number-of-pr↩


For this assignment, I created an infographic summarising the results of Singapore's GE2020. You can view the final pdf HERE.
Why GE2020?
I went online searching for an infographic for the results of Singapore's GE2020, but could not find any. As such, I thought I could attempt to fill this gap by creating an infographic.
Sketches
Before proceeding with creating the actual poster, I made two sketches.
At first, I tried making an infographic based on the 1st design. However, I noted a few things:
- There were too many constituencies to fit into one column as depicted.
- Having a section to simply show "Total Votes", "Rejected", and "Abstained" was rather empty.
- There was nothing summarising the overall results of the vote distribution.
- I removed the "2015" section to make space for a second column of data for the constituencies. This also allowed for a legend at the bottom right.
- I replaced the "Total Votes... Abstained" section with a pie chart containing a summary of the overall vote distribution.
Creating the Graphics
First, I designed the chair in illustrator. This was a simple shape created with lines and boxes, a good enough abstraction of a chair since I was already going to add a header for the section indicating that these are "Seats" anyway.
Then, I created the pie chart using the pie chart tool. I created a circle in the middle and used a clipping mask to hollow out the centre. Furthermore, to emphasise the numbers, I increased their size and made them bold.
Finally, I found a Singapore constituency map SVG online with a Creative Commons license. In Illustrator, I coloured all the PAP constituencies red and WP constituencies blue and changed the text colour to white to match my infographic's style. I also removed Pedra Branca since I felt it wasn't necessary for my infographic.
Designing the Infographic
I used InDesign to compile everything onto an A4 document.
One feature I utilised heavily was the Groups, so I can easily edit multiple elements together.
Also, I used character and paragraph styles to easily make changes to text elements in the same style by simply editing the style rather than editing each object individually.
Finally, the first draft of my infographic was complete.
Design Decisions
1) Balance
The layout of the constituencies are symmetrical to create a sense of symmetrical balance. The party with the majority vote (aka winning party) is put closest to the name of the constituency, and their names are aligned in the direction of the bars. This sense of symmetry evokes a sense of formality and structure to the infographic, making it appear more readable and reliable.
Furthermore, I increased the size of the pie chart to make the text more legible and infographic more interesting and create a sense of asymmetrical balance in the top half of the infographic whereby the map balances out with the pie chart. As such, the viewer's eyes will be guided from the map, to the pie chart, to the seats, and finally to the constituency vote distribution; creating a sense of movement.
2) Background & Contrast
I decided on a dark blue background to evoke a sense of reliability and wisdom for the viewer, important for a political infographic. I hence used white text to contrast with the dark background to increase readability - making the content-heavy infographic more digestible.
Notice that the pie chart is missing a shadow. This was due to a glitch between InDesign and Illustrator, which I later fixed. However, here you can see how - without the shadow - the pie chart doesn't pop as much as the other graphics.
3) Emphasis
To emphasise on PAP's parliamentary seat winnings, I contrasted the blue seats at the end in the parliamentary seats section with the dominant red seats. The break in the repetitive pattern highlights how few seats the opposition had won. This same emphasis by colour is used in the Singapore map, where the small blue section sits amidst a large sea of red.
4) Typeface
I decided to use the Helvetica typeface since its sans-serif type makes it easier to read, and it is also used in many professional settings - further reinforcing my infographic's reliability.
5) Other Creative Decisions
I added thin lines to segment the different sections of the infographic to distinguish them from one another and make the infographic more readable.
Furthermore, I also tried a different design for the legend - but I felt it added undesirable weight to the legend, distracting the viewer's attention.
Finally, I used a red gradient for the header's background strip to not only match Singapore's red colour, but to also match the dominant PAP red in the infographic. A gradient was used instead of a solid colour to make the infographic more interesting. I also decided to have the strip overlap with the map, as the shadow casted by the map on the strip helps to make it pop even more.
Post-Critique
I was told that my colour scheme seems to resemble the PAP's colour scheme! It wasn't intentional. This led me to think about PAP's intention behind their logo colours: Could the blue be used to evoke a sense of wisdom and reliability, similar to my infographic?
Also, I was told that some viewers might require an extra step to deduce that the percentages in the GRCs/SMCs section represented the distribution of votes for each constituency. As such, I decided to add a "DISTRIBUTION OF VOTES" header to the section to fill this deductive gap.


Add Mailchimp to your site September 6, 2016 Create an account Click “Create A List” and fill out form Click “Signup Forms” and select “General Form” Add the url Mailchimp provides you to your site <a href="/urlFromMailchimp">


SHOWFIGFONTS(6) SHOWFIGFONTS(6) NAME showfigfonts - prints a list of available figlet fonts SYNOPSIS showfigfonts [ -d directory ] [ word ] DESCRIPTION Prints a list of available figlet fonts, along with a sample of each font. If directory is given, lists fonts in that directory; otherwise uses the default font directory. If word is given, prints that word in each font; otherwise prints the font name. EXAMPLES To use showfigfonts with its default settings, simply type example% showfigfonts To print all the fonts in /usr/share/fonts/figlet example% showfigfonts -d /usr/share/fonts/figlet To print the word foo using all available fonts example% showfigfonts foo AUTHORS showfigfonts was written by Glenn Chappell<EMAIL_ADDRESS>This manual page was written by Jonathon Abbott for the Debian Project. SEE ALSO figlet(6), chkfont(6), figlist(6) v2.2.5 31 May 2012 SHOWFIGFONTS(6)


Creates an instance of PageLinkParser
Plugin options
Page dictionary
TypeDoc logger
Converts the provided absolute URL to a URL relative to the current page's URL
Absolute URL to convert to a relative URL
URL to make the URL relative to
The converted URL
Handles the replacement of a page link tags
If the tag points at a page group, the page groups first page will be used as the link target. If the tab points at a page section, the first page of the first group in the section will be used as the link target. If no page or page group is found for the provided title, then the tag will not be replaced.
The entire matching page link tag
The text leading before the tag
The type of tag that was used (i.e. @page
or @pagelink
)
The text following the tag - this is used to find the page or page group by title
The string to replace the tag with
Writes the list of invalid page links to the console
If the PluginOptions.listInvalidPageLinks option is false, this method will not list any invalid page links.
Parses the Markdown text provided in the TypeDoc Markdown event, replacing page link tags with hyperlinks
If the PluginOptions.enablePageLinks option is false, this method will not replace the page links.
TypeDoc Markdown event
Configures the parser with the page currently being rendered
TypeDoc page event
Generated using TypeDoc
Parses Markdown text and replaces page link tags with hyperlinks to pages and page groups


Global variables used for providing the relative mouse coordinates according to the scale. Use these variables in place of xmouse and ymouse.
Important
Only use these variables to read mouse position. Don't change these variables' values, Resolutionary updates them for you every frame.
An actor variable used for storing an actor's type.
Important
Don't change this actor variable directly. Instead, use the function resChangeActorType();
to set or change an actor's type.
An actor variable used for managing an actor's depth in the drawing order.
Important
Don't change this actor variable directly. Instead, use the function resChangeActorZLayer();
to set or change an actor's zLayer.
An actor variable used for telling Resolutionary whether an actor has a parent or not. This information is crucial for knowing whether the actor's coordinates should be interpreted as absolute or as relative to another actor.
Important
Don't change this actor variable directly. Instead, use the function resChangeActorParent();
to set or change an actor's parent.
An actor variable used for fetching a pointer to an actor's parent when needed.
Important
Don't change this actor variable directly.
An actor variable used for telling Resolutionary whether an actor is already listed or not.
Important
Don't change this actor variable directly.


JNU Protests 'politically Motivated', Fee Hike Issue An Excuse: Union Minister
by Press Trust Of IndiaPolitics
The protests by JNU students over hostel fee hike is "politically-motivated" and a reaction to the Modi government's strong measures
Written By Press Trust Of India | Mumbai | Updated On: November 19, 2019 18:35 IST
The protests by JNU students over hostel fee hike is "politically-motivated" and a reaction to the Modi government's strong measures to stop activities of those who wanted to make the institute a centre of "urban naxalism", Union minister Giriraj Singh said on Tuesday.
Speaking to reporters, Singh, who is known for his hardline views, said the issue of fee hike is merely an excuse as the fee charged by the JNU administration should be compared with that of the Delhi University and other central institutions.
WATCH: JNU Students Clog Road While Protesting Against Hostel Fee Hike
"We have seen in the past that 'tukde-tukde gang' would raise slogans against India and commemorate the death anniversary of Afzal Guru. "The Modi government has put a stop to these activities. The protests we are seeing now is politically motivate and the fee hike issue is merely an excuse," he said.
Singh said one group of students is behind the agitation as they can no longer do whatever they wish as they used to do earlier. "Tukde-tukde gang" is a term the BJP uses against those it accuses of encouraging anti-national sentiments.
Singh spoke strongly against the defacement of a Swami Vivekananda statue on the JNU campus and said it showed the real intentions of the protestors. The Delhi Police lodged two FIRs on Tuesday in connection with the protest by Jawaharlal Nehru University (JNU) students over the hostel fee hike. Hundreds of JNU students rocked the national capital on Monday, bringing several parts of the city to a halt. The students took out a protest march opposing the hike.
SHOCKER: JNU Protestors Attempt To Silence Republic Media Network: Block Right To Report


| 007:199 Khan | : |
Show forgiveness, enjoin what is good, and turn away from the foolish (i.e. don't punish them). |
| 007:199 Maulana | : |
Take to forgiveness and enjoin good and turn away from the ignorant. |
| 007:199 Pickthal | : |
Keep to forgiveness (O Muhammad), and enjoin kindness, and turn away from the ignorant. |
| 007:199 Rashad | : |
You shall resort to pardon, advocate tolerance, and disregard the ignorant. |
| 007:199 Sarwar | : |
Have forgiveness, preach the truth, and keep away from the ignorant ones. |
| 007:199 Shakir | : |
Take to forgiveness and enjoin good and turn aside from the ignorant. |
| 007:199 Sherali | : |
Do thou ever forebear, O Prophet ! and enjoin kindness, and turn away from the ignorant. |
| 007:199 Yusufali | : |
Hold to forgiveness; command what is right; But turn away from the ignorant. |
Concepts/Themes Covered: أركان الإسلام > التوحيد > الجاهلون بالدين > الإعراض عنهم Pillars of Islam> Islamic> The Ignorants of Religion> Turning away from them أركان الإسلام > التوحيد > الشرك والمشركون > الإعراض عن المشركين المستهزئين Pillars of Islam> Islamic> Polytheism and the Polytheists> The Avoidance from the Mockering Polytheists أركان الإسلام > التوحيد > المكذبون الظالمون > الإعراض عنهم Pillars of Islam> Islamic> The Oppressive Liars> Turning away from them الدعوة إلى الله > وجوبها > وجوبها على كل مسلم The Call for Allah> Its Necessity> Its Necessity by Every Moslem العلوم والفنون > ذم الجهل والجاهلين Science and Art>Dispraising Ignorance and the Ignorants
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


prokaryote-loader
A web component with a microbial take on the classic animated loader.
Standard loader
Loader with message


|
API
For Arduino developers
|
An ESP8266 library for Arduino providing an easy-to-use way to manipulate ESP8266.
Source can be download at https://github.com/itead/ITEADLIB_Arduino_WeeESP8266.
You can clone it by:
git clone https://github.com/itead/ITEADLIB_Arduino_WeeESP8266.git
Online API documentation can be reached at http://docs.iteadstudio.com/ITEADLIB_Arduino_WeeESP8266/index.html.
Offline API documentation can be found under directory doc.
On the home page of API documentation, the tabs of Examples, Classes and Modules will be useful for Arduino lovers.
bool kick (void) : Verify ESP8266 whether live or not. bool restart (void) : Restart ESP8266 by "AT+RST". String getVersion (void) : Get the version of AT Command Set. bool setOprToStation (void) : Set operation mode to staion. bool setOprToSoftAP (void) : Set operation mode to softap. bool setOprToStationSoftAP (void) : Set operation mode to station + softap. String getAPList (void) : Search available AP list and return it. bool joinAP (String ssid, String pwd) : Join in AP. bool leaveAP (void) : Leave AP joined before. bool setSoftAPParam (String ssid, String pwd, uint8_t chl=7, uint8_t ecn=4) : Set SoftAP parameters. String getJoinedDeviceIP (void) : Get the IP list of devices connected to SoftAP. String getIPStatus (void) : Get the current status of connection(UDP and TCP). String getLocalIP (void) : Get the IP address of ESP8266. bool enableMUX (void) : Enable IP MUX(multiple connection mode). bool disableMUX (void) : Disable IP MUX(single connection mode). bool createTCP (String addr, uint32_t port) : Create TCP connection in single mode. bool releaseTCP (void) : Release TCP connection in single mode. bool registerUDP (String addr, uint32_t port) : Register UDP port number in single mode. bool unregisterUDP (void) : Unregister UDP port number in single mode. bool createTCP (uint8_t mux_id, String addr, uint32_t port) : Create TCP connection in multiple mode. bool releaseTCP (uint8_t mux_id) : Release TCP connection in multiple mode. bool registerUDP (uint8_t mux_id, String addr, uint32_t port) : Register UDP port number in multiple mode. bool unregisterUDP (uint8_t mux_id) : Unregister UDP port number in multiple mode. bool setTCPServerTimeout (uint32_t timeout=180) : Set the timeout of TCP Server. bool startServer (uint32_t port=333) ： Start Server(Only in multiple mode). bool stopServer (void) : Stop Server(Only in multiple mode). bool startTCPServer (uint32_t port=333) : Start TCP Server(Only in multiple mode). bool stopTCPServer (void) : Stop TCP Server(Only in multiple mode). bool send (const uint8_t *buffer, uint32_t len) : Send data based on TCP or UDP builded already in single mode. bool send (uint8_t mux_id, const uint8_t *buffer, uint32_t len) : Send data based on one of TCP or UDP builded already in multiple mode. uint32_t recv (uint8_t *buffer, uint32_t buffer_size, uint32_t timeout=1000) : Receive data from TCP or UDP builded already in single mode. uint32_t recv (uint8_t mux_id, uint8_t *buffer, uint32_t buffer_size, uint32_t timeout=1000) : Receive data from one of TCP or UDP builded already in multiple mode. uint32_t recv (uint8_t *coming_mux_id, uint8_t *buffer, uint32_t buffer_size, uint32_t timeout=1000) : Receive data from all of TCP or UDP builded already in multiple mode.
If you want to use SoftwareSerial to communicate with ESP8266, you need to modify the line in file ESP8266.h
:
//#define ESP8266_USE_SOFTWARE_SERIAL
After modification, it should be:
#define ESP8266_USE_SOFTWARE_SERIAL
WeeESP8266 library only needs an uart for hardware connection. All communications are done via uart. In each example, you must specify the uart used by mainboard to communicate with ESP8266 flashed AT firmware.
For MEGA and WBoard Pro, Serial1
will be used if you create an object (named wifi) of class ESP8266 in your code like this:
#include "ESP8266.h" ESP8266 wifi(Serial1);
The connection should be like these:
ESP8266_TX->RX1(D19) ESP8266_RX->TX1(D18) ESP8266_CH_PD->3.3V ESP8266_VCC->3.3V ESP8266_GND->GND
To use SoftwareSerial, mySerial
will be used if you create an object (named wifi) of class ESP8266 in your code like this:
#include "ESP8266.h" #include <SoftwareSerial.h> SoftwareSerial mySerial(3, 2); /* RX:D3, TX:D2 */ ESP8266 wifi(mySerial);
The connection should be like these:
ESP8266_TX->RX(D3) ESP8266_RX->TX(D2) ESP8266_CH_PD->3.3V ESP8266_VCC->3.3V ESP8266_GND->GND
The size of data from ESP8266 is too big for arduino sometimes, so the library can't receive the whole buffer because the size of the hardware serial buffer which is defined in HardwareSerial.h is too small.
Open the file from \arduino\hardware\arduino\avr\cores\arduino\HardwareSerial.h
. See the follow line in the HardwareSerial.h file.
#define SERIAL_BUFFER_SIZE 64
The default size of the buffer is 64. Change it into a bigger number, like 256 or more.


Manager
Toni Powell
Employee ID: 27
Office Number: 191
Engineer
Jack Bauer
Employee ID: 6
Github
Intern
Longdog Bonnie
Intern ID: 7
School: University of New Hampshire


This is my Portfolio website for you to know me better.
Name: Marcus BarasukanaI just finished my A-level at Rusinga School and decided to learn how code because I want to create amazing apps that will make the world an easier and more fun place to be.
I've always had incredible ideas for apps and I hope Moringa School will help put these ideas into apps.
| Project | Language | Description |
|---|---|---|
| Animal shettle | HTML | A webpage for Animal Shettle |
| Cupcake | HTML | This is a cupcake webpage |
| Various Projects | HTML | This are Various HTML pages such as webpages for hotels and dogs |


--- layout: post title: Calm date: '2010-10-03T00:00:00-04:00' tags: - '2010' tumblr_url: http://poetry.liabogoev.com/post/49087108837/calm ---
Classical music trickles out of mediocre quality speakers,
barely enough volume to cover the buzzing of the mini fridge.
Behind me, the ghostly limbs of trees,
illuminated orange from fluorescent building lights,
blend with my reflection in the darkened window.
Before me, blue lines checker a pristine white paper,
a mechanical pencil sits ready.

The graphite copies a problem down, grey less harsh than black,
and gears begin to click in my head. Scratch. Scratch. Scratch.
against the paper. Little x’s fit in boxes.
A few lines later, and the problem lays unraveled,
torn down, vanquished, and conquered.
I breathe a sigh of relief,
and the knot in my stomach releases its hold on my nerves,
just a touch.


Specifies the type of API usage information to be returned. API usage information returned is based on the #apiUsageType specified. All returned values are specific to the developer token being used to call
For each of the
values, other fields must also be set as described below:Located in /adwords/src/Google/Api/Ads/AdWords/v201109/InfoService.php (line 1045)
Gets the namesapce of this class
Gets the xsi:type name of this class
Documentation generated by phpDocumentor 1.4.4


Translator: Dong Wang
Author: labuladong
Many algorithm problems require sorting skills. The difficulty is not in the sort itself, but ingenious sorting for preprocessing, transforming the algorithm problems, and laying the foundation for subsequent operations.
The russian doll envelopes needs to be sorted according to specific rules, and then converted into a Longest Incremental Subsequence Problem. You can use the trick of previous text Binary Search Detailed Explanation to solve the problem.
Russian doll envelopes is a very interesting and often occurring problem in life. Let’s look at the problem first:
You have a number of envelopes with widths and heights given as a pair of integers (w, h)
. One envelope can fit into another if and only if both the width and height of one envelope is greater than the width and height of the other envelope.
What is the maximum number of envelopes can you Russian doll? (put one inside other)
Note:
Rotation is not allowed.
Example:Input: [[5,4],[6,4],[6,7],[2,3]] Output: 3 Explanation: The maximum number of envelopes you can Russian doll is 3 ([2,3] => [5,4] => [6,7]).
This question is actually a variant of Longes Increasing Subsequence(LIS), because it is clear that each legal nesting is a large set of small, which is equivalent to finding a longest increasing subsequence , and its length is the maximum number of envelopes that can be nested.
But the difficulty is that the standard LIS algorithm can only find the longest subsequence in the array, and our envelope is represented by a two-dimensional number pair like (w, h)
. How can we apply the LIS algorithm?
The reader may calculate the area by w × h
, and then perform the standard LIS algorithm on the area. However, if you think about it a little, you will find that this is not possible. For example, 1 × 10
is greater than3 × 3
, but obviously such two envelopes cannot be nested inside each other.
The solution to this problem is relatively clever:
First sort the width w
in ascending order. If you encounter the same situation withw
, sort in descending order by height h
. Then use all h
as an array, and calculate the length of LIS on this array is the answer.
Draw a picture to understand, first sort these number pairs:
Then look for the longest increasing subsequence on h
:
This subsequence is the optimal nesting scheme.
The key to this solution is that for pairs of the same width w
, the heighth
is sorted in descending order. Because two envelopes of the same width cannot contain each other, reverse ordering guarantees that at most one of the pairs of the same w
is selected.
The code as follow:
// envelopes = [[w, h], [w, h]...]
public int maxEnvelopes(int[][] envelopes) {
int n = envelopes.length;
// sort by ascending width, and sort by descending height if the width are the same
Arrays.sort(envelopes, new Comparator<int[]>()
{
public int compare(int[] a, int[] b) {
return a[0] == b[0] ?
b[1] - a[1] : a[0] - b[0];
}
});
// find LIS on the height array
int[] height = new int[n];
for (int i = 0; i < n; i++)
height[i] = envelopes[i][1];
return lengthOfLIS(height);
}
Regarding the search method for the longest increasing subsequence, the dynamic programming solution was introduced in detail in the previous article, and the binary search solution was explained using a poker game. This article will not expand and directly apply the algorithm template:
/* returns the length of LIS in nums */
public int lengthOfLIS(int[] nums) {
int piles = 0, n = nums.length;
int[] top = new int[n];
for (int i = 0; i < n; i++) {
// playing card to process
int poker = nums[i];
int left = 0, right = piles;
// position to insert for binary search
while (left < right) {
int mid = (left + right) / 2;
if (top[mid] >= poker)
right = mid;
else
left = mid + 1;
}
if (left == piles) piles++;
// put this playing cart on top of the pile
top[left] = poker;
}
// the number of cards is the LIS length
return piles;
}
For clarity, I divided the code into two functions. You can also merge them to save space in the height
array.
The time complexity of this algorithm is O(NlogN), because sorting and calculating LIS each takes O(NlogN).
The space complexity is O(N), because a top
array is needed in the function to calculate LIS.
This problem is a hard-level problem, and its difficult lies in sorting. The problem is transformed into a standard LIS problem after correct sorting, which is easy to solve.
In fact, this problem can also be extended to three dimensions. For example, instead of letting you nest envelopes, you need to nest boxes. Each box has three dimensions: length, width, and height. Can you count how many boxes can be nested?
We may think so, first find the nested sequence according to the idea of envelope nesting in the first two dimensions(length and width), and finally find LIS in the third dimension(height) of this sequence, and we should be able to calculate the answer.
In fact, this idea is wrong. This type of problem is called a partial order problem. Ascending to three dimensions will greatly increase the difficulty. An advanced data structure called Binary Index Tree is needed, and interested readers can search by themselves.
There are many algorithmic problems that need to be sorted and processed, and author is collating and summarizing. Hope this article is helpful to you.


 Distances are given in kilometers. This race is held on a road loop
(that includes a 400m track) measured as
1858.29 meters for the 2007 race. For 1998-2006, the loop distance was taken
to be 1851 meters. The loop distance prior to 1998 was estimated as 1866
meters; distances prior to 1998 have been adjusted to reflect the measurement
made prior to the 1998 race.
18 Jun
2011
---
cancelled
---
cancelled
19 Jun
2010
134.166
Peter Palmans (BEL)
100.332
Elizabeth Annegarn (NED)
20 Jun
2009
119.847
Rik Tijskens (BEL)
81.772
Regina vanGeene (NED)
21 Jun
2008
117.914
Arjan vandenBerg (NED)
116.544
Majet Spoelder (NED)
117.988
Erwin vanDiemen (NED)
115.207
Ria Buiten-4
128.353
Theo Smit (NED)
111.060
Ria Buiten-3
118.803
Jan vandeErve (NED)
92.741
Barbara Becker (GER)
126.113
Peter Suijkerbuijk (NED)
115.224
Cornelia Bullig (GER)
126.930
Tom Hendriks (NED)
97.156
Ineke Scheffer (NED)
118.328
Sjoerd Slaaf-2
100.017
Ria Buiten-2
116.806
Sjoerd Slaaf (NED)
98.266
Marjanne Swart (NED)
131.608
Cees Verhagen-2
147.626
Edward deRuiter (NED)
122.166
Erik Holtmark (NED)
144.841
Wim Epskamp (NED)
120.325
Ria Buiten (NED)
129.761
Cees Verhagen (NED)
107.358
Corrie
Bouwmeester--3
131.838
Patrick Roosen (BEL)
105.507
Corrie
Bouwmeester-2
145.767
Ron Teunisse-3
103.878
Corrie Bouwmeester (NED)
145.314
Ron Teunisse-2
101.520
Letteke Broekman (NED)
144.873
Wim-Bart Knol (NED)
143.017
Ron Teunisse (NED)
95.172
Tine Bronswijk (NED)
134.297
Henk Noor (NED)
---
not held
Aad vanRumpt (NED)
Most Wins
(1988-date)
Men
3
Ron Teunisse
(NED)
1991,1993-94
Women
4
Ria Buiten (NED)
1997,2002,2006-07
Prize Money
(ADR qualified runners)
No information on prize money has been received for this race.
Race Time Bias
(sec/km)
The race time bias is not calculated for distances beyond 45 km.
Competitive Level
(1990-date)
Insufficient data to calculate the race time bias.
Finishers
Year Men Wmn M+F 2010 12 1 13 2009 23 4 27 2008 16 5 21 2007 16 3 19 2006 10 3 13 2005 18 2 20 2004 12 4 16 2003 21 4 25 2002 17 3 20 2001 9 1 10 2000 10 10 1999 15 15 1998 14 14 1997 16 3 19 1996 14 1 15 1995 17 1 18 1994 32 1 33 1993 24 1 25 1992 30 30 1991 25 1 26 1990 14 14 ... not held 1988 9 9 Sums 374 38 412 M/F 9.84
Last Updated on 16 Jun 2012
Contributors: Marien Baars, Juraj Gasparovic (5), Thierry Lefeuvre (5), Paul Michiels (2)


java.io.Serializable
interface where the readResolve()
or writeReplace()
methods are not declared protected
.
Declaring readResolve()
and writeReplace()
methods private
can force subclasses to silently ignore them, while declaring them
public
allows them to be invoked by untrusted code. Note: in the case
of classes declared final
, these methods may be
declared private
, instead.
Example:
class ClassWithSerialization implements Serializable {
public Object writeReplace() { // warning: 'writeReplace()' not declared protected
...
}
}


--- layout: post title: Rich clients with Rails and XUL categories: - horizon author: admin published: true date: 2005-01-25 09:26:03.000000000 +00:00 ---
Zed Shaw put together a simple proof of concept application in a couple of hours to demonstrate the possibilities for rich clients in Rails and XUL. Being XUL, it naturally only works in Firefox and Mozilla, and being proof of concept, it still has plenty of stuff missing. But it does provide a window into the kind of applications Rails are capable of powering if you’re willing to limit the application to the Mozilla platform.
UPDATE: Zed has explained how the prototype works and offers a few suggestions for Rails.


Exception specifications for Sandman
The model module is repsonsible exposes the sandman.model.Model class, from which user models should derive. It also makes the register() function available, which maps endpoints to their associated classes.
Register with the API a sandman.model.Model class and associated endpoint.
| Parameters: | cls (sandman.model.Model or tuple) – User-defined class derived from sandman.model.Model to be registered with the endpoint returned by endpoint() |
|---|
Activate each pre-registered model or generate the model classes and (possibly) register them for the admin.
| Parameters: |
|
|---|
The Model class is meant to be the base class for user Models. It represents a table in the database that should be modeled as a resource.
Bases: flask_admin.contrib.sqla.view.ModelView
Mixin admin view class that displays primary keys on the admin form
Mass-model action view.
Create model view
Delete model view. Only POST method is allowed.
Edit model view
List view
Bases: flask_admin.contrib.sqla.view.ModelView
Mass-model action view.
Create model view
Delete model view. Only POST method is allowed.
Edit model view
List view
Bases: object
A mixin class containing the majority of the RESTful API functionality.
sandman.model.Model is the base class of :class:`sandman.Model, from which user models are derived.
override __endpoint__ if you wish to configure the sandman.model.Model‘s endpoint.
Default: __tablename__ in lowercase and pluralized
override __methods__ if you wish to change the HTTP methods this sandman.model.Model supports.
Default: ('GET', 'POST', 'PATCH', 'DELETE', 'PUT')
Will be populated by SQLAlchemy with the table’s meta-information.
The name of the database table this class should be mapped to
Default: None
Return a dictionary containing only the attributes which map to an instance’s database columns.
| Return type: | dict |
|---|
Set a set of attributes which correspond to the sandman.model.Model‘s columns.
| Parameters: | dictionary (dict) – A dictionary of attributes to set on the instance whose keys are the column names of the sandman.model.Model‘s underlying database table. |
|---|
Set all attributes which correspond to the sandman.model.Model‘s columns to the values in dictionary, inserting None if an attribute’s value is not specified.
| Parameters: | dictionary (dict) – A dictionary of attributes to set on the instance whose keys are the column names of the sandman.model.Model‘s underlying database table. |
|---|
Sandman REST API creator for Flask and SQLAlchemy
Return a response for the resource of the appropriate content type.
| Parameters: | resource (sandman.model.Model) – resource to be returned in request |
|---|---|
| Return type: | flask.Response |
Return a response for the resources of the appropriate content type.
| Parameters: | resources – resources to be returned in request |
|---|---|
| Return type: | flask.Response |
Return the appropriate Response for deleting an existing resource in collection.
| Parameters: |
|
|---|---|
| Return type: | flask.Response |
Return the sandman.model.Model associated with the endpoint collection.
| Parameters: | collection (string) – a sandman.model.Model endpoint |
|---|---|
| Return type: | sandman.model.Model |
Return the appropriate Response for retrieving a collection of resources.
| Parameters: |
|
|---|---|
| Return type: | flask.Response |
Return the appropriate Response for retrieving a single resource.
| Parameters: |
|
|---|---|
| Return type: | flask.Response |
Return the appropriate Response for retrieving an attribute of a single resource.
| Parameters: |
|
|---|---|
| Return type: | flask.Response |
Return the data from the incoming request based on the Content-type.
Return a response with the appropriate status code, message, and content type when an InvalidAPIUsage exception is raised.
Return information about each type of resource and how it can be accessed.
Return the appropriate Response with status code 204, signaling a completed action which does not require data in the response body
| Return type: | flask.Response |
|---|
“Upsert” a resource identified by the given key and return the appropriate Response.
If no resource currently exists at /<collection>/<key>, create it with key as its primary key and return a resource_created_response().
If a resource does exist at /<collection>/<key>, update it with the data sent in the request and return a no_content_response().
Note: HTTP PATCH (and, thus, patch_resource()) is idempotent
| Parameters: |
|
|---|---|
| Return type: | flask.Response |
Return the appropriate Response based on adding a new resource to collection.
| Parameters: | collection (string) – a sandman.model.Model endpoint |
|---|---|
| Return type: | flask.Response |
Replace the resource identified by the given key and return the appropriate response.
| Parameters: | collection (string) – a sandman.model.Model endpoint |
|---|---|
| Return type: | flask.Response |
Return HTTP response with status code 201, signaling a created resource
| Parameters: | resource (sandman.model.Model) – resource created as a result of current request |
|---|---|
| Return type: | flask.Response |
Return a response for the resource of the appropriate content type.
| Parameters: | resource (sandman.model.Model) – resource to be returned in request |
|---|---|
| Return type: | flask.Response |
Return the resources in collection, possibly filtered by a series of values to use in a ‘where’ clause search.
| Parameters: |
|
|---|---|
| Return type: | class:sandman.model.Model |


Color Palette
Below are all of the pre-packaged and configuarable colors that come with Frontend. To change or add additional colors, edit/add variables in the src/scss/application/global/_variables.scss
(for more information, see _variables.scss).
Headline 1
Jack Tar holystone grog blossom spike blow the man down capstan hardtack reef heave to quarterdeck. Port grog blossom pink topsail Jack Tar mizzenmast gangplank aft long clothes gunwalls. Carouser port long clothes swab dance the hempen jig broadside pirate swing the lead Nelsons folly black jack.
- Unordered list element 1
- Unordered list element 2
- Unordered list element 3
Headline 2
Jack Tar holystone grog blossom spike blow the man down capstan hardtack reef heave to quarterdeck. Port grog blossom pink topsail Jack Tar mizzenmast gangplank aft long clothes gunwalls. Carouser port long clothes swab dance the hempen jig broadside pirate swing the lead Nelsons folly black jack.
- Ordered list element 1
- Ordered list element 2
- Ordered list element 3
Headline 3
Jack Tar holystone grog blossom spike blow the man down capstan hardtack reef heave to quarterdeck. Port grog blossom pink topsail Jack Tar mizzenmast gangplank aft long clothes gunwalls. Carouser port long clothes swab dance the hempen jig broadside pirate swing the lead Nelsons folly black jack.
"Yawl gaff lad keel yardarm topgallant Shiver me timbers heave down Pieces of Eight Buccaneer. Heave down gabion bilge water code of conduct swing the lead sheet Letter of Marque nipper ahoy plunder.
Headline 4
Jack Tar holystone grog blossom spike blow the man down capstan hardtack reef heave to quarterdeck. Port grog blossom pink topsail Jack Tar mizzenmast gangplank aft long clothes gunwalls. Carouser port long clothes swab dance the hempen jig broadside pirate swing the lead Nelsons folly black jack.
| Table Header 1 | Table Header 2 | Table Header 3 |
|---|---|---|
| 1 | 2 | 3 |
| 1 | 2 | 3 |
| 1 | 2 | 3 |
| 1 | 2 | 3 |
| 1 | 2 | 3 |
Headline 5
Jack Tar holystone grog blossom
spike blow the man down capstan hardtack reef heave to quarterdeck. Port grog blossom pink topsail Jack Tar mizzenmast gangplank aft long clothes gunwalls. Carouser port long clothes swab dance the hempen jig broadside pirate swing the lead Nelsons folly black jack.
Headline 6
Jack Tar holystone grog blossom spike blow the man down capstan hardtack reef heave to quarterdeck. Port grog blossom pink topsail Jack Tar mizzenmast gangplank aft long clothes gunwalls. Carouser port long clothes swab dance the hempen jig broadside pirate swing the lead Nelsons folly black jack.


+
Midsommar
6
Really Long Title Wow
8
A Silent Voice
7
refresh
Sort By
Rating
Date Added
Import List
Export List
Github Page


I was born in Weihai, a small city on the east coast of Shandong Province, China. I earned my Bachelor's degree in Geographic Information Systems (GIS) from the School of Information Engineering at China University of Geosciences (Beijing). My undergraduate studies mainly focused on software engineering, and I was trained as a full-stack software engineer. I hold a Master's degree in Cartography and Geographic Information Systems from Peking University. My Master's studies focused on several advanced topics in GIS: global georeferencing systems, location-based services, GIS engineering, and Web GIS. I got my Ph.D. degree in Geography (Geographic Information Science & Cartography) from the University of Utah in 2016. My doctoral training concentrated on spatial modeling/simulation, big data, and mobile computing. I did my postdoc in the Center for Systems Integration and Sustainability at Michigan State University, and my postdoctoral training focused on telecoupling and global sustainability.
I am working as an Assistant Professor of GIS in the Department of Geography & Geospatial Sciences at South Dakota State University. I am teaching introductory and upper-level GIS courses. As a certified GIS Professional (GISP), I am dedicated to educating the next generation of GIS professionals and helping them succeed in their career.
I have a long-running research interest in better using geospatial technologies to save life and property in disasters. My current research primarily focuses on wildfire evacuation modeling and simulation in the American West. I will continue this line of research in the next few years to build better wildfire evacuation systems in the U.S. Meanwhile, I also start to work on other topics in hazards, public health, transportation, sustainability, and agriculture.
2016
Ph.D. in Geography (Concentration: GIS, Big Data, & Mobile Computing)
Department of Geography, Univesity of Utah, USA
Dissertation: Modeling wildfire evacuation as a coupled human-environmental system using triggers
Advisors: Dr. Thomas J. Cova & Dr. Philip E. Dennison
2011
M.S. in Cartograhy and Geographic Information Systems (Concentration: Geoinformatics)
Institute of Remote Sensing & GIS, Peking University, China
2008
B.S. in Geographic Information Systems (Concentration: Software Engineering)
School of Information Engineering, China University of Geosciences (Beijing), China
2017 - present
Assistant Professor of GIS
Department of Geography & Geospatial Sciences, South Dakota State University, USA
2016 - 2017
Research Associate (Supervisor: Dr. Jianguo (Jack) Liu)
Center for Systems Integration and Sustainability, Michigan State University, USA
Project: Food security and land use: the telecoupling challenge (the Belmont Forum)
2015 - 2016
Research Assistant (Supervisor: Dr. Quynh Nguyen)
Department of Health Promotion and Education, University of Utah, USA
Project: HashtagHealth: A social media big data resource for neighborhood effects research (NIH)
Project website: https://hashtaghealth.github.io
2014 - 2015
Research Assistant (Supervisor: Dr. Neng Wan)
Utah Geo-Health Lab, Department of Geography, University of Utah, USA
Project: Understanding life-space characteristics based on cell-phone collected data (NIH)
2011 - 2014
Research Assistant (Supervisors: Dr. Thomas J. Cova and Dr. Philip E. Dennison)
Center for Natural and Technological Hazards (CNTH), University of Utah, USA
Project: Protective action triggers (NSF)
2008 - 2011
Research Assistant (Supervisor: Dr. Chengqi Cheng)
Institute of Remote Sensing and GIS, Peking University, P.R. China
Project: Global spatial information organization and its relevant applications
Methods:
GIS, Systems Modeling & Integration, Spatial Analysis, Big Data Analytics, Open Science
Foci:
Hazards, Public Health, Transportation, Sustainability, Agriculture
(Student Advisees Underlined)
2022
Li, Y., Li, D., & King, C. (2022). “Food Insufficiency among Job-Loss Households during the Pandemic: The Role of Food Assistance Programs”. Sustainability, 14(22), 15433. doi:10.3390/su142215433 [pdf]
2022
Li, D.* (2022). “A data-driven approach to improving evacuation time estimates during wildfires for communities with part-time residents in the wildland-urban interface”. International Journal of Disaster Risk Reduction, 82, 103363. doi:10.1016/j.ijdrr.2022.103363 [pdf][Video]
2022
Jiang, Y., Han, S., Li, D., Bai, Y., & Wang, M. “Automatic Sidewalk Trip Hazard Detection and Mapping Using Mobile Devices and Deep Learning”. Expert Systems with Applications, 227, 117980. doi:10.1016/j.eswa.2022.117980 [pdf]
2022
Jiang, Y., Huang, Y., Liu, J., Li, D., Li, S., Nie, W., & Chung I. “Automatic Measurement and Mapping of Construction and Demolition Debris Using Drones, Deep Learning, and GIS”. Drones, 6(10), 279. doi:10.3390/drones6100279 [pdf]
2022
Yue, X., Antonietti, A., Alirezaei, M., Tasdizen, T., Li, D., Nguyen, L., Mane, H., Sun, A., Hu, M., Whitaker, R., & Nguyen, Q. “Using Convolutional Neural Networks to derive neighborhood built environments from Google Street View images and examine their associations with health outcomes”. International Journal of Environmental Research and Public Health, 19(19), 12095. doi:10.3390/ijerph191912095 [pdf]
2022
Ketchpaw, A.R., Li, D.*, Khan, S.N., Jiang, Y., Li, Y, & Zhang, L. “Using structure location data to map the wildland-urban interface in Montana, USA”. Fire, 5(5), 129.. doi:10.3390/fire5050129 [pdf]
2022
Khan, S.N., Li, D.*, & Maimaitijiang, M. “A Geographically Weighted Random Forest Approach to Predict Corn Yield in the US Corn Belt”. Remote Sensing, 14(12), 2843. doi:10.3390/rs14122843 [pdf]
2022
Nguyen, Q., Belnap, T., Dwivedi, P., Nazem, A., Kumar, A., Li, D., Whitaker, R., Tasdizen, T., & Brunisholz, K. “Google Street View images as predictors of patient health out-comes, 2017-2019”. Big Data and Cognitive Computing. doi:10.3390/bdcc6010015 [pdf]
2021
Wang, T., Jin, H., Fan, Y., Obembe, O., and Li, D. “Farmers’ adoption and perceived benefits of diversified crop rotations in the margins of Corn Belt”. Journal of Environmental Management, 293, 112903. doi:10.1016/j.jenvman.2021.112903 [pdf]
2021
Li, Y., Wang, S., Cao, G., Li, D., & Ng, B.P. “Disentangling Racial/Ethnic and Income Disparities of Food Retail Environments: Impacts on Adult Obesity Prevalence”. Applied Geography. doi:10.1016/j.apgeog.2021.102607 [pdf]
2021
Cova, T.J., Li, D., Siebeneck, L.K., & Drews, F. “Towards simulating dire wildfire scenarios”. Natural Hazards Review, 22(3). doi:10.1061/(ASCE)NH.1527-6996.0000474 [pdf]
2020
Li, D.*, Li, Y., Nguyen, Q.C., & Siebeneck, L.K. “A study on the GIS Professional (GISP) certification program in the U.S.”. ISPRS International Journal of Geo-Information, 9(9), 523. doi:10.3390/ijgi9090523 [pdf]
2019
Li, D.*, Cova, T.J., Dennison, P.E., Wan, N., Nguyen, Q.C., & Siebeneck, L.K. “Why do we need a national address point database to improve wildfire public safety in the U.S.?”. International Journal of Disaster Risk Reduction, 39, 101237. doi:10.1016/j.ijdrr.2019.101237 [pdf]
2019
Li, D., Cova, T.J., & Dennison, P.E. "Setting Wildfire Evacuation Triggers by Coupling Fire and Traffic Simulation Models: A Spatiotemporal GIS Approach". Fire Technology, 55, 617–642. doi:10.1007/s10694-018-0771-6 [pdf]
2019
Xu, Z., Chau, S., Ruzzenenti, F., Connor, T., Li, Y., Tang, Y., Li, D., Gong, M., & Liu, J. "Evolution of multiple global virtual material flows". Science of The Total Environment, 658, 659-668. doi:10.1016/j.scitotenv.2018.12.169 [pdf]
2017
Meng, H.-W., Kath, S., Li, D., & Nguyen, Q. C. "National substance use patterns on Twitter". PLOS ONE, 12(11), e0187691. doi:10.1371/journal.pone.0187691 [pdf]
2017
Nguyen, Q., McCullough, M., Meng, H., Debjyoti, P., Li, D., et al. "Geotagged U.S. Tweets (2015-2016) as Predictors of County-Level Health Outcomes". American Journal of Public Health doi: 10.2105/AJPH.2017.303993 [pdf].
2017
Li, D., Cova, T.J., & Dennison, P.E. “Using reverse geocoding to identify prominent wildfire evacuation trigger points”. Applied Geography, 87, 14-27.doi: 10.1016/j.apgeog.2017.05.008 [pdf]
2017
Xu, Z., Tang, Y., Connor, T., Li, D., Li., Y., & Liu, J. "Climate variability and trends at a national scale". Scientific Reports. doi:10.1038/s41598-017-03297-5 [pdf]
2017
Nguyen, Q., Meng, H., Li, D.,Kath, S., et al. "Social media indicators of the food environment and state health outcomes". Public Health, 148, 120-128. doi:10.1016/j.puhe.2017.03.013 [pdf]
2017
Cova, T.J., Dennison, P.E., Li, D., Siebeneck, L.K., Drews, F.A., & Lindell, M.K. "Warning triggers in environmental hazards: who should be warned to do what and when?" Risk Analysis, 37(4), 601-611. doi:10.1111/risa.12651 [pdf]
2016
Nguyen, Q., Li, D., Meng, H., Kath, S., Nsoesie, E., Wen, M., & Li, F. "Building a national neighborhood dataset from geotagged Twitter data for indicators of happiness, diet, and physical activity". JMIR Public Health & Surveillance. doi:10.2196/publichealth.5869 [pdf]
2016
Nguyen, Q., Kath, S., Meng, H., Li, D., Smith, K., VanDerslice, J.A., Wen, M., & Li, F. "Leveraging geotagged Twitter data to examine neighborhood happiness, diet, and physical activity". Applied Geography, 73, 77-88. doi:10.1016/j.apgeog.2016.06.003 [pdf]
2015
Li, D., Cova, T.J., & Dennison, P.E. “A household-level approach to staging wildfire evacuation warnings using trigger modeling”. Computers, Environment, and Urban Systems, 54, 56–67. doi:10.1016/j.compenvurbsys.2015.05.008 [pdf]
2013
Guo, X., Cheng, C., Tan, Y., & Li, D. “Study on Unified Encoding Method for Topographic Map Based on Subdivision Framework”. Periodical of Ocean University of China, 44(3). (in Chinese)
2010
Geng, X., Cheng, C., Song, S., & Li, D. “Global Subdivision Systems Based on Map Kilo-Grids”. Geography and Geo-Information Science, 2(3). (in Chinese)
2018
Li, D. “Geocoding and reverse geocoding". In Cova, T.J. & Tsou, M. (Eds.), Comprehensive Geographic Information Systems. Vol. 1, Elsevier. doi: 10.1016/B978-0-12-409548-9.09593-2 [pdf]
2015
Li, D., Cova, T.J., & Dennison, P.E. “An open-source software system for setting wildfire evacuation triggers”. 1st ACM SIGSPATIAL International Workshop on the Use of GIS in Emergency Management. doi: 10.1145/2835596.2835600 [pdf]
2010
Li, D. & Cheng, C. "A proposed architecture for emergency response systems based on Digital Earth". Proc. SPIE 7840, the Sixth International Symposium on Digital Earth: Models, Algorithms, and Virtual Reality.
2015
Li, D., Cova, T.J., & Dennison, P.E. “Establishing wildfire evacuation zones—a coupled human-environmental system approach”. Proceedings of the 13th International Wildland Fire Safety Summit & 4th Human Dimensions of Wildland Fire Conference. (Extended abstract)
2019
Li, D. “Transportation infrastructure in disaster resilience assessment”. GIS Professional, 291, 12-14. [pdf]
2010
Qi, Y., Li, D., Fang, W., et al. “Using Build Forge to Install Tivoli Provisioning Manager”. IBM SSPD database, Document ID: TD105637.
2019
“ In the Age of Fast-Moving Fires, What's the Best Way to Get People Out?”. KQED Science (Living With Wildfire: California Reimagined Series), June 3. (Reporter: Jeremy Siegel).
2020-
Instructor
GEOG 790 Seminar: GIS Programming (Python Programming with ArcGIS) [Syllabus]
2019-
Instructor
GEOG 786: Geographic Information Systems [Web GIS] [Python programming]
2017-
Instructor
GEOG 372: Introduction to Geographic Information Systems [Syllabus]
2017-
Instructor
GEOG 474/574 GIS: Vector and Raster Modeling [Syllabus]
2014
Instructor
GEOG 5140: Methods in GIS (an advanced GIS course)
2013
Guest Lecturer (teaching practicum)
GEOG 5180/6180: GIS & Python (ArcPy section)
2020-
GEOG 471/571: Introduction to GIS Programming (Python Programming)
2019
GEOG 790 Seminar: GIS Programming (Python Programming)
2019
GEOG 473/573: GIS Data Creation & Integration
2019
GEOG 476/576: Web GIS
2018
GEOG 786: Geographic Information Systems (Advanced Web GIS)
2018
GEOG 477/577: Spatial Databases (PostgreSQL/PostGIS)
2017
GEOG 474/574: GIS: Vector & Raster Modeling
2017
GEOG 372: Introduction to Geographic Information Systems
2014
GEOG 1180: Introduction to Geo-Programming (Python programming)
2019
Instructor. Technical Training Session: Basics of Scripting with Python. The 2019 Black Hills Digital Mapping Agency Conference, Rapid City, South Dakota, U.S.A.
2019
Instructor. Technical Training Session: Using Python in Geocoding/Reverse Geocoding. The 2019 Black Hills Digital Mapping Agency Conference, Rapid City, South Dakota, U.S.A.
2018
Instructor. Technical Training Session: Introduction to Git. The 2018 Black Hills Digital Mapping Agency Conference, Rapid City, South Dakota, U.S.A.
2022
Li, D. “A data-driven approach to improving evacuation time estimates for resort communities during wildfires”. The 2022 Black Hills Digital Mapping Agency Conference, Rapid City, SD, U.S.A. (Virtual)
2022
Li, D. “Modeling Protective Action Triggers in Wildfire Evacuation: Challenges and Opportunities”. Great Plains Rocky Mountains Association of American Geographers Annual Meeting, Denver, CO, U.S.A.
2022
Khan, S.N., Li, D., & Maimaitijiang, M. “Geographically Weighted Machine Learning to Predict Corn Yield in the U.S. Corn Belt”. Great Plains Rocky Mountains Association of American Geographers Annual Meeting, Denver, CO, U.S.A.
2022
Li, D. “A data-driven approach to improving evacuation time estimates for resort communities during wildfires”. Association of American Geographers Annual Meeting, New York, NY, U.S.A. (Virtual)
2021
Li, D. “An Introduction to Geocoding and Reverse Geocoding”. South Dakota Statewide Geospatial Conference, U.S.A. (Virtual)
2021
Li, D. “Why do We Need a National Address Point Database to Improve Wildfire Public Safety in the U.S.?”. South Dakota Statewide Geospatial Conference, U.S.A. (Virtual)
2021
Li, D. “A data-driven approach to improving wildfire evacuation time estimates in resort areas”. The 16th International Wildland Fire Safety Summit and 6th Human Dimensions conference, U.S.A. (Virtual)
2021
Li, Y., Wang, S., Cao, G., Li, D., & Ng, B.P. “Disentangling Racial/Ethnic and Income Disparities of Food Retail Environments and Obesity Prevalence”. Association of American Geographers (AAG) Annual Meeting, Seattle, Washington, U.S.A. (Virtual)
2021
Dwomoh, K. & Li, D. “Using GIS and Big Data to Map Wildland-Urban Interface in California, USA”. Association of American Geographers (AAG) Annual Meeting, Seattle, Washington, U.S.A. (Virtual)
2021
Li, D. “Wildfire evacuation modeling in the big data era: Opportunities and challenges”. Association of American Geographers (AAG) Annual Meeting, Seattle, Washington, U.S.A. (Virtual)
2020
Li, D. “Using Computer Models, Big Data, and GIS to Improve Community Wildfire Evacuation Planning”. AutoCarto 2020, U.S.A. (Virtual)
2020
Li, D., Li, Y., Nguyen, Q.C., & Siebeneck, L.K. “Mapping the Certified GIS Professionals in the U.S.”. Applied Geography Conference, U.S.A. (Virtual)
2020
Li, D. “Mapping the Certified GIS Professionals (GISPs) in the U.S.”. GIS in the Rockies, Denver, Colorado, U.S.A. (Virtual)
2019
Li, D. “An introduction to the GIS Professional (GISP) certification program”. The 2019 Black Hills Digital Mapping Agency Conference, Rapid City, South Dakota, U.S.A.
2019
Li, D. “A study on the GISP Certification program in the U.S.”. The Annual Meeting of the Great Plains-Rocky Mountain Division of the Association of American Geographers, Lawrence, Kansas, U.S.A.
2019
Li, D. “An introduction to ArcGIS Collector”. South Dakota Statewide Geospatial Conference, Mitchell, South Dakota, U.S.A.
2019
Li, D. “An introduction to online geocoding and reverse geocoding services”. South Dakota Statewide Geospatial Conference, Mitchell, South Dakota, U.S.A.
2019
Li, D. “A preliminary study on the GISP program in the U.S.”. South Dakota Statewide Geospatial Conference, Mitchell, South Dakota, U.S.A.
2019
Li, D., Cova, T.J., & Dennison, P.E. “Coupling fire and traffic simulation models to set wildfire evacuation triggers”. Association of American Geographers (AAG) Annual Meeting, Washington DC, U.S.A.
2019
Wan, N., Li, D., Cho, L., & Wetter, D. “Applying mobile technologies in public health research: challenges and opportunities for geographers”. Association of American Geographers (AAG) Annual Meeting, Washington DC, U.S.A.
2018
Li, D. “Using online reverse geocoding services to set wildfire evacuation triggers”. The 2018 Black Hills Digital Mapping Agency Conference, Rapid City, South Dakota, U.S.A
2018
Li, D. “A preliminary examination of wildfire evacuation zoning: Evidence from the Vineyard Fire and the Carr Fire”. The 2018 Annual Meeting of the Great Plains-Rocky Mountain Division of the Association of American Geographers, Manhattan, Kansas, U.S.A.
2018
Li, D., Cova, T.J., & Dennison, P.E. “Coupling fire and traffic simulation models to set wildfire evacuation triggers”. The 4th Fire and Evacuation Modeling Technical Conference, Gaithersburg, Maryland, U.S.A. [Video]
2018
Li, D. “Modeling wildfire evacuation triggers using open GIS”. Association of American Geographers (AAG) Annual Meeting, New Orleans, Louisiana, U.S.A.
2017
Li, D., Cova, T.J., & Dennison, P.E. “Identifying prominent wildfire evacuation trigger points with reverse geocoding”. Great Plains/Rocky Mountains Division of the American Association of Geographers Annual Meeting, Grand Forks, North Dakota, U.S.A.
2017
Li, D. “An open source tool for tracing international food trade flows under the telecoupling framework”. Association of American Geographers (AAG) Annual Meeting, Boston, Massachusetts, U.S.A.
2016
Li, D., Cova, T.J., & Dennison, P.E. “Setting wildfire evacuation triggers by coupling fire and traffic simulation models”. The 5th International Fire Behavior and Fuels Conference, Portland, Oregon, U.S.A
2016
Li, D., Cova, T.J., & Dennison, P.E. “Setting wildfire evacuation triggers by coupling fire and traffic simulation models: a spatiotemporal GIS approach". Association of American Geographers (AAG) Annual Meeting, San Francisco, California, U.S.A.
2016
Cova, T.J., Li, D., & Dennison, P.E. “Spatio-temporal representation issues in modeling evacuation warning triggers”. Association of American Geographers (AAG) Annual Meeting, San Francisco, California, U.S.A.
2015
Li, D., Cova, T.J., & Dennison, P.E. “Promote Open Science in Wildfire Evacuation Modeling: An Open-Source Software System for Setting Wildfire Evacuation Triggers”. The 26th Quarterly Salt Lake GIS Users Group (SLUG) Meeting, Salt Lake City, Utah, U.S.A.
2015
Li, D., Cova, T.J., & Dennison, P.E. “An open-source software system for setting wildfire evacuation triggers”. The 1st ACM SIGSPATIAL International Workshop on the Use of GIS in Emergency Management (EM-GIS), Seattle, Washington, U.S.A.
2015
Li, D., Cova, T.J., & Dennison, P.E. “Integrating fire-spread and household-level trigger modeling to stage wildfire evacuation warnings”. Geocomputation 2015, Dallas, Texas, U.S.A.
2015
Li, D., Cova, T.J., & Dennison, P.E. “Setting wildfire evacuation triggers by coupling traffic simulation, trigger modeling, and reverse geocoding”. Association of American Geographers (AAG) annual meeting, Chicago, Illinois, U.S.A.
2015
Li, D., Cova, T.J., & Dennison, P.E. “Establishing wildfire evacuation zones—a coupled human-environment system approach”. Managing Fire, Understanding Ourselves: Human Dimensions in Safety and Wildland Fire, Boise, Idaho, U.S.A.
2014
Li, D., Cova, T.J., & Dennison, P.E. “Household-level wildfire evacuation trigger modeling”. AutoCarto 2014, Pittsburgh, Pennsylvania, U.S.A.
2014
Li, D., Cova, T.J., & Dennison, P.E. “A framework for improving the use of online reverse geocoding services”. Association of American Geographers (AAG) annual meeting, Tampa, Florida, U.S.A.
2013
Li, D. & Cova, T.J. “Using geotagged tweets to explore geographic disparities of Twitter users: a case study of New Jersey state, U.S.”. CaGIS/ASPRS 2013 Specialty Conference—Imaging and Mapping for Disaster Management: From the Individual to the Global Community, San Antonio, Texas, U.S.A.
2014
Li, D., Cova, T.J., & Dennison, P.E. “Household-level wildfire evacuation trigger modeling”. Maps on the Hill, Salt Lake City, Utah, U.S.A.
2013
Li, D. “Social media in natural disasters: mapping tweet density in Hurricane Sandy”. Maps on the Hill, Salt Lake City, Utah, U.S.A.
2009
Li, D. & Cheng, C. "A proposed architecture for emergency response systems based on Digital Earth". The Sixth International Symposium on Digital Earth, Beijing, China.
2016
Finalist for the Student Honors Paper Competition, Geographic Information Science and Systems Specialty Group, Association of American Geographers
2015
Jeanne X. Kasperson Student Paper Award, Hazards, Risks, and Disasters Specialty Group, Association of American Geographers
2016
Student Travel Award, the Associated Student of University of Utah (ASUU)
2015
Travel Award for Transportation and Communities Summit 2015, Point B: University of Utah Transportation Student Group
2015
NSF Travel Award for San Diego Supercomputer Center (SDSC)'s Summer Institute 2015
2015
NSF Travel Award for the 13th International Conference of GeoComputation
2015
Student Travel Award, the Associated Student of University of Utah (ASUU)
2014
Graduate Student Travel Award, the Graduate School of University of Utah
2013
Graduate Student Travel Award, the Graduate School of University of Utah
2010
Second-class Scholarship for Graduate Student, Peking University
2009
Second-class Scholarship for Graduate Student, Peking University
2008
First-class Scholarship for Graduate Student, Peking University
2007
Sino Petroleum & Chemical Scholarship, China University of Geosciences (Beijing)
2006
First-class Professional Scholarship, China University of Geosciences (Beijing)
2005
First-class Professional Scholarship, China University of Geosciences (Beijing)
2005
Second-class National Scholarship, China University of Geosciences (Beijing)
2006
Study Model of China University of Geosciences (Beijing)
2005
Third Prize in Mathematics Competition, China University of Geosciences (Beijing)
2005
Second Prize in the 2005 National English Contest for College Students
Programming Languages
Python, C/C++, Java, R, Perl, Matlab, IDL
Web Development
HTML, CSS, JavaScript, Apache HTTP/Tomcat Server
Mobile Development
Android, iOS, eMbedded Visual C++
WebGIS Development
OpenLayers, Leaflet, GeoServer, PostGIS, ArcGIS Server/ArcSDE
High Performance Computing
OpenMP, MPI, GPU, SLURM Scheduler, Kepler, gprof, IPython
Linux/Unix Skills
RedHat/Ubuntu Linux, Bash, Vim, Linux/Unix system programming
IDEs
Visual Studio, Eclipse, PyCharm, Android Studio, Xcode, WebStorm
Database Skills
PostgreSQL/PostGIS, SQL Server, DB2, MySQL, MongoDB
Software Development Tools
Git, SVN, Microsoft Visio, Rational Rose, Build Forge
Software Development Kits
ArcObjects/ArcEngine, OpenGL, Qt, VTK, ILOG CPLEX, Gurobi
GIS/Remote Sensing Tools
ArcGIS/ArcPy, ENVI, ERDAS IMAGINE, QGIS, Google Earth Engine
Agent-Based Modeling Tools
NetLogo, Repast, MATSim (traffic simulation)
Open Source Geospatial Tools
GDAL/OGR, OpenTools, PROJ.4, JTS, JOSM
Fire Spread Modeling Tools
FlamMap, FarSite, FireFamilyPlus, BehavePlus, fireLib
My recent research projects focus on: 1) Using big data to improve wildfire evacuation modeling and planning; 2) The development and use of open source Web GIS in wildfire evacuation, public health, and precision agriculture applications. My detailed research interests are as follows:
GIS:
Geoinformatics, Systems Modeling, Web GIS, Mobile Computing, Open Source GIS
Hazards:
Evacuation analysis/modeling/planning, disaster informatics
Public Health:
Big Data, Health Informatics, Mobile Health
Transportation:
Traffic Simulation, Transportation Planning, Public Transit
Sustainability:
Global Sustainability, Telecoupling, Food Security, Land Use Change
Agriculture:
Precision Agriculture, Agro-Informatics
I have been doing research and development in GIS and its applications for over ten years. I enjoy working with scholars, stakeholders, and businesses and using my expertise to help them succeed. Please feel free to contact me if you need technical support in your research or project.
I am interested in working with motivated students to study GIS and its applications in hazards, public health, transportation, sustainability, and agriculture. As funded Research Assistant positions become available, I will post the information here and on other job boards (e.g., AAG website). The Department of Geography and Geospatial Sciences will have 4~6 Teaching Assistant positions available every year. The Master's and Ph.D. programs are both STEM programs (more information). In addition, we have advanced computing resources in the department (more information). I strongly encourage those who want to pursue a career in GIS to reach out to me and send me a copy of your CV and a summary of your expertise and research interests.
I enjoy involving motivated undergraduate students in my research. I encourage those who want to develop strong GIS skills (especially those who want to be GIS developers) to contact me. I will figure out how to fit you into my research projects and help you develop a career plan.
Name:
Dapeng Li
Email:
dapeng.li[at]sdstate[dot]edu
Telephone:
+1-605-688-4620
Mailing Address:
Department of Geography and Geospatial Sciences, South Dakota State University
109 Wecota Hall, Box 506, Brookings, SD 57007, USA
Website:


This is an Appcelerator Titanium module for iOS that wraps the Lookback iOS SDK.
To access this module from JavaScript, you need to first set your app token in a string property and then load the module
javascript
Ti.App.Properties.setString('LookbackAppToken', 'your_app_token');
var Lookback = require("com.featherdirect.lookback");
The Lookback variable is a reference to the Module object.
Returns a boolean letting you know if Loopback is enabled (read only)
javascript
Lookback.enabled
Returns a boolean letting you know if Loopback is listening to the shake event to start recording (read only)
javascript
Loopback.shakeToRecord
Enables shakeToRecord and returns a boolean telling you the value of the shakeToRecord property
javascript
Lookback.enableShakeToRecord();
Disables shakeToRecord and returns a boolean telling you the value of the shakeToRecord property
javascript
Lookback.disableShakeToRecord();
Method takes a string used to set the userIdentifier so a session can be matched to a specific user
javascript
Lookback.setUserIdentifier('Joe');
There is none. Freely given, freely received, user beware.
There is none. If you lose your job, your health, end up living in a van down by the river, I am not responsible. User beware.
Stephen Feather @stephenfeather
Copyright 2014 Feather Direct, LLC
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


NICO AND DANI (Krampack) ------------------------
Sixteen year old Dani's (Fernando Ramallo) riding high. He lives in an arresting modern home with a pool on a cliff overlooking the ocean. It's the onset of summer vacation, his trusting parents are leaving him to take a trip to Egypt and his best friend is coming out from the city to join him in the Cannes 2000 Critics Week award winner, "Nico and Dani (Krampack)."
Adapted from Jordi Sanchez's play by director Cesc Gay and Tomas Aragay, the Spanish "Nico and Dani" is an honest, warm and funny coming of age tale in which two best friends come to a crossroads together only to take different paths.
Dark and scrawny Nico (Jordi Vilches) begins strutting his macho stuff, from dreams of becoming a motorcycle racing mechanic to boasting about the size of his Adam's apple. Nico and Dani share nightly masturbation rituals (the titular Krampack), where Nico teaches Dani that numbing one's hand first by sitting on it allows one to believe the hand belongs to another. What Dani shares with Nico is of a far more personal nature and Nico goes along under cloud of sexual experimentation.
When the duo meet the brazen Elena (Marieta Orozco) and shy, virginal Berta (Esther Nubiola), Nico sets to pairing the foursome off and making dates while Dani gets increasingly annoyed that the two don't spend more time alone together.
"Nico and Dani" is refreshing after the lowbrow sniggering found in American teen sex comedies. These kids act like real teenagers - young enough to still romp and play, old enough to want to appear sophisticated and sexually desirable (amusingly enough, not too far afield from how the film's adults are portrayed).
Blond, blue-eyed Fernando Ramallo plays Dani with an air of seriousness, appropriate considering his character is facing a more difficult lifestyle choice than his buddy. Newcomer Jordi Vilches (a circus performer!) is hilarious as the confidently goofy Nico. He walks a line between oblivousness and acceptance. The film is given a bright, sunny look by cinematographer Andreu Rebes and a lively, unusual score by Riqui Sabates.
"Nico and Dani" succeeds in portraying a difficult and confusing time in human development with humor, compassion and truth.
B
For more Reeling reviews visit www.reelingreviews.com
<EMAIL_ADDRESS><EMAIL_ADDRESS>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


Spoken English for Engineers and Scientists
Software v. 1.0 for Windows (Two DVD ROMs). A 60- hour computer-sided self-study course.
Contributers
Prof.P.Nanda, N.Ghosh, R.Virdee, M.Sinha, and Dr.W.Locke
System Requirements:
A PC/LAptop with Windows (XP/7/8/10), DVD drive, Speakers or Headphones.


Created by Mishka, Vibrynt X, and U for the 1998 Freedom Rally in Boston.
http://www.hyperreal.org/drugs/ http://www.lycaeum.org/ http://www.erowid.org/ http://www.ecstasy.org/
"Get up, stand up, stand up for your right." - Bob Marley
"Get up, stand up, stand up for your right."
- Bob Marley


There was a heroic bus driver, and his name was Kim Fat Goo. He drove his bus through puddles. He drove it straight and true, though he swerved if he saw a duck or a pig or an infant human tiny or a succubus or an incubus as he steered towards the briny. He drove his bus across Pointy Town, heading for the sea. At the beach he stopped to let passengers off and he drank a flask of tea. Oh, Kim Fat Goo he drained his flask and he tipped the dregs in the sand, and he idled awhile on the promenade and he watched a spaceship land. Out poured a gaggle of alien beings with flippers and antennae and claws and flagrant disregard for the rubric of Pointy Town laws.
“We are an invasion force from the Planet of Contaminated Wheat. We are starveling spacemen and we need something to eat.”
“I will drive you to the pie shop,” said fearless Kim Fat Goo, “Get on the bus and sit quietly till we reach the pie shop queue.”
But he drove his bus up into the hills to a hermit's abandoned hut, and he lured the invading spacemen in and sealed the doorway shut. So Kim Fat Goo the bus driver was the saviour of Pointy Town, and that is why his name rings out with imperishable renown.


Toys (1992) 118m.
I doubt many people were prepared for this whimsical project from Barry Levinson, especially considering the solid base of reality that his previous works had been grounded in. Apart from occasionally flirting with the fantastic (allegory in THE NATURAL, hallucinations in YOUNG SHERLOCK HOLMES) Levinson had not been pegged as a fantasy director by the Hollywood establishment, so it's interesting to discover that TOYS was intended as his directorial debut (he made DINER instead). It's just as well he postponed it for ten years - given its ambitious nature and lavish production I don't see how he could have made it back then.
Film is set in a toy factory (which looks like a kind of kiddie METROPOLIS) inherited by a cashiered General (Michael Gambon) who is less than happy about losing his career in the army for a future in a toyshop, especially one run by his frivolous nephew (Robin Williams, in another of his kid-who-never-grew-up roles). The world of TOYS is too innocent by half, which is why it comes as no surprise to us when the General decides to exploit the factory's production concepts for his own ends. Story is inventive and otherwordly, but even after ten years of thought it doesn't appear that Levinson has gotten it quite right - I think the ending, while logical in light of where the film is heading, is unsatisfying, for one thing. But as TOYS is set in a world where nothing is what it appears, any intangibility on Levinson's part can only seem fitting. It's as if he remembered a dream and tried to visualize it for others to see. I also like the tone that he maintains throughout much of its length - it would have been too obvious to go the way of black comedy. TOYS definitely isn't dark: its bright primary colors are mixed with pastels; everything we see is supergeometric, shiny, and spotless. Even the newly-enthused General gets into his role as factory owner by switching the design of his camouflage outfit over to cheerful colors.
The main reason to see TOYS is its look. Its crystal-clear photography and innovative sets deserve to be seen in a cinema -that much was apparent to me when viewing it a second time on television and seeing how lacking in atmosphere the opening sequence looked in comparison. Surreal visual sense (inspired by Magritte), magical setting (the only scenes outdoors take place in a ubiquitous green field), and naive, offbeat plot make for a perfect bedtime story. Simple message - 'War is bad' - will not be lost on children. That we think the meetings of the toy executives trivial and absurd is ironic considering we think nothing of the more familiar (but equally absurd) domain of the strategic military conferences in the film. Williams combines both levels of play (toys and soldiers) in his climatic address to the factory toys, throwing in every jingoistic cliche in the books, combining Gandhi, Kennedy, Martin Luther King, Henry V, Lord Kitchener. Rapper LL Cool J acquits himself well as the General's son. Joan Cusak gives a standout performance as Williams' quirky sister, who sums up attitude of film in her line "the best part is no-one got hurt".
TOYS is like a big toy itself, a grab-bag of novelties and visual gags - there's a great bit where the General, under X-ray surveillance, is spouting about war as if he is Death personified. Sci-fi fans will pick up the line poached from THE DAY THE EARTH STOOD STILL as the last war toy fires its final shot (I don't know how many people share this view, but contrary to film's message, I find the military toys more interesting than the boring clockwork toys that seem to be the factory's main product line). Film's memorable trailer featured Williams improvising in an open field, setting audiences up for an out-and-out comedy that they didn't get. This goes some way to explaining its lukewarm reaction at the box office.
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


$routeParams
ngRoute
The $routeParams
service allows you to retrieve the current set of route parameters.
Requires the ngRoute
module to be installed.
The route parameters are a combination of
's
$location
and search()
.
The path()
path
parameters are extracted when the $route
path is matched.
In case of parameter name collision, path
params take precedence over search
params.
The service guarantees that the identity of the $routeParams
object will remain unchanged
(but its properties will likely change) even when a route change occurs.
Note that the $routeParams
are only updated after a route change completes successfully.
This means that you cannot rely on $routeParams
being correct in route resolve functions.
Instead you can use $route.current.params
to access the new route's parameters.
// Given: // URL: http://server.com/index.html#/Chapter/1/Section/2?search=moby // Route: /Chapter/:chapterId/Section/:sectionId // // Then $routeParams ==> {chapterId:1, sectionId:2, search:'moby'}


Studio is a model management framework written in Python to help simplify and expedite your model building experience. It was developed to minimize the overhead involved with scheduling, running, monitoring and managing artifacts of your machine learning experiments. No one wants to spend their time configuring different machines, setting up dependencies, or playing archeologist to track down previous model artifacts. Most of the features are compatible with any Python machine learning framework (Keras, TensorFlow, scikit-learn, etc); some extra features are available for Keras and TensorFlow.
Pip install Studio from master PyPi repository:
For authentication, you must set up an email/password authentication or a Google account. See the docs for more details. For now, get started as a guest by uncommenting "guest:true" in ~/.studio/config.yaml. At this point, you can run a machine learning experiment using Studio. In the example/keras folder, you can find basic examples of experiments to run. Let's try training a Keras model for mnist:
Now you can visualize your experiment by navigating to the web interface. Open the web visualizer:
You can see the results of your job at http://<IP_ADDRESS>:5000. Here you can examine or delete any current or past experiments. Run studio {ui|run} --help for a full list of ui / runner options
Click on your experiment to view experiment artifacts such as the output and workspace, experiment information such as the status and creation time, and the tail of the experiment log.
2017-12-21: Blog post comparing SageMaker and Studio.ML
2017-10-26: Studio.ML Webinar
2017-10-12: Jupyter notebook compatibility
2017-08-28: Meetup at Sentient
2017-08-23: Automatic documentation building with readthedocs.org
2017-08-17: New hosted UI site
2017-08-12: Welcome to open source!
If you have any questions, bug reports or feature requests, please don't hesitate to post on our Github Issues page.