Nick's Game Dev(c)2017
Github Website (https://goldensilver853.github.io/pgb-cloud9/)
Github Repository (https://github.com/goldensilver853/pgb-cloud9)
Cloud9 Website (http://c9-has-2017-minceraft4456.c9users.io/)
Cloud9 Workspace (https://ide.c9.io/minceraft4456/c9-has-2017)
Term 3
- T3A01-Web
- T3A02-Advanced Web
- T3A03-Javascript
- T3A04-loops
- T3A05-if-loops
- T3A06-Easy
- T3A07-Move
- T3A08-javascript-research
- T3A09-Array
- T3A10-Functions
- T3A11-Objects
Unfinished Business
Click to view
- x01-web-basics
- x01-tables-lists
- x01-forms
- x02-plugin-accelerometer Only For Mobile Devices.
Move this marker when you get the following links working
- x03-javascript-2D-array.html Not Yet Working
- x03-javascript-arrays.html Not Yet Working
- x03-javascript-errors.html Not Yet Working
- x03-javascript-choose-adventure.html Not Yet Working
- x03-javascript-events.html Not Yet Working
- x03-javascript-flip.html Not Yet Working
- x03-javascript-for-if-else.html Not Yet Working
- x03-javascript-functions.html Not Yet Working
- x03-javascript-hack-browser.html Not Yet Working
- x03-javascript-localstorage.html Not Yet Working
- x03-javascript-objects.html Not Yet Working
- x03-javascript-random.html Not Yet Working
- x03-javascript-spy.html Not Yet Working
- x03-javascript-strings.html Not Yet Working
- x04-css.html Not Yet Working
- x10-plugin-basics.html Only For Mobile Devices. Not Yet Working
- x20-animations-css.html Not Yet Working
- x20-advancedCSS.html Not Yet Working
- x22-animations-SVG.html Not Yet Working
- x25-animations-game.html Not Yet Working
- x30-3D-images.html Not Yet Working
- x31-3D-images-advanced.html Not Yet Working
- x50-ajax-server-php.html Not Yet Working
- x51-robotics-spark-core-photon.html Not Yet Working
- x61-plugins-advanced-file.html Only For Mobile Devices. Not Yet Working
- x61-plugins-advanced-file-NoJQuery.html Only For Mobile Devices. Not Yet Working
- x62-plugins-advanced-camera.html Only For Mobile Devices. Not Yet Working
- x63-plugins-advanced-accel.html Only For Mobile Devices. Not Yet Working
- x64-plugins-advanced-sound.html Only For Mobile Devices. Not Yet Working
- x64-plugins-advanced-sound-poly.html Only For Mobile Devices. Not Yet Working
- x65-plugins-advanced-splashscreen.html Only For Mobile Devices. Not Yet Working
- x66-plugins-advanced-geolocation.html Only For Mobile Devices. Not Yet Working
- x67-plugins-advanced-inappbrowser.html Only For Mobile Devices. Not Yet Working
- x70-phonegap-build.html Not Yet Working
- x80-phonegap-client.html Not Yet Working
- x90-publishing.html Not Yet Working
- Not Yet Working
- T3A01-Web
- T3A02-Advanced Web
- T3A03-Javascript
- T3A04-loops
- T3A05-if-loops
- T3A06-Easy
- T3A07-Move
- T3A08-javascript-research
- T3A09-Array
- T3A10-Functions
- T3A11-Objects
Unfinished Business
Click to view
- x01-web-basics
- x01-tables-lists
- x01-forms
- x02-plugin-accelerometer Only For Mobile Devices.
Move this marker when you get the following links working
- x03-javascript-2D-array.html Not Yet Working
- x03-javascript-arrays.html Not Yet Working
- x03-javascript-errors.html Not Yet Working
- x03-javascript-choose-adventure.html Not Yet Working
- x03-javascript-events.html Not Yet Working
- x03-javascript-flip.html Not Yet Working
- x03-javascript-for-if-else.html Not Yet Working
- x03-javascript-functions.html Not Yet Working
- x03-javascript-hack-browser.html Not Yet Working
- x03-javascript-localstorage.html Not Yet Working
- x03-javascript-objects.html Not Yet Working
- x03-javascript-random.html Not Yet Working
- x03-javascript-spy.html Not Yet Working
- x03-javascript-strings.html Not Yet Working
- x04-css.html Not Yet Working
- x10-plugin-basics.html Only For Mobile Devices. Not Yet Working
- x20-animations-css.html Not Yet Working
- x20-advancedCSS.html Not Yet Working
- x22-animations-SVG.html Not Yet Working
- x25-animations-game.html Not Yet Working
- x30-3D-images.html Not Yet Working
- x31-3D-images-advanced.html Not Yet Working
- x50-ajax-server-php.html Not Yet Working
- x51-robotics-spark-core-photon.html Not Yet Working
- x61-plugins-advanced-file.html Only For Mobile Devices. Not Yet Working
- x61-plugins-advanced-file-NoJQuery.html Only For Mobile Devices. Not Yet Working
- x62-plugins-advanced-camera.html Only For Mobile Devices. Not Yet Working
- x63-plugins-advanced-accel.html Only For Mobile Devices. Not Yet Working
- x64-plugins-advanced-sound.html Only For Mobile Devices. Not Yet Working
- x64-plugins-advanced-sound-poly.html Only For Mobile Devices. Not Yet Working
- x65-plugins-advanced-splashscreen.html Only For Mobile Devices. Not Yet Working
- x66-plugins-advanced-geolocation.html Only For Mobile Devices. Not Yet Working
- x67-plugins-advanced-inappbrowser.html Only For Mobile Devices. Not Yet Working
- x70-phonegap-build.html Not Yet Working
- x80-phonegap-client.html Not Yet Working
- x90-publishing.html Not Yet Working
- Not Yet Working
Click to view
- x01-web-basics
- x01-tables-lists
- x01-forms
- x02-plugin-accelerometer Only For Mobile Devices.
Move this marker when you get the following links working
- x03-javascript-2D-array.html Not Yet Working
- x03-javascript-arrays.html Not Yet Working
- x03-javascript-errors.html Not Yet Working
- x03-javascript-choose-adventure.html Not Yet Working
- x03-javascript-events.html Not Yet Working
- x03-javascript-flip.html Not Yet Working
- x03-javascript-for-if-else.html Not Yet Working
- x03-javascript-functions.html Not Yet Working
- x03-javascript-hack-browser.html Not Yet Working
- x03-javascript-localstorage.html Not Yet Working
- x03-javascript-objects.html Not Yet Working
- x03-javascript-random.html Not Yet Working
- x03-javascript-spy.html Not Yet Working
- x03-javascript-strings.html Not Yet Working
- x04-css.html Not Yet Working
- x10-plugin-basics.html Only For Mobile Devices. Not Yet Working
- x20-animations-css.html Not Yet Working
- x20-advancedCSS.html Not Yet Working
- x22-animations-SVG.html Not Yet Working
- x25-animations-game.html Not Yet Working
- x30-3D-images.html Not Yet Working
- x31-3D-images-advanced.html Not Yet Working
- x50-ajax-server-php.html Not Yet Working
- x51-robotics-spark-core-photon.html Not Yet Working
- x61-plugins-advanced-file.html Only For Mobile Devices. Not Yet Working
- x61-plugins-advanced-file-NoJQuery.html Only For Mobile Devices. Not Yet Working
- x62-plugins-advanced-camera.html Only For Mobile Devices. Not Yet Working
- x63-plugins-advanced-accel.html Only For Mobile Devices. Not Yet Working
- x64-plugins-advanced-sound.html Only For Mobile Devices. Not Yet Working
- x64-plugins-advanced-sound-poly.html Only For Mobile Devices. Not Yet Working
- x65-plugins-advanced-splashscreen.html Only For Mobile Devices. Not Yet Working
- x66-plugins-advanced-geolocation.html Only For Mobile Devices. Not Yet Working
- x67-plugins-advanced-inappbrowser.html Only For Mobile Devices. Not Yet Working
- x70-phonegap-build.html Not Yet Working
- x80-phonegap-client.html Not Yet Working
- x90-publishing.html Not Yet Working
- Not Yet Working


Sudo-1.8.31p1
Installation of Sudo
First, fix a problem that prevents installation from completion:
sed -e '/^pre-install:/{N;s@;@ -a -r $(sudoersdir)/sudoers;@}' \
-i plugins/sudoers/Makefile.in
Install Sudo by running the
following commands:
./configure --prefix=/usr \
--libexecdir=/usr/lib \
--with-secure-path \
--with-all-insults \
--with-env-editor \
--docdir=/usr/share/doc/sudo-1.8.31p1 \
--with-passprompt="[sudo] password for %p: " &&
make
To test the results, issue: env
LC_ALL=C make check 2>&1 | tee
../make-check.log. Check the results with
grep failed
../make-check.log. One test, test3, is known to
fail if the tests are run as the root user.
Now, as the root
user:
make install &&
ln -sfv libsudo_util.so.0.0.0 /usr/lib/sudo/libsudo_util.so.0
Command Explanations
--libexecdir=/usr/lib
: This
switch controls where private programs are installed. Everything in
that directory is a library, so they belong under /usr/lib
instead of /usr/libexec
.
--with-secure-path
: This
switch transparently adds /sbin
and
/usr/sbin
directories to the
PATH
environment variable.
--with-all-insults
: This
switch includes all the sudo
insult sets.
--with-env-editor
: This
switch enables use of the environment variable EDITOR for
visudo.
--with-passprompt
: This
switch sets the password prompt.
--without-pam
: This switch avoids
building Linux-PAM support when
Linux-PAM is installed on the
system.
Note
There are many options to sudo's
configure command.
Check the configure
--help output for a complete list.
ln -sfv
libsudo_util...: Works around a bug in the
installation process, which links to the previously installed
version (if there is one) instead of the new one.
Configuring Sudo
Configuration Information
The sudoers
file can be quite
complicated. It is composed of two types of entries: aliases
(basically variables) and user specifications (which specify who
may run what). The installation installs a default configuration
that has no privileges installed for any user.
A couple of common configuration chanes are to set the path for
the super user and to allow members of the wheel group to execute
all commands after providing their own credientials. Use the
following commands to create the /etc/sudoers.d/sudo
configuration file as the
root
user:
cat > /etc/sudoers.d/sudo << "EOF"
Defaults secure_path="/usr/bin:/bin:/usr/sbin:/sbin"
%wheel ALL=(ALL) ALL
EOF
For details, see man
sudoers.
Note
The Sudo developers highly
recommend using the visudo program to edit the
sudoers
file. This will provide
basic sanity checking like syntax parsing and file permission
to avoid some possible mistakes that could lead to a vulnerable
configuration.
If PAM is installed on the
system, Sudo is built with
PAM support. In that case, issue
the following command as the root
user to create the PAM
configuration file:
cat > /etc/pam.d/sudo << "EOF"
# Begin /etc/pam.d/sudo
# include the default auth settings
auth include system-auth
# include the default account settings
account include system-account
# Set default environment variables for the service user
session required pam_env.so
# include system session defaults
session include system-session
# End /etc/pam.d/sudo
EOF
chmod 644 /etc/pam.d/sudo
Contents
Installed Programs:
cvtsudoers, sudo, sudoedit (symlink),
sudoreplay, and visudo
Installed Libraries:
group_file.so, libsudo_util.so,
sudoers.so, sudo_noexec.so, and system_group.so
Installed Directories:
/etc/sudoers.d, /usr/lib/sudo,
/usr/share/doc/sudo-1.8.31p1, and /var/{lib,run}/sudo
Short Descriptions
|
cvtsudoers
|
converts between sudoers file formats.
|
|
sudo
|
executes a command as another user as permitted by the
/etc/sudoers configuration
file.
|
|
sudoedit
|
is a symlink to sudo that implies the
-e option to invoke an editor
as another user.
|
|
sudoreplay
|
is used to play back or list the output logs created by
sudo.
|
|
visudo
|
allows for safer editing of the sudoers file.
|
Last updated on 2020-03-16 13:47:01 -0500


Provides utility functions to generate random floating point values within a specified range.
More...
|
| static float | GenerateRandom (Vector2 range) |
| | Generates a random floating point value within the range specified. In this context, range.x is the low value of the range and range.y is the high value. More...
|
| |
| static float | GenerateRandom (float inputRange, float percentVariation) |
| | Generate a random value above and below the value specified in inputRange. More...
|
| |
| static Vector2 | GenerateRandomRange (Vector2 inputRange, float percentVariation) |
| | Randomly generate the low/high values of a range, using a specified range and percent of variation from the specified range. More...
|
| |
Provides utility functions to generate random floating point values within a specified range.
◆ GenerateRandom() [1/2]
| static float RandomUtils.GenerateRandom |
( |
Vector2 |
range | ) |
|
|
static |
Generates a random floating point value within the range specified. In this context, range.x is the low value of the range and range.y is the high value.
- Parameters
-
| range | Defines the range within which the randomly generated floating point value must lie. |
- Returns
- The randomly generated floating point value.
◆ GenerateRandom() [2/2]
| static float RandomUtils.GenerateRandom |
( |
float |
inputRange, |
|
|
float |
percentVariation |
|
) |
| |
|
static |
Generate a random value above and below the value specified in inputRange.
- Parameters
-
| inputRange | The value from which the newly generated value must vary. |
| percentVariation | The percent of variation above and below the specified value of inputRange. |
- Returns
- The randomly generated floating point value.
◆ GenerateRandomRange()
| static Vector2 RandomUtils.GenerateRandomRange |
( |
Vector2 |
inputRange, |
|
|
float |
percentVariation |
|
) |
| |
|
static |
Randomly generate the low/high values of a range, using a specified range and percent of variation from the specified range.
- Parameters
-
| inputRange | The range from which the new range will be generated by specified percent of variation. |
| percentVariation | The allowed percentage of variation from the specified low and high values in the randomly generated low and high values of the new range. |
- Returns
- Low and high values of the randomly generated numeric range.
The documentation for this class was generated from the following file:


| |
VIDEOS
The AEROMAP Project has as its aim the development of a satellite-based real-time monitor of global aerosols and their microphysical properties.
To get an idea, view a stunning NASA GEOS-5 video
of aerosols of different types as they flow from out from their source regions and mix. You can also view an
annotated version set to music produced by Phil Plait who writes the
Bad Astronomy blog. The Earth Observatory also
allows you to explore how key parts of Earth's climate system change from month to month in a series of animated global maps:
WEB RESOURCES
The best official source of information on the
scientific basis for climate change
can be found in the reports of the International Panel on Climate Change (IPCC).
A thorough understanding of aerosols can be learned by reading Chapter 5 of the IPCC 2001 3rd assessment report:
Aerosols, their direct and indirect effects. Another good general route into the field of aerosol physics
is the following overview by NASA's Earth Observatory,
Aerosols: Tiny Particles, Big Impact. Finally, a step short of leaping into
research on your own, I suggest also reading the following important feature articles:
- New et al (2011) Four degrees and beyond: the potential for a global temperature increase of four degrees and its implications. Phil. Trans. R. Soc. A 2011 369, pp6-19.
- Weart (2010) The idea of anthropogenic global climate change in the 20th century Amer. Inst. Phys. Vol.1, pp 67-81.
- Chin et al (2009) Atmospheric aerosol properties and climate impactsU.S. Climate Change Science Program Synthesis and Assessment Product 2.3
- Ramanathan and Carmichael (2008) Global and regional climate changes due to black carbon. Nature Geoscience 1.4 (2008): 221-227.
- Spracklen (2008) Boreal forests, aerosols and the impacts on clouds and climate Phil. Trans. R. Soc. A 28 December 2008 vol. 366 no. 1885, pp 4613-4626.
- Andreae (2007) Aerosols Before Pollution Science, Vol. 315 no. 5808 pp. 50-51.
- Andreae (2007) Atmospheric aerosols versus greenhouse gases in the twenty-first century Phil. Trans. R. Soc. A, Vol. 365 no. 1856, pp 1915-1923.
- Hansen et al (2007) Climate change and trace gases Phil. Trans. R. Soc. A, Vol. 365 no. 1856, pp 1925-1954.
- Mishchenko et al (2007) Accurate monitoring of terrestrial aerosols and total solar irradiance: introducing the Glory mission Bull. Amer. Met. Soc. 88.5, pp 677-691.
- Kaufman et al (2002) A satellite view of aerosols in the climate system Nature, Vol. 419 pp. 215-223.
- Ramanathan et al (2001) Aerosols, climate, and the hydrological cycle Science Vol. 294, pp2119-2124.
- Hansen et al (2000) Global warming in the twenty-first century: An alternative scenario Proc. Nat. Amer. Sci. vol. 97 no. 18, 9875-9880.
- Hansen et al (1998) Climate forcings in the industrial era. Proc. Natl. Acad. Sci., Vol. 95, pp. 12753-12758.
- Hansen et al (1997) The missing climate forcing. Proc. Natl. Acad. Sci., Vol. 95, pp. 12753-12758.
LECTURE COURSES
The advent of Open Course Ware now makes available graduate level courses to the
interested reader. I regularly look for updates in the courses on:
Earth, Atmospheric and Planetary Science. In addition, Professor Irina Sokolik at the Georgia Institute of Technology runs a series of excellent lectures on:
|
|


Shiori is a simple bookmarks manager written in Go language, developed by Radhi Fadlillah and other contributors. The source code is available on GitHub and released under MIT license.
For ease of use, you can install the Shiori Bookmarklet by dragging this link ( +Shiori) to your bookmark bar.


{{product.description}}
{{"Shine: "+product.shine}}
{{"Faces: "+product.faces}}
{{"Rarity: "+product.rarity}}
{{"Color: "+product.color}}
Stars: {{review.stars}} {{review.body}} by: {{review.author}}
Stars: {{reviewCtrl.review.stars}} {{reviewCtrl.review.body}} by: {{reviewCtrl.review.author}}


Dmitry Kravtsov
An event is a signal that something has happened. All DOM nodes generate such signals (but events are not limited to DOM). Consider these events
Mouse event Keyboard events Document events Form element events
We can split mouse events into two categories: “simple” and “complex”
Mouse button is clicked/released over an element
Mouseover / MouseoutMouse pointer comes over/out from an element
MousemoveEvery mouse move over an element triggers that event
Triggers after mousedown and then mouseup over the same element if the left mouse button was used.
contextmenuTriggers after mousedown if the right mouse button was used.
dblclickTriggers after a double click over an element. Complex events are made of simple ones, so in theory we could live without them.
All mouse events include the information about pressed modifier keys.
The properties are:
For instance, the button below only works on Alt+Shift+click:
All mouse events have coordinates in two flavours:
1. Window-relative: clientX and clientY. 2. Document-relative: pageX and pageY.The difference between the two is that clientX/clientY looks at the coordinates relative to the screen, and pageX/pageY relative to the document.
Keyboard events should be used when we want to handle keyboard actions (virtual keyboard also counts). For instance, to react on arrow keys Up and Down or hotkeys (including combinations of keys).
Every key has the code that depends on its location on the keyboard
For instance:
The lifecycle of an HTML page has three important events:
Let’s discuss various events that accompany data updates. These are events like:
The change event triggers when the element has finished changing. For text inputs that means that the event occurs when it looses focus. For instance, while we are typing in the text field below – there’s no event. But when we move the focus somewhere else, for instance, click on a button – there will be a change event: For other elements: select, input type=checkbox/radio it triggers right after the selection changes.
The input event triggers every time a value is modified.
These events occur on cutting/copying/pasting a value. They belong to ClipboardEvent class and provide access to the data that is copied/pasted. We also can use event.preventDefault() to abort the action. But These events are rarely used.
There are two main ways to submit a form:
Both actions lead to submit event on the form. The handler can check the data, and if there are errors, show them and call event.preventDefault(), then the form won’t be sent to the server.
To react on events we can assign a handler – a function that runs in case of an event. Handlers are a way to run JavaScript code in case of user actions. There are several ways to assign a handler
A handler can be set in HTML with an attribute named on
We can assign a handler using a DOM property on
But these handlers are bad, modern way is addEventListener.
Web-standard developers understood that long ago and suggested an alternative way of managing handlers using special methods addEventListener and removeEventListener. They are free of such a problem.
The syntax to add a handler:
EventEvent name, e.g. "click".
HandlerThe handler function.
PhaseAn optional argument, the “phase” for the handler to work. To be covered later. Usually we don’t use it.
To remove the handler, use removeEventListener:


| Properties' Summary |
boolean
MoveSelection |
specifies whether the cursor is moved after entering into cells.
|
short
MoveDirection |
contains the direction the cursor moves after entering cells.
|
boolean
EnterEdit |
specifies whether the enter key can be used to start editing a cell.
|
boolean
ExtendFormat |
specifies whether cell formatting is extended when entering data.
|
boolean
RangeFinder |
specifies whether ranges are highlighted on the sheet when
editing a formula.
|
boolean
ExpandReferences |
specifies whether formula references are extended when cells
are inserted below or to the right of them.
|
boolean
MarkHeader |
specifies whether the current selection is highlighted in
column and row headers.
|
boolean
UseTabCol |
specifies whether the enter key moves the cursor to the column
it was in before using the tab key to change columns.
|
short
Metric |
contains the metric for all spreadsheet documents.
|
short
Scale |
contains the default scale for new spreadsheet documents
(in percent).
|
boolean
DoAutoComplete |
specifies whether automatic completion of text in a cell is used.
|
short
StatusBarFunction |
contains the function that is displayed in the status bar.
|
sequence< string >
UserLists |
contains the string lists used for sorting and filling.
|
short
LinkUpdateMode |
[ OPTIONAL ]
specifies the update mode for external linked data.
|
boolean
PrintAllSheets |
[ OPTIONAL ]
specifies whether all sheets or only selected sheets are printed.
|
boolean
PrintEmptyPages |
[ OPTIONAL ]
specifies whether empty pages are printed.
|
boolean
UsePrinterMetrics |
[ OPTIONAL ]
specifies whether printer metrics are used for display.
|
boolean
ReplaceCellsWarning |
[ OPTIONAL ]
specifies whether a warning is shown before replacing cells
(i.e. when pasting from clipboard).
|
| Properties' Details |
MoveSelection
boolean MoveSelection;
- Description
- specifies whether the cursor is moved after entering into cells.
|
|
MoveDirection
short MoveDirection;
- Description
- contains the direction the cursor moves after entering cells.
- See also
- MoveDirection
|
|
EnterEdit
boolean EnterEdit;
- Description
- specifies whether the enter key can be used to start editing a cell.
|
|
ExtendFormat
boolean ExtendFormat;
- Description
- specifies whether cell formatting is extended when entering data.
|
|
RangeFinder
boolean RangeFinder;
- Description
- specifies whether ranges are highlighted on the sheet when
editing a formula.
|
|
ExpandReferences
boolean ExpandReferences;
- Description
- specifies whether formula references are extended when cells
are inserted below or to the right of them.
|
|
MarkHeader
boolean MarkHeader;
- Description
- specifies whether the current selection is highlighted in
column and row headers.
|
|
UseTabCol
boolean UseTabCol;
- Description
- specifies whether the enter key moves the cursor to the column
it was in before using the tab key to change columns.
|
|
Metric
short Metric;
- Description
- contains the metric for all spreadsheet documents.
- See also
- ::com::sun::star::util::MeasureUnit
|
|
Scale
short Scale;
- Description
- contains the default scale for new spreadsheet documents
(in percent).
There are several special values:
-1 = Optimal width
-2 = Show whole page
-3 = Page width
|
|
DoAutoComplete
boolean DoAutoComplete;
- Description
- specifies whether automatic completion of text in a cell is used.
|
|
StatusBarFunction
short StatusBarFunction;
- Description
- contains the function that is displayed in the status bar.
- See also
- StatusBarFunction
|
|
UserLists
sequence< string > UserLists;
- Description
- contains the string lists used for sorting and filling.
Each string contains the members of a list, separated by
commas.
|
|
LinkUpdateMode
short LinkUpdateMode;
- Usage Restrictions
- optional
- Description
- specifies the update mode for external linked data.
0 = always
1 = never
2 = on demand
|
|
PrintAllSheets
boolean PrintAllSheets;
- Usage Restrictions
- optional
- Description
- specifies whether all sheets or only selected sheets are printed.
|
|
PrintEmptyPages
boolean PrintEmptyPages;
- Usage Restrictions
- optional
- Description
- specifies whether empty pages are printed.
|
|
UsePrinterMetrics
boolean UsePrinterMetrics;
- Usage Restrictions
- optional
- Description
- specifies whether printer metrics are used for display.
|
|
ReplaceCellsWarning
boolean ReplaceCellsWarning;
- Usage Restrictions
- optional
- Description
- specifies whether a warning is shown before replacing cells
(i.e. when pasting from clipboard).
|
|
Copyright © 2013, The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, Apache OpenOffice and OpenOffice.org are trademarks of The Apache Software Foundation. Other names may be trademarks of their respective owners.


Modeling in C++, with CHASTE (C++ library), the morphogenesis of the thyroid. Starting from fluorescence microscopy, analyzing the data and implementing a model which is capable of simulate 96 hours of development
For the Conception orientée objet et gestion de données lecture. Local database for questions, answers and users information. I worked on the back-end side; database structure and java.
For the Questions spéciales de gestion de l'information lecture, we did a neural network capable of recognizing bird song presence and absence with data from a challenge. We have transform our audio files into spectral images, and used a convolutional neural network for classification. Report
Project done as part of the lecture Process-based modeling in bioscience engineering, the objective was to implement a model, calibrate it and make projections. Report


This package contains methods to perform Common Principal Component Analysis (CPCA). The stepwise method by Trendafilov is published in the current version. Please see Trendafilov (2010). Stepwise estimation of common principal components. Computational Statistics & Data Analysis, 54(12), 3446-3457. doi:10.1016/j.csda.2010.03.010
| Version: | 0.1.2 |
| Depends: | R (≥ 3.0.1) |
| Suggests: | abind, plyr |
| Published: | 2014-02-07 |
| Author: | Andrey Ziyatdinov [aut, cre], Samir Kanaan-Izquierdo [aut], Nickolay T. Trendafilov [aut], Alexandre Perera-Lluna [aut] |
| Maintainer: | Andrey Ziyatdinov <andrey.ziyatdinov at upc.edu> |
| License: | GPL (≥ 3) |
| URL: | https://github.com/variani/cpca |
| NeedsCompilation: | no |
| Citation: | cpca citation info |
| Materials: | README |
| CRAN checks: | cpca results |
| Reference manual: | cpca.pdf |
| Package source: | cpca_0.1.2.tar.gz |
| Windows binaries: | r-devel: cpca_0.1.2.zip, r-release: cpca_0.1.2.zip, r-oldrel: cpca_0.1.2.zip |
| OS X binaries: | r-release: cpca_0.1.2.tgz, r-oldrel: cpca_0.1.2.tgz |
Please use the canonical form https://CRAN.R-project.org/package=cpca to link to this page.


--- layout: page title: About header-img: "img/about-bg.png" ---
Hi my name is Abbas Parpia and this is my blog


class Solution: def slowestKey(self, releaseTimes: List[int], keysPressed: str) -> str: duration = [releaseTimes[0]] n = len(releaseTimes) for i in range(1, n): duration.append(releaseTimes[i] - releaseTimes[i-1]) cnt = collections.Counter() for c, d in zip(keysPressed, duration): cnt[c] = max(cnt[c], d) mv = max(cnt.values()) return max([k for k in cnt if cnt[k] == mv])


Cucumber JS Browser Runner
Display all details
Run all
Results
Features:
total :
0
passed :
0
skipped :
0
failed :
0
pending :
0
Scenarios:
total :
0
passed :
0
skipped :
0
failed :
0
pending :
0
Steps:
total :
0
passed :
0
skipped :
0
failed :
0
pending :
0


Notice : Web Worker API does not work of the box using chrome on windows 10. This may be fixed or simply run in in other browser e.g. edge
Count numbers:
Note: Internet Explorer 9 and earlier versions do not support Web Workers.


6.22 psb_local_index —
call psb_local_index(y, x, desc_a, info)
-
Type:
- Asynchronous.
-
On Entry
-
-
x
- Integer indices.
Scope: local
Type: required
Intent: in, inout.
Specified as: a scalar or a rank one integer array.
-
desc_a
- the communication descriptor.
Scope:local.
Type:required.
Intent: in.
Specified as: a structured data of type psb_desc_type.
-
iact
- specifies action to be taken in case of range errors. Scope: global
Type: optional
Intent: in.
Specified as: a character variable Ignore, Warning or Abort, default Ignore.
-
On Return
-
-
y
- A logical mask which is true for all corresponding entries of x that are local
to the current process Scope: local
Type: required
Intent: out.
Specified as: a scalar or rank one logical array.
-
info
- Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
Notes
- This routine returns a .true. value for those indices that are local to the
current process, including the halo indices.


TEMPEST (1982) Grade: B- Director: Paul Mazursky Screenplay: Leon Capetanos, Paul Mazursky Starring: John Cassevtes, Susan Sarandon, Gena Rowlands, Raul Julia, Molly Ringwald, Sam Robards, Vittorio Gassman Tranquil serenity encapsulates an isolated Greek Island. The isle is so resplendent, so picturesque it could be interpreted as the most astute visual poetry, a luminous, naturalistic realization of utopia. Uneasiness is detected amidst the harmony. It's plastered all over Cassevetes' sullen visage. The man mutters "Come on now, show me the magic," like a desperate old coot. He glares up into the skies, with much trepidation, as if inquiring from the gods above. They respond to his query.  Winds pick up, whooshing forth with great frenzy. Lightning strikes, not hokey movie lightning, this lightning looks authentic, and this moment feels authentic. Director Paul Mazursky has pulled off a harrowing sequence of nature gone awry. He has effectively filmed what Shakespeare characterized in his play TEMPEST, which Mazursky's TEMPEST is a modernized version of. The problem is, this scene doesn't belong in the film. It's out of place, a sorcerous event plunked down in a story that opens as an acerbic, subtly dramatic meditation on a mid-life crisis. Mazursky introduces us to Philip (Cassevetes), his wife, an aging actress (puffy haired Gena Rowlands, looking like she just walked out of a 40's film noir), and a pixyish daughter (Molly Ringwald), all living in a modernist apartment in Manhattan.  At first we are only moderately aware of this.  Later we experience more of his malaise. In one of the film's most surreal moments he envisions himself slowly diving off a building while he looks on. Actor\director John Cassevestes was a good choice for the role. Cassevetes has a handsome, dour face, with dead eyes, a drooping nose and wild tussled hair. He not only looks like a doomed man, but like a man who knows he's doomed. Philip trudges into his apartment as his wife is entertaining guests, a group of pompous actors\directors\producer's whom she will be working with. He seems despondent, possibly inebriated. He asks one of the guests (played by Mazursky) to dance with him. Cassevetes relishes the scene; he plays it with a mock joy so out of place it's downright intimidating. "Sing to me!" He bellows to the befuddled fellow. Mazursky begins to sing as the two men dance arm in arm. The scene reminded me of the only effective sequence in the recent MOD SQUAD movie, were the baddie Michael Lerner waltzes with Omar Epps as a subtle form of dissuasion.  He goes from gibe playfulness to corrosive anger, cumulating into a nervous breakdown in front of everyone. These early scenes are beautifully realized. Mazursky knows how to comically strip away falseness and get to the core of raw emotion.  The character undergoes a conversion not unlike Kevin Spacey in AMERICAN BEAUTY. He quits his job and begins behaving like an aimless wacko. Philip drives his wife into the arms of another man, his own boss, a brazen narcissist, played hysterically by Alfonso Alonzo. His daughter takes his side when he resolves to vacation in Greece. Upon arriving they instantly encounter a beautiful traveler (Susan Sarandon), with the ability to sing HAVA NAGILAH in three different languages. Sarandon is a comely vision, impeccably tan, with short, amber curled hair. She radiates more pure carnality in TEMPEST then she has since the orange scene in ATLANTIC CITY. She's also grown as an actress. In ATLANTIC CITY she came across as completely fallacious, just another blank pretty face. Here she brings a light sarcasm as well as benevolent warmth to her role. Sarandon and Cassevetes have a prodigiously mannered chemistry. He peers at her warmly, and she returns his stares with big, inquisitive eyes, as if she were trying to get to the core of this man, and find out what makes him tick. Molly Ringwald is less successful. This is her first major role and it shows. She comes equipped with an early 80's trendy, chic teenage girl brattiness (the new 90's trend being that of witty self-awareness), and perpetual bed head. Sarandon falls for Cassevestes and they relocate, with his daughter to the aforementioned Greek isle. Only one other inhabitant resides on the island, a buffoonish Spaniard, played with maximum jubilation by Raul Julia (with a thick moustache to match his equally thick accent). So far many of Mazursky's gambits work. He has devised a whimsically messy plot (with dark undertones) of a man on a mission to self-discovery. At a little more than one hour in to this thing, Mazursky tries for an additional affectivity. His heightened realism turns into surrealism. A scene in which Raul Julia performs a mock burlesque show with a bunch of goats as his back up doesn't belong here, but it is unsuccessfully included. Then, later the aforementioned, "show me the magic" moment. This seems piled on in order for Mazursky to justify his film as a Shakespeare adaptation. Mazursky is more adept at handling the paces of real life, not fantasy. The island scenes begin to feel somewhat forced and awkward, like a bad concoction of Fellini at his most indulgent and a quirky episode of GILLIGAN'S ISLAND. Occasionally, Mazursky does manage to capture the magic he's aiming for, like in a luminously shot scene in which Molly Ringwald and Sam Robards meet underwater. Visuals have never usually been Mazursky's strong suit. In TEMPEST, he changes that. The images of the island are so expansively exquisite one could view most of the picture with the sound off and still enjoy it. Mazursky's screenplays have always been a little messy, comparative to the lives he was portraying; the hustle and bustle of quirky artists in NEXT STOP GREENWICH VILLAGE, the middle class sexual moors in BOB & CAROL & TED & ALICE. Here he has attempted something disparate, a sprawling epic that never reaches a destination. The messy naturalism (punctuated by messy surrealism) is refreshing in early scenes but at two and half-hours it becomes a bit tedious. If only he had focused his story more tightly and done away with the Shakespeare-inspired moments, he could have had a minor classic instead of a near miss.
http://www.geocities.com/incongruity98 (Ron's Movie Reviews)
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


importlib_metadata NEWS¶
v1.7.0¶
PathNotFoundError
now has a custom__str__
mentioning “package metadata” being missing to help guide users to the cause when the package is installed but no metadata is present. Closes #124.
v1.6.1¶
Added
Distribution._local()
as a provisional demonstration of how to load metadata for a local package. Implicitly requires that pep517 is installed. Ref #42.Ensure inputs to FastPath are Unicode. Closes #121.
Tests now rely on
importlib.resources.files
(and backport) instead of the olderpath
function.Support any iterable from
find_distributions
. Closes #122.
v1.6.0¶
Added
module
andattr
attributes toEntryPoint
v1.5.2¶
Fix redundant entries from
FastPath.zip_children
. Closes #117.
v1.5.1¶
Improve reliability and consistency of compatibility imports for contextlib and pathlib when running tests. Closes #116.
v1.5.0¶
Additional performance optimizations in FastPath now saves an additional 20% on a typical call.
Correct for issue where PyOxidizer finder has no
__module__
attribute. Closes #110.
v1.4.0¶
Through careful optimization,
distribution()
is 3-4x faster. Thanks to Antony Lee for the contribution. Closes #95.When searching through
sys.path
, if any error occurs attempting to list a path entry, that entry is skipped, making the system much more lenient to errors. Closes #94.
v1.3.0¶
Improve custom finders documentation. Closes #105.
v1.2.0¶
Once again, drop support for Python 3.4. Ref #104.
v1.1.3¶
Restored support for Python 3.4 due to improper version compatibility declarations in the v1.1.0 and v1.1.1 releases. Closes #104.
v1.1.2¶
Repaired project metadata to correctly declare the
python_requires
directive. Closes #103.
v1.1.1¶
Fixed
repr(EntryPoint)
on PyPy 3 also. Closes #102.
v1.1.0¶
Dropped support for Python 3.4.
EntryPoints are now pickleable. Closes #96.
Fixed
repr(EntryPoint)
on PyPy 2. Closes #97.
v1.0.0¶
Project adopts semver for versioning.
Removed compatibility shim introduced in 0.23.
For better compatibility with the stdlib implementation and to avoid the same distributions being discovered by the stdlib and backport implementations, the backport now disables the stdlib DistributionFinder during initialization (import time). Closes #91 and closes #100.
0.23¶
Added a compatibility shim to prevent failures on beta releases of Python before the signature changed to accept the “context” parameter on find_distributions. This workaround will have a limited lifespan, not to extend beyond release of Python 3.8 final.
0.22¶
Renamed
package
parameter todistribution_name
as recommended in the following functions:distribution
,metadata
,version
,files
, andrequires
. This backward-incompatible change is expected to have little impact as these functions are assumed to be primarily used with positional parameters.
0.21¶
importlib.metadata
now exposes theDistributionFinder
metaclass and references it in the docs for extending the search algorithm.Add
Distribution.at
for constructing a Distribution object from a known metadata directory on the file system. Closes #80.Distribution finders now receive a context object that supplies
.path
and.name
properties. This change introduces a fundamental backward incompatibility for any projects implementing afind_distributions
method on aMetaPathFinder
. This new layer of abstraction allows this context to be supplied directly or constructed on demand and opens the opportunity for afind_distributions
method to solicit additional context from the caller. Closes #85.
0.20¶
Clarify in the docs that calls to
.files
could returnNone
when the metadata is not present. Closes #69.Return all requirements and not just the first for dist-info packages. Closes #67.
0.19¶
Restrain over-eager egg metadata resolution.
Add support for entry points with colons in the name. Closes #75.
0.18¶
Parse entry points case sensitively. Closes #68
Add a version constraint on the backport configparser package. Closes #66
0.17¶
Fix a permission problem in the tests on Windows.
0.16¶
Don’t crash if there exists an EGG-INFO directory on sys.path.
0.15¶
Fix documentation.
0.14¶
Removed
local_distribution
function from the API. This backward-incompatible change removes this behavior summarily. Projects should remove their reliance on this behavior. A replacement behavior is under review in the pep517 project. Closes #42.
0.13¶
Update docstrings to match PEP 8. Closes #63.
Merged modules into one module. Closes #62.
0.12¶
Add support for eggs. !65; Closes #19.
0.11¶
Support generic zip files (not just wheels). Closes #59
Support zip files with multiple distributions in them. Closes #60
Fully expose the public API in
importlib_metadata.__all__
.
0.10¶
The
Distribution
ABC is now officially part of the public API. Closes #37.Fixed support for older single file egg-info formats. Closes #43.
Fixed a testing bug when
$CWD
has spaces in the path. Closes #50.Add Python 3.8 to the
tox
testing matrix.
0.9¶
Fixed issue where entry points without an attribute would raise an Exception. Closes #40.
Removed unused
name
parameter fromentry_points()
. Closes #44.DistributionFinder
classes must now be instantiated before being placed onsys.meta_path
.
0.8¶
This library can now discover/enumerate all installed packages. This backward-incompatible change alters the protocol finders must implement to support distribution package discovery. Closes #24.
The signature of
find_distributions()
on custom installer finders should now accept two parameters,name
andpath
and these parameters must supply defaults.The
entry_points()
method no longer accepts a package name but instead returns all entry points in a dictionary keyed by theEntryPoint.group
. Theresolve
method has been removed. Instead, callEntryPoint.load()
, which has the same semantics aspkg_resources
andentrypoints
. This is a backward incompatible change.Metadata is now always returned as Unicode text regardless of Python version. Closes #29.
This library can now discover metadata for a ‘local’ package (found in the current-working directory). Closes #27.
Added
files()
function for resolving files from a distribution.Added a new
requires()
function, which returns the requirements for a package suitable for parsing bypackaging.requirements.Requirement
. Closes #18.The top-level
read_text()
function has been removed. UsePackagePath.read_text()
on instances returned by thefiles()
function. This is a backward incompatible change.Release dates are now automatically injected into the changelog based on SCM tags.
0.7¶
Fixed issue where packages with dashes in their names would not be discovered. Closes #21.
Distribution lookup is now case-insensitive. Closes #20.
Wheel distributions can no longer be discovered by their module name. Like Path distributions, they must be indicated by their distribution package name.
0.6¶
Removed
importlib_metadata.distribution
function. Now the public interface is primarily the utility functions exposed inimportlib_metadata.__all__
. Closes #14.Added two new utility functions
read_text
andmetadata
.
0.5¶
Updated README and removed details about Distribution class, now considered private. Closes #15.
Added test suite support for Python 3.4+.
Fixed SyntaxErrors on Python 3.4 and 3.5. !12
Fixed errors on Windows joining Path elements. !15
0.4¶
Housekeeping.
0.3¶
Added usage documentation. Closes #8
Add support for getting metadata from wheels on
sys.path
. Closes #9
0.2¶
Added
importlib_metadata.entry_points()
. Closes #1Added
importlib_metadata.resolve()
. Closes #12Add support for Python 2.7. Closes #4
0.1¶
Initial release.


Counties: unemployment from 2000 to 2016
BLS county unemployment statistics: 2000 - 2016
The script scrapes and combines local area unemployment (LAU) statistics from the Bureau of Labor Statistics for all US counties and Washington D.C. from 2000 to 2016.
Example page: https://www.bls.gov/lau/laucnty16.txt.
county_unemploy.csv
[Raw]
COLUMNS
| Name | Description |
|---|---|
stfips |
State FIPS code |
fips |
County FIPS code |
county |
County name |
stabbr |
State abbreviation |
year |
Year |
labor_force |
Number in labor force |
employed |
Number employed |
unemployed |
Number unemployed |
unem_rate |
Unemployment rate |


--- layout: default title: What We Do tagline: Supporting tagline description: "Word Lions creates content marketing, including white papers, web copy, and training materials." --- {% include JB/setup %}
White papers can establish thought leadership, function as a sales leave-behind, generate leads, and enhance SEO. However, they have to be good. Word Lions builds white papers that thrive in all channels.
The best way to impress a prospect is to show them your product in action doing just what they need it to do. Word Lions write case studies to tell your success stories and speak to your customers' needs.
Customers need to understand your products and services. Good documentation is comprehensive, concise, and informative. Word Lions creates clear, accurate documentation that connects our clients with their customers.
Messaging is a key component of branding, but it doesn’t do anything if potential customers don’t see it. Word Lions helps you expand your content capabilities. Learn how your words play into the visual strategy of your website and marketing.
Interactive training is a great way for prospects to learn about your product’s value. Word Lions develops and delivers cost-effective training for any need.
Copious wanted to prove their mastery of the Magento e-commerce platform. They performed a number of tests on Magento in different environments and had a lot of data and results that they wanted to share with potential clients. They came to Word Lions to produce a white paper showcasing their findings.
“Word Lions did a great job turning our benchmark results into valuable content.”
David Hughes, Strategic Director at Copious
Word Lions drew on their rich technical background to connect with Copious subject matter experts. The white paper highlighted Copious’s expertise while providing readers with valuable information about Magento’s performance under different system configurations.
Read the Optimizing Magento white paper.
×Smarsh delivers cloud-based archiving solutions for the information-driven enterprise. To enable sales and marketing efforts, Word Lions helped develop a line of case studies that showcase the success of Smarsh clients.
“The world of regulations and compliance that Smarsh works with can be difficult to grasp. Word Lions understands both our highly technical topics and the audience we’re trying to reach.”
Raime Merriman, Product Marketing Director at Smarsh
Word Lions produced a case study explaining how Lee County, FLorida uses the Smarsh expertise and platform to attract more tourism to Southwest Florida.
Read the Lee County case study from Smarsh.
×When Engine Yard prepared to launch their new cloud-hosted Magento hosting service, they needed website copy that grabbed new customers. They came to Word Lions to help with the website revamp.
A new product line needs a message that is consistent across a company. Word Lions produced fierce copy that promoted the new Magento service and grabbed new clients’ attention. The new copy maintained Engine Yard’s clear, unique voice throughout.
Engine Yard only wanted one page, but Word Lions also writes and designs websites from the ground up.
See the Engine Yard Magento product page.
×We'd love to start a discussion about how we can help with your content marketing or training needs.


split version history
1.0.0-1 (July 16, 2015)
1.1.0-1 (July 19, 2015)
1.1.1-1 (December 5, 2015)
- Test coverage stats are now thanks to codecov.
- Latest stable Lua in the 5.3 series is 5.3.2, so we test against that now.
2.0.0-1 (March 5, 2016)
- Fix a bug when the iterator is used to explode a string. Thanks to Alexey
Melnichuk for reporting the problem.
- Change the information variables to functions. These serve the same purpose,
but don’t use variable names that Lua explicitly warns users about.
3.0.0-1 (April 24, 2016)
- Clean up tests.
- Change the name of
spliterator
to each
. The new name is less silly and
hopefully clearer. NB: For the moment, spliterator
is still provided as
an alias to each
. However, in the next major version release (i.e.,
4.0.0-1), spliterator
will be removed. Please start switching any code that
uses spliterator
to each
.
- Add
first_and_rest
, a string equivalent to a function that splits a list
into its head and tail.
3.0.1-1 (May 2, 2016)
- Fix a few typos and copyright dates
- Fix the string returned by
version()
.
3.1.0-1 (July 21, 2016)
- Updated to test against Lua 5.3.3
3.2.0-1 (February 11, 2017)
- Updated to test against Lua 5.3.4
- The repo is now housed on Github
- CI is now provided by Travis.ci
3.2.1-1 (July 19, 2018)
- Updated to test against LuaJit 2.0.5
- Updated to test against Lua 5.3.5
- Updated to recognize that it’s 2018
Would you rather view the documentation?
© 2012-2018 Peter Aronoff. BSD 3-Clause license; see the license for
details.


Sharmila Tagore's 75th Birthday Celebrations: Saif, Kareena & Taimur Take Her On A Tiger Safari
by Madhuri VBollywood's diva Sharmila Tagore celebrated her 75th birthday yesterday (Sunday) with her family in a rather unique way. The actress rang in her special day in Ranthambore with a jungle safari and we bring you some pictures from the fun trip.
Have a look at them here.
Wild Tales
A photo of Saif Ali Khan, Kareena Kapoor Khan and Taimur Ali Khan on their way to the tiger safari in an open jeep is going viral on the internet.
The Awesome Trio
In yet another snap, Saif Ali Khan and Kareena Kapoor Khan are seen sharing a frame with the birthday girl, Sharmila Tagore.
All Things Bright
Soha Ali Khan, who was also a part of the celebrations, shared this picture on her Instagram story where one can see a beautifully-lit dining table in the midst of a forest. One can also catch a glimpse of Sharmila Tagore in this picture.
What A Sight!
Sharmila Tagore's son-in-law and Soha Ali Khan's hubby Kunal Kemmu, shared this click of a tiger which they spotted during the safari.
Soha Ali Khan's Heartfelt Post For Sharmila Tagore
Earlier in the morning, Soha wished her mommy dearest with a special post that read, "I may not have seen Krishna the tigress this morning with @khemster2 but I got to put my arm around this tigress here."
Birthday Love
Earlier in the morning, the 'Tum Mile' actress also shared a picture of Sharmila Tagore enjoying some pancakes with her granddaughter Inaaya Naumi Kemmu who is seated on her lap. She captioned the moment as, "Birthday pancakes."
Taimur Ali Khan Enjoys Swing Ride With Cousin Inaaya Naumi Kemmu & It's Such An Adorable Sight!
Kareena Kapoor Says Marrying Saif Ali Khan Was The Best Life Decision: 'Not A Crime To Be In Love'


Price Comparator
Home
About Us
Sections
Home
Companies
Redmi
Realme
Samsung
OnePlus
Apple
Ram
2GB
3GB
4GB
6GB
8GB
OS Version
IOS
Jelly Beans
Kit Kat
Lollipop
Marshmallow
Nougat
Oreo
Pie
About us


.equals()
is called to compare a String
with an empty string. In this case, using .isEmpty()
is better as
it shows you exactly what you're checking.
Example:
void checkString(String s){ if ("".equals(s)) throw new IllegalArgumentException(); }
After the quick-fix is applied, the result looks like this:
void checkString(String s){ if (s != null && s.isEmpty()) throw new IllegalArgumentException(); }
"".equals(str)
returns false when str
is null. For safety, this inspection's quick fix inserts an explicit null-check when
the equals()
argument is nullable. Use the checkbox below to ignore the warning in this case.


Your dataset should be published as a single file with a URL on the web. This should be a location where the URL is likely to resolve for the forseeable future and ideally should contain the version number of your dataset. If your data is spread over multiple files you should compress it using as ZIP or a TAR file
Your result is available here


ngInclude
(directive in module ng
)
Fetches, compiles and includes an external HTML fragment.
Keep in mind that Same Origin Policy applies to included resources (e.g. ngInclude won't work for cross-domain requests on all browsers and for file:// access on some browsers).
<ng-include src="{string}" [onload="{string}"] [autoscroll="{string}"]> </ng-include>as attribute
<ANY ng-include="{string}" [onload="{string}"] [autoscroll="{string}"]> ... </ANY>as class
<ANY class="ng-include: {string}; [onload: {string};] [autoscroll: {string};]"> ... </ANY>
ngInclude|src – {string} –
angular expression evaluating to URL. If the source is a string constant,
make sure you wrap it in quotes, e.g. src="'myPartialTemplate.html'"
.
onload(optional) – {string=} –
Expression to evaluate when a new partial is loaded.
autoscroll(optional) – {string=} –
Whether ngInclude
should call $anchorScroll
to scroll the viewport after the content is loaded.
Emitted every time the ngInclude content is reloaded.


The ATMEL File System is a module optimized for the C51/AVR8/AVR32 chip from ATMEL.
The footprint is very small, many features are included, and specific caches are implemented to optimize the speed.
The particularities of ATMEL File System are the
Navigator Identifier, the
"file list" and the
File index :
One navigator ID allows to explore a disk or open a file.
If you want to open 2 files at the same time then you must use 2 navigators ID.
If you want to explore 2 directories at the same time then you must use 2 navigators ID.
If you want to explore 1 directory and open 1 file at the same time then you must use 2 navigators ID.
Thus the advantages are :
- possibility to open many files at the same time
- possibility to explore many disks at the same time
The switch between the navigations is very fast.
The navigator is the same to open and to explore, but if you open a file then the navigation routines (next,...) are not autorized.
The number of ID navigators is defined by FS_NB_NAVIGATOR.
Each navigator uses only 40B of RAM space.
A good example to understand the advantage of navigation ID is copy a disk to another disk .
Two information allow the navigation, the
"current folder" and the
"file selected".
The "File list" is the list of all folders and all files present in "current folder" like a Windows explorer (the sub folder and sub file aren't included).
The "file selected" is a cursor on the "File list" (The unselect position exists).
When the
nav_dir_cd() and
nav_dir_gotoparent() routines are called, the "current folder" and "File list" change.
After a
nav_partition_mount() :
- the "current folder" is the Root directory
- "File list" contains all folders and all files included in Root directory
- "file selected" is at position "unselect"
About order in the "File list" : - directories are stored before the file
- the order of directories or files is the creation order
Example:
folder1
| folder3
| | file4
| file5
file1
file2
folder2
| file6
file3
folder1
folder2
file1
file2
file3
folder3
file5
A
File Index is a small pointer structure which contains a file position.
This structure allows to store a file list in a small memory space, and allows a fast access to the file.
The following routines are used to manage file index :
nav_getindex(),
nav_gotoindex().
Many routines return a status TRUE or FALSE.
In case of FALSE status, the
fs_g_status contains the error identifier to retrieve more information about the error.
The error list is available
here.


muSE
r716
Main Page
Related Pages
Modules
Data Structures
Files
Data Structures
Data Structure Index
Class Hierarchy
Data Fields
Class Hierarchy
Go to the textual class hierarchy
Generated on Mon May 16 2016 09:31:44 for muSE by
1.8.11


TXSCLCC kmdheight.1293419 CCid.2 MoMoM.["TXSCLCC", "1293419", "2"] -> {"coin":"TXSCLCC","kmdheight":1293419,"ccid":2,"MoMs":[],"notarization_hash":"0000000000000000000000000000000000000000000000000000000000000000","MoMoM":"0000000000000000000000000000000000000000000000000000000000000000","data":"000000000000000000000000000000000000000000000000000000000000000000000000"}
TXSCLCC.ht.178198 opretlen.72 src_or_dest.0 dest.(KMD) lastbest.1293405 paxwdcrc.93ef8048
TXSCLCC kmdheight.1293419 CCid.2 MoMoM.["TXSCLCC", "1293419", "2"] -> {"coin":"TXSCLCC","kmdheight":1293419,"ccid":2,"MoMs":[],"notarization_hash":"0000000000000000000000000000000000000000000000000000000000000000","MoMoM":"0000000000000000000000000000000000000000000000000000000000000000","data":"000000000000000000000000000000000000000000000000000000000000000000000000"}
TXSCLCC.ht.178198 opretlen.72 src_or_dest.0 dest.(KMD) lastbest.1293405 paxwdcrc.93ef8048
0 NANOSEND.2910 TXSCLCC.178198 channel.00000000 (2871) pax.93ef8048 datalen.0 (-1 0) (-1 0) recv.1
TXSCLCC kmdheight.1293419 CCid.2 MoMoM.["TXSCLCC", "1293419", "2"] -> {"coin":"TXSCLCC","kmdheight":1293419,"ccid":2,"MoMs":[],"notarization_hash":"0000000000000000000000000000000000000000000000000000000000000000","MoMoM":"0000000000000000000000000000000000000000000000000000000000000000","data":"000000000000000000000000000000000000000000000000000000000000000000000000"}
TXSCLCC.ht.178198 opretlen.72 src_or_dest.0 dest.(KMD) lastbest.1293405 paxwdcrc.93ef8048
TXSCLCC kmdheight.1293419 CCid.2 MoMoM.["TXSCLCC", "1293419", "2"] -> {"coin":"TXSCLCC","kmdheight":1293419,"ccid":2,"MoMs":[],"notarization_hash":"0000000000000000000000000000000000000000000000000000000000000000","MoMoM":"0000000000000000000000000000000000000000000000000000000000000000","data":"000000000000000000000000000000000000000000000000000000000000000000000000"}
what are these


|
Produced by Siminov Software Solution LLP | ||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
| Interface Summary | |
|---|---|
| Constants | |
| IInitializer | It exposes APIs to deal with Siminov Initialization. |
| Class Summary | |
|---|---|
| BuildConfig | |
| Initializer | It implements IInitializer Interface. |
| R | |
| R.attr | |
| R.drawable | |
| R.string | |
| R.style | |
| Siminov | Exposes methods to deal with SIMINOV FRAMEWORK. |
|
Apache License 2.0 | ||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |


An MPI implementation providing a Fortran interface must provide a module named mpi_f08 that can be used in a Fortran program. Section MPI for Different Fortran Standard Versions describes restrictions if the compiler does not support all the needed features. Within all MPI function specifications, the first of the set of two Fortran routine interface specifications is provided by this module. This module must:
It is strongly recommended that developers substitute calls to deprecated routines
when upgrading from mpif.h or the mpi module to the
mpi_f08 module.
( End of advice to users.)
In all blocking routines, i.e., if the choice-buffer
is not declared as ASYNCHRONOUS, the TS 29113 feature is not needed
for the support of non-contiguous buffers because the compiler
can pass the buffer by in-and-out-copy through a contiguous scratch
array.
( End of rationale.)
For these definitions in the mpi_f08 bindings,
in most cases, INTENT(IN) is used if the C interface
uses call-by-value. For all buffer arguments and for
OUT and INOUT dummy arguments
that allow one of the non-ordinary Fortran constants
(see MPI_BOTTOM, etc. in Section Named Constants
)
as input, an INTENT is not specified.
( End of rationale.)
Advice to users.
If a dummy argument is declared with INTENT(OUT),
then the Fortran standard stipulates that the actual argument
becomes undefined upon invocation of the MPI routine,
i.e., it may be overwritten by some other values, e.g. zeros;
according to [40], <IP_ADDRESS> Ordinary dummy variables,
Paragraph 17:
``If a dummy argument has INTENT(OUT), the actual argument becomes undefined
at the time the association is established, except [...]''.
For example, if the dummy argument is an
assumed-size array and the actual argument is a strided array,
the call may be implemented with copy-in and copy-out
of the argument. In the case of INTENT(OUT) the copy-in may
be suppressed by the optimization and the routine starts execution using
an array of undefined values. If the routine stores fewer
elements into the dummy argument than is provided in the actual
argument, then the remaining locations are overwritten with these
undefined values.
See also both advices to implementors in
Section Fortran Support Through the mpi Module
.
( End of advice to users.)
For user-defined callback functions
(e.g., COMM_COPY_ATTR_FUNCTION) and their
predefined callbacks (e.g., MPI_COMM_NULL_COPY_FN),
the ierror argument is not optional.
The MPI library must always call these routines with an actual ierror argument.
Therefore, these user-defined functions need not check whether the MPI
library calls these routines with or without an actual ierror output argument.
( End of rationale.)
The MPI Fortran bindings in the mpi_f08 module are designed based on
the Fortran 2008 standard [40] together with the
Technical Specification ``TS 29113 Further Interoperability with C'' [41]
of the ISO/IEC JTC1/SC22/WG5 (Fortran) working group.
Rationale.
The features in TS 29113 on further interoperability with C were decided on by ISO/IEC JTC1/SC22/WG5 and designed by PL22.3 (formerly J3) to support a higher level of integration between Fortran-specific features and C than was provided in the Fortran 2008 standard; part of this design is based on requirements from the MPI Forum to support MPI-3.0. According to [41], ``an ISO/IEC TS is reviewed after three years in order to decide whether it will be confirmed for a further three years, revised to become an International Standard, or withdrawn. If the ISO/IEC TS is confirmed, it is reviewed again after a further three years, at which time it must either be transformed into an International Standard or be withdrawn.''
The TS 29113 contains the following language features that are needed for the MPI bindings in the mpi_f08 module: assumed-type and assumed-rank. It is important that any possible actual argument can be used for such dummy arguments, e.g., scalars, arrays, assumed-shape arrays, assumed-size arrays, allocatable arrays, and with any element type, e.g., REAL, CHARACTER*5, CHARACTER*(*), sequence derived types, or BIND(C) derived types. Especially for backward compatibility reasons, it is important that any possible actual argument in an implicit interface implementation of a choice buffer dummy argument (e.g., with mpif.h without argument-checking) can be used in an implementation with assumed-type and assumed-rank argument in an explicit interface (e.g., with the mpi_f08 module).
A further feature useful for MPI is the extension of the semantics of the ASYNCHRONOUS attribute: In F2003 and F2008, this attribute could be used only to protect buffers of Fortran asynchronous I/O. With TS 29113, this attribute now also covers asynchronous communication occurring within library routines written in C.
The MPI Forum hereby wishes to acknowledge this
important effort by the Fortran PL22.3 and WG5 committee.
( End of rationale.)


Privacy Policy
Last updated: December 29, 2016The Tucker Brothers LLC ("us", "we", or "our") operates http://www.nextstageapp.com and the Next Stage apps (the "Site"). This page informs you of our policies regarding the collection, use and disclosure of Personal Information we receive from users of the Site.
We use your Personal Information only for providing and improving the Site. By using the Site, you agree to the collection and use of information in accordance with this policy.
Information Collection And Use
While using our Site, we may ask you to provide us with certain personally identifiable information that can be used to contact or identify you. Personally identifiable information may include, but is not limited to your name ("Personal Information").
Log Data
Like many site operators, we collect information that your browser sends whenever you visit our Site ("Log Data").
This Log Data may include information such as your computer's Internet Protocol ("IP") address, browser type, browser version, the pages of our Site that you visit, the time and date of your visit, the time spent on those pages and other statistics.
In addition, we may use third party services such as Google Analytics that collect, monitor and analyze usage data.
The Log Data section is for businesses that use analytics or tracking services in websites or apps, like Google Analytics. For the full disclosure section, create your own Privacy Policy.
Communications
We may use your Personal Information to contact you with newsletters, marketing or promotional materials and other information, as well as to provide you with analytic data about your business.
Cookies
Cookies are files with small amount of data, which may include an anonymous unique identifier. Cookies are sent to your browser from a web site and stored on your computer's hard drive.
Like many sites, we use "cookies" to collect information. You can instruct your browser to refuse all cookies or to indicate when a cookie is being sent. However, if you do not accept cookies, you may not be able to use some portions of our Site.
Security
The security of your Personal Information is important to us, but remember that no method of transmission over the Internet, or method of electronic storage, is 100% secure. While we strive to use commercially acceptable means to protect your Personal Information, we cannot guarantee its absolute security.
Changes To This Privacy Policy
This Privacy Policy is effective as of December 26, 2016 and will remain in effect except with respect to any changes in its provisions in the future, which will be in effect immediately after being posted on this page.
We reserve the right to update or change our Privacy Policy at any time and you should check this Privacy Policy periodically. Your continued use of the Service after we post any modifications to the Privacy Policy on this page will constitute your acknowledgment of the modifications and your consent to abide and be bound by the modified Privacy Policy.
If we make any material changes to this Privacy Policy, we will notify you either through the email address you have provided us, or by placing a prominent notice on our website.
Contact Us
If you have any questions about this Privacy Policy, please contact us.


Chapter 1 Introduction to R and RMarkdown
1.1 Learning Objectives
In this lesson we will:
- get oriented to the RStudio interface
- work with R in the console
- explore RMarkdown
- be introduced to built-in R functions
- learn to use the help pages
1.2 Introduction and Motivation
There is a vibrant community out there that is collectively developing increasingly easy to use and powerful open source programming tools. The changing landscape of programming is making learning how to code easier than it ever has been. Incorporating programming into analysis workflows not only makes science more efficient, but also more computationally reproducible. In this course, we will use the programming language R, and the accompanying integrated development environment (IDE) RStudio. R is a great language to learn for data-oriented programming because it is widely adopted, user-friendly, and (most importantly) open source!
So what is the difference between R and RStudio? Here is an analogy to start us off. If you were a pilot, R is an airplane. You can use R to go places! With practice you’ll gain skills and confidence; you can fly further distances and get through tricky situations. You will become an awesome pilot and can fly your plane anywhere.
And if R were an airplane, RStudio is the airport. RStudio provides support! Runways, communication, community, and other services, and just makes your overall life easier. So it’s not just the infrastructure (the user interface or IDE), although it is a great way to learn and interact with your variables, files, and interact directly with GitHub. It’s also data science philosophy, R packages, community, and more. So although you can fly your plane without an airport and we could learn R without RStudio, that’s not what we’re going to do. We are going to take advantage of the great RStudio support, and learn R and RStudio together.
Something else to start us off is to mention that you are learning a new language here. It’s an ongoing process, it takes time, you’ll make mistakes, it can be frustrating, but it will be overwhelmingly awesome in the long run. We all speak at least one language; it’s a similar process, really. And no matter how fluent you are, you’ll always be learning, you’ll be trying things in new contexts, learning words that mean the same as others, etc, just like everybody else. And just like any form of communication, there will be miscommunications that can be frustrating, but hands down we are all better off because of it.
While language is a familiar concept, programming languages are in a different context from spoken languages, but you will get to know this context with time. For example: you have a concept that there is a first meal of the day, and there is a name for that: in English it’s “breakfast”. So if you’re learning Spanish, you could expect there is a word for this concept of a first meal. (And you’d be right: ‘desayuno’). We will get you to expect that programming languages also have words (called functions in R) for concepts as well. You’ll soon expect that there is a way to order values numerically. Or alphabetically. Or search for patterns in text. Or calculate the median. Or reorganize columns to rows. Or subset exactly what you want. We will get you increase your expectations and learn to ask and find what you’re looking for.
1.2.1 Resources
This lesson is a combination of excellent lessons by others. Huge thanks to Julie Lowndes for writing most of this content and letting us build on her material, which in turn was built on Jenny Bryan’s materials. I definitely recommend reading through the original lessons and using them as reference:
- Julie Lowndes’ Data Science Training for the Ocean Health Index
- R, RStudio, RMarkdown
- Programming in R
- Jenny Bryan’s lectures from STAT545 at UBC
- R basics, workspace and working directory, RStudio projects
- Basic care and feeding of data in R
RStudio has great resources as well:
Finally, Hadley Wickham’s book R for Data Science is a great resource to get more in depth.
1.3 R at the console
Launch RStudio/R.
Notice the default panes:
- Console (entire left)
- Environment/History (tabbed in upper right)
- Files/Plots/Packages/Help (tabbed in lower right)
FYI: you can change the default location of the panes, among many other things: Customizing RStudio.
An important first question: where are we?
If you’ve just opened RStudio for the first time, you’ll be in your Home directory. This is noted by the ~/
at the top of the console. You can see too that the Files pane in the lower right shows what is in the Home directory where you are. You can navigate around within that Files pane and explore, but note that you won’t change where you are: even as you click through you’ll still be Home: ~/
.
OK let’s go into the Console, where we interact with the live R process.
We use R to calculate things for us, so let’s do some simple math.
3*4
## [1] 12
You can assign the value of that mathematic operation to a variable, or object, in R. You do this using the assignment operator, <-
.
Make an assignment and then inspect the object you just created.
x <- 3 * 4
x
## [1] 12
In my head I hear, e.g., “x gets 12”.
All R statements where you create objects – “assignments” – have this form: objectName <- value
.
I’ll write it in the console with a hash #
, which is the way R comments so it won’t be evaluated.
## objectName <- value
## This is also how you write notes in your code to explain what you are doing.
Object names cannot start with a digit and cannot contain certain other characters such as a comma or a space. You will be wise to adopt a convention for demarcating words in names.
# i_use_snake_case
# other.people.use.periods
# evenOthersUseCamelCase
Make an assignment
this_is_a_really_long_name <- 2.5
To inspect this variable, instead of typing it, we can press the up arrow key and call your command history, with the most recent commands first. Let’s do that, and then delete the assignment:
this_is_a_really_long_name
## [1] 2.5
Another way to inspect this variable is to begin typing this_
…and RStudio will automagically have suggested completions for you that you can select by hitting the tab key, then press return.
One more:
science_rocks <- "yes it does!"
You can see that we can assign an object to be a word, not a number. In R, this is called a “string”, and R knows it’s a word and not a number because it has quotes " "
. You can work with strings in your data in R pretty easily, thanks to the stringr
and tidytext
packages. We won’t talk about strings very much specifically, but know that R can handle text, and it can work with text and numbers together.
Strings and numbers lead us to an important concept in programming: that there are different “classes” or types of objects. An object is a variable, function, data structure, or method that you have written to your environment. You can see what objects you have loaded by looking in the “environment” pane in RStudio. The operations you can do with an object will depend on what type of object it is. This makes sense! Just like you wouldn’t do certain things with your car (like use it to eat soup), you won’t do certain operations with character objects (strings), for example.
Try running the following line in your console:
"Hello world!" * 3
What happened? Why?
You may have noticed that when assigning a value to an object, R does not print anything. You can force R to print the value by using parentheses or by typing the object name:
weight_kg <- 55 # doesn't print anything
(weight_kg <- 55) # but putting parenthesis around the call prints the value of `weight_kg`
## [1] 55
weight_kg # and so does typing the name of the object
## [1] 55
Now that R has weight_kg
in memory, we can do arithmetic with it. For instance, we may want to convert this weight into pounds (weight in pounds is 2.2 times the weight in kg):
2.2 * weight_kg
## [1] 121
We can also change a variable’s value by assigning it a new one:
weight_kg <- 57.5
2.2 * weight_kg
## [1] 126.5
This means that assigning a value to one variable does not change the values of other variables. For example, let’s store the animal’s weight in pounds in a new variable, weight_lb
:
weight_lb <- 2.2 * weight_kg
and then change weight_kg
to 100.
weight_kg <- 100
What do you think is the current content of the object weight_lb
? 126.5 or 220? Why?
1.3.1 Error messages are your friends
Implicit contract with the computer / scripting language: Computer will do tedious computation for you. In return, you will be completely precise in your instructions. Typos matter. Case matters. Pay attention to how you type.
Remember that this is a language, not unsimilar to English! There are times you aren’t understood – it’s going to happen. There are different ways this can happen. Sometimes you’ll get an error. This is like someone saying ‘What?’ or ‘Pardon’? Error messages can also be more useful, like when they say ‘I didn’t understand this specific part of what you said, I was expecting something else’. That is a great type of error message. Error messages are your friend. Google them (copy-and-paste!) to figure out what they mean.
And also know that there are errors that can creep in more subtly, without an error message right away, when you are giving information that is understood, but not in the way you meant. Like if I’m telling a story about tables and you’re picturing where you eat breakfast and I’m talking about data. This can leave me thinking I’ve gotten something across that the listener (or R) interpreted very differently. And as I continue telling my story you get more and more confused… So write clean code and check your work as you go to minimize these circumstances!
1.3.2 Logical operators and expressions
A moment about logical operators and expressions. We can ask questions about the objects we just made.
==
means ‘is equal to’!=
means ‘is not equal to’<
means ` is less than’>
means ` is greater than’<=
means ` is less than or equal to’>=
means ` is greater than or equal to’
weight_kg == 2
## [1] FALSE
weight_kg >= 30
## [1] TRUE
weight_kg != 5
## [1] TRUE
Shortcuts You will make lots of assignments and the operator
<-
is a pain to type. Don’t be lazy and use=
, although it would work, because it will just sow confusion later. Instead, utilize RStudio’s keyboard shortcut: Alt + - (the minus sign). Notice that RStudio automagically surrounds<-
with spaces, which demonstrates a useful code formatting practice. Code is miserable to read on a good day. Give your eyes a break and use spaces. RStudio offers many handy keyboard shortcuts. Also, Alt+Shift+K brings up a keyboard shortcut reference card.
1.3.3 Clearing the environment
Now look at the objects in your environment (workspace) – in the upper right pane. The workspace is where user-defined objects accumulate.
You can also get a listing of these objects with a few different R commands:
objects()
## [1] "science_rocks" "this_is_a_really_long_name"
## [3] "weight_kg" "weight_lb"
## [5] "x"
ls()
## [1] "science_rocks" "this_is_a_really_long_name"
## [3] "weight_kg" "weight_lb"
## [5] "x"
If you want to remove the object named weight_kg
, you can do this:
rm(weight_kg)
To remove everything:
rm(list = ls())
or click the broom in RStudio’s Environment pane.
1.4 RMarkdown
Now that we know some basic R syntax, let’s learn a little about RMarkdown. You will drive yourself crazy (and fail to generate a reproducible workflow!) running code directly in the console. RMarkdown is really key for collaborative research, so we’re going to get started with it early and then use it for the rest of the course.
An RMarkdown file will allow us to weave markdown text with chunks of R code to be evaluated and output content like tables and plots.
File -> New File -> RMarkdown… -> Document of output format HTML, OK.
You can give it a Title like “My Project”. Then click OK.
OK, first off: by opening a file, we are seeing the 4th pane of the RStudio console, which is essentially a text editor. This lets us organize our files within RStudio instead of having a bunch of different windows open.
Let’s have a look at this file — it’s not blank; there is some initial text is already provided for you. Notice a few things about it:
- There are white and grey sections. R code is in grey sections, and other text is in white.
Let’s go ahead and “Knit HTML” by clicking the blue yarn at the top of the RMarkdown file. When you first click this button, RStudio will prompt you to save this file. Create a new folder for it somewhere that you will be able to find again (such as your Desktop or Documents), and name that folder something you’ll remember (like training_files
).
What do you notice between the two?
Notice how the grey R code chunks are surrounded by 3 backticks and {r LABEL}
. These are evaluated and return the output text in the case of summary(cars)
and the output plot in the case of plot(pressure)
.
Notice how the code plot(pressure)
is not shown in the HTML output because of the R code chunk option echo=FALSE
.
More details…
This RMarkdown file has 2 different languages within it: R and Markdown.
We don’t know that much R yet, but you can see that we are taking a summary of some data called ‘cars’, and then plotting. There’s a lot more to learn about R, and we’ll get into it for the next few days.
The second language is Markdown. This is a formatting language for plain text, and there are only about 15 rules to know.
Notice the syntax for:
- headers get rendered at multiple levels:
#
,##
- bold:
**word**
There are some good cheatsheets to get you started, and here is one built into RStudio: Go to Help > Markdown Quick Reference
Important: note that the hashtag #
is used differently in Markdown and in R:
- in R, a hashtag indicates a comment that will not be evaluated. You can use as many as you want:
#
is equivalent to######
. It’s just a matter of style. - in Markdown, a hashtag indicates a level of a header. And the number you use matters:
#
is a “level one header”, meaning the biggest font and the top of the hierarchy.###
is a level three header, and will show up nested below the#
and##
headers.
Learn more: http://rmarkdown.rstudio.com/
1.4.1 Your Turn
- In Markdown, Write some italic text, and make a numbered list. And add a few subheaders. Use the Markdown Quick Reference (in the menu bar: Help > Markdown Quick Reference).
- Reknit your html file.
1.4.2 Code chunks
OK. Now let’s practice with some of those commands.
Create a new chunk in your RMarkdown first in one of these ways:
- click “Insert > R” at the top of the editor pane
- type by hand ```{r} ```
- if you haven’t deleted a chunk that came with the new file, edit that one
Now, let’s write some R code.
x <- 4*3
x
Now, hitting return does not execute this command; remember, it’s just a text file. To execute it, we need to get what we typed in the the R chunk (the grey R code) down into the console. How do we do it? There are several ways (let’s do each of them):
- copy-paste this line into the console.
- select the line (or simply put the cursor there), and click ‘Run’. This is available from
- the bar above the file (green arrow)
- the menu bar: Code > Run Selected Line(s)
- keyboard shortcut: command-return
- click the green arrow at the right of the code chunk
1.4.3 Your turn
Add a few more commands to your file. Execute them by trying the three ways above. Then, save your R Markdown file.
1.5 R functions, help pages
So far we’ve learned some of the basic syntax and concepts of R programming, how to navigate RStudio, and RMarkdown, but we haven’t done any complicated or interesting programming processes yet. This is where functions come in!
R has a mind-blowing collection of built-in functions that are used with the same syntax: function name with parentheses around what the function needs in order to do what it was built to do. When you type a function like this, we say we are “calling the function”. function_name(argument1 = value1, argument2 = value2, ...)
.
As our first function, we will introduce read.csv
, which will be in the first lines of many of your future scripts. It does exactly what it says, it reads in a csv file to R, but we don’t quite know how to use it yet. The help pages in RStudio will help us with this!
To access the help page for read.csv
, enter the following into your console:
?read.csv
The help pane will show up in the lower right hand corner of your RStudio.
You can see from this pane that the help page for this function is actually for a family of related functions that read in data. The help page tells the name of the package in the top left, and is broken down into sections:
- Description: An extended description of what the function does.
- Usage: The arguments of the function(s) and their default values.
- Arguments: An explanation of the data each argument is expecting.
- Details: Any important details to be aware of.
- Value: The data the function returns.
- See Also: Any related functions you might find useful.
- Examples: Some examples for how to use the function.
The help for read.csv
has a lot of information in it, as this function has a lot of arguments, but the first one seems pretty critical. We have to tell it what file to look for. Let’s get a file!
1.5.1 Download a file from the Arctic Data Center
Navigate to this dataset by Craig Tweedie that is published on the Arctic Data Center. Craig Tweedie. 2009. North Pole Environmental Observatory Bottle Chemistry. Arctic Data Center. doi:10.18739/A25T3FZ8X., and download the first csv file called “BGchem2008data.csv”
Move this file from your Downloads folder into a place you can more easily find it. I recommend creating a folder called data
in your previously-created directory training_files
, and putting the file there.
1.5.2 Use a function to read a file into R
Now we have to tell read.csv
how to find the file. We do this using the file
argument which you can see in usage section in the help page. In RMarkdown, you can either use absolute paths (which will start with your home directory ~/
) or paths relative to the location of the RMarkdown. RStudio and RMarkdown have some great autocomplete capabilities when using relative paths, so we will go that route. Assuming you have moved your file to a folder within training_files
called data
, your read.csv
call will look like this:
bg_chem <- read.csv("data/BGchem2008data.csv")
You should now have an object of the class data.frame
in your environment called bg_chem
. Check your environment pane to ensure this is true.
Note that in the help page there are a whole bunch of arguments that we didn’t use in the call above. Some of the arguments in function calls are optional, and some are required. Optional arguments will be shown in the usage section with a name = value
pair, with the default value shown. If you do not specify a name = value
pair for that argument in your function call, the function will assume the default value (example: header = TRUE
for read.csv
). Required arguments will only show the name of the argument, without a value. Note that the only required argument for read.csv
is file
.
You can always specify arguments in name = value
form. But if you do not, R attempts to resolve by position. So above, it is assumed that we want file = "data/BGchem2008data.csv"
, since file is the first argument. If we wanted to add another argument, say stringsAsFactors
, we need to specify it explicitly using the name = value
pair, since the second argument is header
. For functions I call often, I use this resolve by position for the first argument or maybe the first two. After that, I always use name = value
.
Many R users (including myself) will override the default stringsAsFactors
argument using the following call:
bg_chem <- read.csv("data/BGchem2008data.csv", stringsAsFactors = FALSE)
1.5.3 Your turn
Exercise: Talk to your neighbor(s) and look up the help file for a function that you know or expect to exist. Here are some ideas:
?getwd()
,?plot()
,min()
,max()
,?mean()
,?log()
).
And there’s also help for when you only sort of remember the function name: double-questionmark:
??install
Not all functions have (or require) arguments:
date()
## [1] "Mon Feb 11 14:37:23 2019"
1.6 Using data.frames
A data.frame
is a two dimensional data structure in R that mimics spreadsheet behavior. It is a collection of rows and columns of data, where each column has a name and represents a variable, and each row represents a measurement of that variable. When we ran read.csv
, the object bg_chem
that we created is a data.frame
.  Here are a few, give them each a try:
- click on the word
bg_chem
in the environment pane - click on the arrow next to
bg_chem
in the environment pane - execute
head(bg_chem)
in the console - execute
View(bg_chem)
in the console
Usually we will want to run functions on individual columns in a data.frame
. To call a specific column, we use the list subset operator $
. Say you want to look at the first few rows of the Date
column only. This would do the trick:
head(bg_chem$Date)
## [1] "2008-03-21" "2008-03-21" "2008-03-21" "2008-03-21" "2008-03-21"
## [6] "2008-03-22"
How about calculating the mean temperature of all the CTD samples?
mean(bg_chem$CTD_Temperature)
## [1] -0.9646915
Or, if we want to save this to a variable to use later:
mean_temp <- mean(bg_chem$CTD_Temperature)
You can also create basic plots using the list subset operator.
plot(bg_chem$CTD_Depth, bg_chem$CTD_Temperature)
There are many more advancted tools and functions in R that will enable you to make better plots using cleaner syntax, we will cover some of these later in the course.
1.6.1 Your Turn
Exercise: Spend a few minutes exploring this dataset. Try out different functions on columns using the list subset operator and experiment with different plots.
1.7 Troubleshooting
Here are two common errors for new users:
1.7.1 I just entered a command and nothing is happening
It may be because you didn’t complete a command: is there a little +
in your console? R is saying that it is waiting for you to finish. In the example below, I need to close that parenthesis.
> x <- seq(1, 10
+
You can either just type the closing parentheses here and push return, or push the esc
button twice.
1.7.2 R says my object is not found
New users will frequently see errors that look like this: Error in mean(myobject) : object 'myobject' not found
This means that you do not have an object called myobject
saved in your environment. The common reasons for this are:
- typeo: make sure your object name is spelled exactly like what shows up in the console. Remember R is case sensitive.
- not writing to a variable: note that the object is only saved in the environment if you use the assignment operator, eg:
myobject <- read.csv(...)
- not executing the line in your RMarkdown: remember that writing a line of code in RMarkdown is not the same as writing in the console, you have to execute the line of code using command + enter, running the chunk, or one of the other ways outlined in the RMarkdown section of this training


--- layout: default title: Audio Video Virtual Demos in Vancouver excerpt: Audio video virtual demos from West Coast Audio Video in Vancouver. Interested in a demo on any of our audio video systems? Visit our store today. permalink: /demos/virtual-demo article: true ticker: false ---


Use the size of a known object to gauge the size of another!
All measurements in inches! Works best with objects that are facing forward and cropped to just include the object.
Image URL:
Width:
Height:
Add Object
Assuming a standard banana is 7 inches wide and 4 inches tall (from the side)...
Your object is than a standard banana's width.
Your object is than a standard banana's height.
Share this comparison: Check Another Object