|
Standard Reference Data Program |
Data Gateway |
Chemistry WebBook |
|
NIST subscription sites provide data under the NIST Standard Reference Data Program, but require an annual fee to access. The purpose of the fee is to recover costs associated with the development of data collections included in such sites. Your institution may already be a subscriber. Follow the links above to find out more about the data in these sites and their terms of usage.
Go To: Top, References, Notes / Error Report
Data compilation copyright by the U.S. Secretary of Commerce on behalf of the U.S.A. All rights reserved.
Data evaluated as indicated in comments:
L - S.G. Lias
Data compiled as indicated in comments:
LBLHLM - S.G. Lias, J.E. Bartmess, J.F. Liebman, J.L. Holmes, R.D. Levin, and W.G. Mallard
LLK - S.G. Lias, R.D. Levin, and S.A. Kafafi
RDSH - H.M. Rosenstock, K. Draxl, B.W. Steiner, and J.T. Herron
B - J.E. Bartmess
View reactions leading to ClF+ (ion structure unspecified)
| Quantity | Value | Units | Method | Reference | Comment |
|---|---|---|---|---|---|
| IE (evaluated) | 12.66 ± 0.01 | eV | N/A | N/A | L |
| EA (eV) | Method | Reference | Comment |
|---|---|---|---|
| 1.50 ± 0.30 | NBIE | Dispert and Lacmann, 1978 | From CF2Cl2; B |
| 2.86 ± 0.20 | EIAE | Dudin, Gorokhov, et al., 1979 | From ClF3; B |
| >1.50 ± 0.20 | EIAE | Illenberger, Baumgartel, et al., 1979 | From CFCl3; B |
| >1.50 ± 0.40 | EIAE | Thynne, 1972 | From SF5Cl; B |
| IE (eV) | Method | Reference | Comment |
|---|---|---|---|
| 12.74 ± 0.01 | PE | DeKock, Higginson, et al., 1972 | LLK |
| 12.66 ± 0.01 | PE | DeKock, Higginson, et al., 1972 | LLK |
| 12.74 ± 0.01 | PE | Anderson, Mamantov, et al., 1971 | LLK |
| 12.66 ± 0.01 | PE | Anderson, Mamantov, et al., 1971 | LLK |
| 12.65 ± 0.01 | PI | Dibeler, Walker, et al., 1970 | RDSH |
| 12.7 ± 0.3 | EI | Irsa and Friedman, 1958 | RDSH |
| 12.77 | PE | Dyke, Josland, et al., 1984 | Vertical value; LBLHLM |
| Ion | AE (eV) | Other Products | Method | Reference | Comment |
|---|---|---|---|---|---|
| Cl+ | 12.04 | F- | PI | Dibeler, Walker, et al., 1970 | RDSH |
| Cl+ | 15.50 ± 0.04 | F | PI | Dibeler, Walker, et al., 1970 | RDSH |
Go To: Top, Gas phase ion energetics data, Notes / Error Report
Data compilation copyright by the U.S. Secretary of Commerce on behalf of the U.S.A. All rights reserved.
Dispert and Lacmann, 1978
Dispert, H.; Lacmann, K.,
Negative ion formation in collisions between potassium and fluoro- and chloromethanes: Electron affinities and bond dissociation energies,
Int. J. Mass Spectrom. Ion Phys., 1978, 28, 49. [all data]
Dudin, Gorokhov, et al., 1979
Dudin, A.V.; Gorokhov, L.N.; Baluev, A.V.,
A Study of the Electron Impact Ionization of Chlorine Trifluoride and Its Decomposition Products by Mass Spectrometry, Izv. Akad. Nauk SSR Ser. Khim. 2408, 1979. [all data]
Illenberger, Baumgartel, et al., 1979
Illenberger, T.; Baumgartel, H.; Scheunemann, H.,
Negative Ion Formation in CF2Cl2, CF3Cl, and CFCl3 Following Low Energy (0-10eV) Impact with Near Monoenergetic Electrons,
Chem. Phys., 1979, 37, 21. [all data]
Thynne, 1972
Thynne, J.C.J.,
Negative Ion Studies with a Time-of-Flight Mass Spectrometer.,
Dyn. Mass Spectrom., 1972, 3, 67. [all data]
DeKock, Higginson, et al., 1972
DeKock, R.L.; Higginson, B.R.; Lloyd, D.R.; Breeze, A.; Cruickshank, D.W.J.; Armstrong, D.R.,
Photoelectron spectra of halides. V. Experimental theoretical study of the electronic structures of ClF, ClF3, BrF and BrF3,
Mol. Phys., 1972, 24, 1059. [all data]
Anderson, Mamantov, et al., 1971
Anderson, C.P.; Mamantov, G.; Bull, W.E.; Grimm, F.A.; Carver, J.C.; Carlson, T.A.,
Photoelectron spectrum of chlorine monofluoride,
Chem. Phys. Lett., 1971, 12, 137. [all data]
Dibeler, Walker, et al., 1970
Dibeler, V.H.; Walker, J.A.; McCulloh, K.E.,
Photoionization study of chlorine monofluoride and the dissociation energy of fluorine,
J. Chem. Phys., 1970, 53, 4414. [all data]
Irsa and Friedman, 1958
Irsa, A.P.; Friedman, L.,
Mass spectra of halogen fluorides,
J. Inorg. Nucl. Chem., 1958, 6, 77. [all data]
Dyke, Josland, et al., 1984
Dyke, J.M.; Josland, G.D.; Snijders, J.G.; Boerrigter, P.M.,
Ionization energies of the diatomic halogens and interhalogens studied with relativistic hartree-fock-slater calculations,
Chem. Phys., 1984, 91, 419. [all data]
Go To: Top, Gas phase ion energetics data, References
| AE | Appearance energy |
| EA | Electron affinity |
| IE (evaluated) | Recommended ionization energy |
Copyright for NIST Standard Reference Data is governed by the Standard Reference Data Act.
|
Standard Reference Data Program |
Data Gateway |
Chemistry WebBook |
If you have comments or questions about this site, please contact us.


Blacklist
struct Blacklist
Stores metadata associated with a blacklist
-
The name of the blacklist
Declaration
Swift
private let name: String
-
Writes the metadata for a new blacklist to the default store
- Parameters:
- value: The name of the list
- url: The list’s URL
- fileType: The format of file containing the list (JSON, hosts, or built-in)
- entryCount: The number of rules in the list
- etag: The HTML etag value of the list at its URL
Declaration
Swift
init(withListName value: String, url: String, fileType: String, entryCount: String, etag: String)
Parameters
value
The name of the list
url
The list’s URL
fileType
The format of file containing the list (JSON, hosts, or built-in)
entryCount
The number of rules in the list
etag
The HTML etag value of the list at its URL
- Parameters:
-
Writes the metadata for a new blacklist to the default store
- Parameters:
- withListName: The name of the list
- url: The list’s URL
- fileType: The format of file containing the list (JSON, hosts, or built-in)
Declaration
Swift
init(withListName: String, url: String, fileType: String)
Parameters
withListName
The name of the list
url
The list’s URL
fileType
The format of file containing the list (JSON, hosts, or built-in)
- Parameters:
-
Writes the metadata for a new blacklist to the default store
- Parameters:
- withListName: The name of the list
Declaration
Swift
init(withListName: String)
Parameters
withListName
The name of the list
- Parameters:
-
Given a key, returns the stored default value of that key or nil
Parameters:
- key: The key for the value to be returned
Returns
The stored value or nil
Declaration
Swift
func getValueForKey(key: String) -> String?
Parameters
key
The key for the value to be returned
Return Value
The stored value or nil
-
Given a key value pair, writes the value to the default store
- Parameters:
- value: The value to be stored
- forKey: The key to be employed for writing the value
Declaration
Swift
func setValueWithKey(value: String, forKey: String)
Parameters
value
The value to be stored
forKey
The key to be employed for writing the value
- Parameters:
-
Given a key, deletes from the store the key value pair
- Parameters:
- key: The key of the key value pair to be deleted
Declaration
Swift
func removeValueForKey(key: String)
Parameters
key
The key of the key value pair to be deleted
- Parameters:
-
Deletes all key value pairs that have been written to the default store that are associated with the list
Declaration
Swift
func removeAllValues()


- A general understanding of the Internet and the World Wide Web (WWW).
- Good working knowledge of HyperText Markup Language (HTML).
- Some programming experience. If you are new to programming, try one of the tutorials linked on the main page about JavaScript.
Introduction
JavaScript is a cross-platform, object-oriented scripting language. It is a small and lightweight language. Inside a host environment (for example, a web browser), JavaScript can be connected to the objects of its environment to provide programmatic control over them.
JavaScript contains a standard library of objects, such as Array, Date, and Math, and a core set of language elements such as operators, control structures, and statements. Core JavaScript can be extended for a variety of purposes by supplementing it with additional objects; for example:
What you should already know
This guide assumes you have the following basic background:
JavaScript and Java
avaScript and Java are similar in some ways but fundamentally different in some others. The JavaScript language resembles Java but does not have Java's static typing and strong type checking. JavaScript follows most Java expression syntax, naming conventions and basic control-flow constructs which was the reason why it was renamed from LiveScript to JavaScript.
In contrast to Java's compile-time system of classes built by declarations, JavaScript supports a runtime system based on a small number of data types representing numeric, Boolean, and string values. JavaScript has a prototype-based object model instead of the more common class-based object model. The prototype-based model provides dynamic inheritance; that is, what is inherited can vary for individual objects. JavaScript also supports functions without any special declarative requirements. Functions can be properties of objects, executing as loosely typed methods.
JavaScript is a very free-form language compared to Java. You do not have to declare all variables, classes, and methods. You do not have to be concerned with whether methods are public, private, or protected, and you do not have to implement interfaces. Variables, parameters, and function return types are not explicitly typed.
Hello world
To get started with writing JavaScript, open the Scratchpad and write your first "Hello world" JavaScript code:
Select the code in the pad and hit Ctrl+R to watch it unfold in your browser!
Variables
This guide assumes you have the following basic background:
Declaring variables
This guide assumes you have the following basic background:
Variable scope
You can declare a variable in three ways:
Global variables
Global variables are in fact properties of the global object. In web pages the global object is window, so you can set and access global variables using the window.variable syntax.
Constants
You can create a read-only, named constant with the const keyword. The syntax of a constant identifier is the same as for a variable identifier: it must start with a letter, underscore or dollar sign and can contain alphabetic, numeric, or underscore characters.
const PI = 3.14;
A constant cannot change value through assignment or be re-declared while the script is running. It has to be initialized to a value.
The scope rules for constants are the same as those for let block scope variables. If the const keyword is omitted, the identifier is assumed to represent a variable.
You cannot declare a constant with the same name as a function or variable in the same scope. For example:
// THIS WILL CAUSE AN ERROR function f() {}; const f = 5; // THIS WILL
CAUSE AN ERROR ALSO function f() { const g = 5; var g; //statements
}
However, object attributes are not protected, so the following statement is executed without problems.
const MY_OBJECT = {"key": "value"}; MY_OBJECT.key = "otherValue";
Data types
This guide assumes you have the following basic background:
if...else statement
Use the if statement to execute a statement if a logical condition is true. Use the optional else clause to execute a statement if the condition is false. An if statement looks as follows:
if (condition) { statement_1; } else { statement_2; }
condition can be any expression that evaluates to true or false. See Boolean for an explanation of what evaluates to true and false. If condition evaluates to true, statement_1 is executed; otherwise, statement_2 is executed. statement_1 and statement_2 can be any statement, including further nested if statements.
You may also compound the statements using else if to have multiple conditions tested in sequence, as follows:
if (condition_1) { statement_1; } else if (condition_2) { statement_2;
} else if (condition_n) { statement_n; } else { statement_last; }
while statement
This guide assumes you have the following basic background:
Function declarations
This guide assumes you have the following basic background:
function square(number) { return number * number; }


=== Test case: lasp_SUITE:sql_combined_view_test/1 (click for source code) === Config value: [{watchdog,<0.4698.0>}<EMAIL_ADDRESS>{tc_group_properties,[]}, {tc_group_path,[]}, {data_dir,"/home/gcreupelandt/Documents/MEMOIRE/lasp/_build/test/lib/lasp/test/lasp_SUITE_data/"}<EMAIL_ADDRESS>=== Current directory is<EMAIL_ADDRESS>=== Started at 2020-09-27 16:50:24
*** User 2020-09-27 16:50:24.358 *** Beginning case: sql_combined_view_test
*** User 2020-09-27 16:50:24.387 *** 16:50:24.387 [info] Configured peer_service_manager partisan_pluggable_peer_service_manager on node 'runner@gcreupelandt-N551VW'
*** User 2020-09-27 16:50:24.388 *** 16:50:24.388 [info] Using node name: 'runner@gcreupelandt-N551VW'
*** User 2020-09-27 16:50:24.566 *** 16:50:24.566 [info] Partisan listening on {127,0,1,1}:47121 listen_addrs: [#{ip => {127,0,1,1},port => 47121}]
*** User 2020-09-27 16:50:24.572 *** 16:50:24.572 [info] Not using container orchestration; disabling.

*** User 2020-09-27 16:50:26.009 *** 16:50:26.009 [info] Disabling blocking sync...
*** User 2020-09-27 16:50:26.014 *** 16:50:26.014 [info] Configured peer_service_manager partisan_pluggable_peer_service_manager on node 'node-1@gcreupelandt-N551VW'
*** User 2020-09-27 16:50:27.356 *** Loading applications on node: 'node-2@gcreupelandt-N551VW'
*** User 2020-09-27 16:50:27.478 *** 16:50:27.478 [info] Enabling membership...
*** User 2020-09-27 16:50:27.479 *** 16:50:27.479 [info] Disabling blocking sync...
*** User 2020-09-27 16:50:27.484 *** 16:50:27.483 [info] Configured peer_service_manager partisan_pluggable_peer_service_manager on node 'node-2@gcreupelandt-N551VW'
*** User 2020-09-27 16:50:28.883 *** Loading applications on node: 'node-3@gcreupelandt-N551VW'
*** User 2020-09-27 16:50:29.034 *** 16:50:29.034 [info] Enabling membership...
*** User 2020-09-27 16:50:29.036 *** 16:50:29.036 [info] Disabling blocking sync...
*** User 2020-09-27 16:50:29.045 *** 16:50:29.045 [info] Configured peer_service_manager partisan_pluggable_peer_service_manager on node 'node-3@gcreupelandt-N551VW'
*** User 2020-09-27 16:50:29.344 *** Joining node: 'node-3@gcreupelandt-N551VW' to 'runner@gcreupelandt-N551VW' at listen_addr [#{ip => {127, 0, 1, 1}, port => 44681}]
*** User 2020-09-27 16:50:30.353 *** Joining issued: 'node-3@gcreupelandt-N551VW' to 'runner@gcreupelandt-N551VW' at listen_addrs [#{ip => {127, 0, 1, 1}, port => 44681}]
*** User 2020-09-27 16:50:30.354 *** Joining node: 'node-2@gcreupelandt-N551VW' to 'runner@gcreupelandt-N551VW' at listen_addr [#{ip => {127, 0, 1, 1}, port => 40509}]
*** User 2020-09-27 16:50:31.398 *** Joining issued: 'node-2@gcreupelandt-N551VW' to 'runner@gcreupelandt-N551VW' at listen_addrs [#{ip => {127, 0, 1, 1}, port => 40509}]
*** User 2020-09-27 16:50:31.399 *** Joining node: 'node-1@gcreupelandt-N551VW' to 'runner@gcreupelandt-N551VW' at listen_addr [#{ip => {127, 0, 1, 1}, port => 43495}]
*** User 2020-09-27 16:50:32.457 *** Joining issued: 'node-1@gcreupelandt-N551VW' to 'runner@gcreupelandt-N551VW' at listen_addrs [#{ip => {127, 0, 1, 1}, port => 43495}]
*** User 2020-09-27 16:50:32.518 *** Waiting for join to complete with manager: partisan_pluggable_peer_service_manager
*** User 2020-09-27 16:50:32.518 *** Finished.
*** CT 2020-09-27 16:50:32.518 *** COVER INFO Adding nodes to cover test: ['runner@gcreupelandt-N551VW']
*** CT 2020-09-27 16:50:32.520 *** COVER INFO Successfully added nodes to cover test: []
*** User 2020-09-27 16:50:32.542 *** Tokens: [{select,1,select}, {var,1,title}, {',',1}, {var,1,rating}, {from,1,from}, {var,1,classics}, {where,1,where}, {var,1,year}, {comparator,1,'=>'}, {integer,1,1960}, {intersection,1,'and'}, {var,1,year}, {comparator,1,'<='}, {integer,1,1965}]
*** User 2020-09-27 16:50:32.542 *** Parse Tree: {query, {select,[title,rating]}, {from,classics}, {where, {intersection, {predicate,{var,year},'=>',1960}, {predicate,{var,year},'<=',1965}}}}
*** User 2020-09-27 16:50:32.644 *** Tokens: [{select,1,select}, {var,1,title}, {from,1,from}, {var,1,filtered}, {where,1,where}, {var,1,rating}, {comparator,1,'=>'}, {integer,1,80}]
*** User 2020-09-27 16:50:32.645 *** Parse Tree: {query,{select,[title]}, {from,filtered}, {where,{predicate,{var,rating},'=>',80}}}
*** User 2020-09-27 16:50:32.746 *** Case finished: sql_combined_view_test
*** System report during lasp_SUITE:sql_combined_view_test/1 2020-09-27 16:50:39.783 *** =INFO REPORT==== 27-Sep-2020::16:50:39.782683 === application: lasp exited: stopped type: temporary
*** User 2020-09-27 16:50:39.783 *** 16:50:39.782 [info] Application lasp exited with reason: stopped
*** System report during lasp_SUITE:sql_combined_view_test/1 2020-09-27 16:50:39.786 *** =INFO REPORT==== 27-Sep-2020::16:50:39.786379 === application: partisan exited: stopped type: temporary
*** User 2020-09-27 16:50:39.786 *** 16:50:39.786 [info] Application partisan exited with reason: stopped
=== Ended at 2020-09-27 16:50:39 === successfully completed test case === === Returned value: ok
Test run history | Top level test index | Latest test result


This section is designed so that we can all share useful links or any useful information to progress on our path to being better developers.
For example we can share the following:
- Useful websites for web developers, for example websites where you can find free icons, images, illustrations ...
- Websites where one can learn to program for free.
- Books that you have read or that you are reading.
- Youtube channels.
- Podcasts.
- Platforms of code challenges.
- Mobile apps.
- Games.
The above are just examples, feel free to share what you think is helpful.
How can I share?
- Enter the document Useful-links.html.
- Then place the container div with the class info-container, inside it are the containers that must be modified.
- Inside the containers, we have an h3 (title of the section) and a ul with several li.
- Within the li share your useful links along with a small description.


{% extends "format.html" %} {% load static %} {% load filter %} {% block title %}StocksEra | Senate Watcher{% endblock %} {% block additional_script %} {% endblock %} {% block onload_properties%}load_overview_table();load_daily_summary();load_ticker_stats();{% endblock %} {% block main_nav %} Stocksera / Senate {% endblock %} {% block main_content %}
In recent days, there are many scrutiny on the trades made by government officials, as they seem to time their buys & sells almost perfectly - with the help of insider information. Analyse trades made by Senators in the past 5 years to keep track of their movements.


Facets and product results.| Learn a bit more |
insight.
YoY monthly facet usage
Expand (or not) on the summary above.
insight
Global and local facets are used differently
Overall, searches pertaining to Hike & Camp predominate which was not surprising - backpacks, tents, sunglasses and hats.
Adjusted for misspellings, The North Face and Arc'teryx are really our top brand searches Consolidating these instances brings a few brands up into the top ten and reorders the bottom slots a little.
Adjusted for plurals, looks like our visitors are getting outside this summer - backpacks, tents and sleeping bags are the top terms.
Two terms dominate the volume; Men's Clothing and Women's Backpacks. Given the vast disparity between these values and the third place term there is probably a larger issue at work here. From looking at historical data, it is very uncommon for visitors to be so grammatically correct in their searches, so the inclusion of the apostrophe in the gender values is an indication that these instances are most likely due to promotional elements driving traffic to search PLPs. This is a limitation in how we have implemented Omniture.
Adjusting for misspellings and plurals within this category is difficult at best, there are just too many variations. But as the data shows, the top brands and top categories are represented within the top ten results.
Facets & MMR
Facets are broken down into two groups; global and local. Simplistically, global facets show up on all PLPs and are: Brands, Sizes, Colors, Prices, Sale, and Customer Review. Global facets always appear at the top of the list and in this order which is defined in the BCC. Local facets on the other hand are category specific and theoretically pertain directly to the products shown on the page. They are shown after the global facets and their order is also defined in the BCC.


Dynamic Tabs: Markdown Write-Preview
Write markdown syntax in the text area and click the preview button to show the reasult
Write
Preview


easy-mail
The easy-mail API provides a simple wrapper around the JavaMail APi and utilities for transforming HTML with CSS to provide greater cross client support for html email message rendering.
easy-mail accepts HTML input and performs the following transformations on it before using it for the mail message body.
- Calculate effective styles of all elements ad write them to their style attribute.
- Remove style declarations form head of document.
- Remove class attributes form all elements.
- Embed all images referneces from the HTML document as relative URLs. (Fully qualified URLS will continue to link to their remote image resource)
For tips on writing effective HTML input for easy-mail please refer to this wiki page: Tips for Writing HTML Templates for Input to easy mail
Getting easy-mail
The latest easy-mail release can be downloaded directly from bintray or you can configure your build to fetch them like this (gradle example):
repositories {
jcenter()
}
dependencies {
compile group: 'com.github.jaystgelais', name: 'easy-mail', version: '0.2.0'
}
Using easy-mail
Suppose the following resources are available on your classpath:
/mailcontent
|--+ MyMailMessage.html
|--+ /css
|--+ mail-style.css
|--+ /images
|--+ company-logo.jpeg
The following code would send an email based on /mailcontent/MyMailMessage.html and it's linked content.
import javax.mail.Session;
import com.github.jaystgelais.easymail.EmailMessage;
import com.github.jaystgelais.easymail.HtmlContentProvider;
import com.github.jaystgelais.easymail.URLHtmlContentProvider;
...
Session mailSession = <setup mail session>
HtmlContentProvider contentProvider
= new URLHtmlContentProvider(getClass().getResource("./EmbeddedImageTest.html"));
EmailMessage message = new<EMAIL_ADDRESS>"Hey check out easy-mail!", contentProvider)
<EMAIL_ADDRESS>.build();
message.send(mailSession);
Extending easy-mail
The main extension point for easy-mail is the HtmlContetProvider interface. Implementing this interface is you entry point to provided HTML content form your favorite HTML template framework.
easy-mail Versions
This project's version scheme adheres to the guidelines of Semantic Vesrioning 2.0.0.
These guidelines state that, given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards-compatible manner, and
- PATCH version when you make backwards-compatible bug fixes.
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
The only exception to this scheme is for version before 1.0.0. 0.x.x versions are considered experimental and allow for incompatible API changes between MINOR versions. Once version 1.0.0 is released, the rules above apply to future versions.


Fapswitch is a method to generate MOFs as functionalised derivatives of known MOFs. For every visit to this page, a new MOF will be generated randomly from billions of combinations of functional group modifications of known MOFs.
More information can be found in the publication: In preparation.


MKRandoms Class Reference
| Inherits from | MKObject : NSObject |
| Declared in | MKRandoms.h |
Overview
The MKRandoms object preforms methods that return random values. It can work with arrays or just integes to get random values.
Tasks
Randoms with Arrays
-
- randomFromArray:repeat:
Returns a random object from a given array. -
- randomArrayWithArray:
Returns an array resorted in a random order.
Randoms with Integers
-
- randomNumberOutOf:
Returns and random integer between 0 and a given number.
Instance Methods
randomArrayWithArray:
Returns an array resorted in a random order.
- (NSArray *)randomArrayWithArray:(NSArray *)anArray
Parameters
- anArray
- The array to resort in a random order.
Declared In
MKRandoms.h


Firstly, I have to join a server or play the campaign per ingame. Horrible!
I'll be happy, if Battlelog is released to use it for MoH.
You have 2-man squads and if you are ingame, you can't change your squad. You have to create a Party with your friends and then join a server so that all of you are splited in 2-man squads and no-one is alone. (Until we understood this, we really really rejoined!)
The game feels smoother than battlefield. I don't know why this is (more fps, ...) but it's great! It looks like battlefield, just frostbite engine. The game runs better on my PC than battlefield, probably because the maps are smaller.
2 weeks ago, I didn't want the game, but now I would buy it!
Later, I'll upload some gameplays. stay tuned!
http://www.youtube.com/watch?v=op_7Xot3MTU


Ricky Jang<EMAIL_ADDRESS>1. [Git for Windows](http://msysgit.github.io/)
2 [GitHub windows](https://windows.github.com/)
3. [SourceTreeApp](http://www.sourcetreeapp.com/)
4. [TortoiseGit](https://code.google.com/p/tortoisegit/)
User setting
$ git config --global user.name "Your Name"
$ git config --global user.email<EMAIL_ADDRESS>Clone from repository
$ git clone ssh://git@git.mit.corp-apps.com:7999/REPOURI
Existing code
$ cd existing-project
$ git init
$ git add --all
$ git commit -m "Initial Commit"
$ git remote add origin ssh://git@git.mit.corp-apps.com:7999/~jcjang/log4cxx.git
$ git push origin master
Code is already tracked by git
$ cd existing-project
$ git remote set-url origin ssh://git@git.mit.corp-apps.com:7999/REPOURI
$ git push origin master
Git flow is successful branch model with git
Every thing is start from this picture
Keep master clean and just use for tagging.
Master is history of release.
Develop on develop branch but always keep buildable and usable.
Add new features on feature branch apply it to develop when feature finish.
Use release to bump up version & fix bugs for Release candidates.
Fix release bug on hotfix & apply it to master and develop when hotfix finish


|
1 A drop of seawater contains hundreds, even
thousands of tiny phytoplankton, organisms so small they can only be
seen with a microscope. Despite being so tiny they are incredibly
interesting and beautifully diverse. According to the scientists
studying them at WHOI, that diversity is so beautiful that everyone
should be able to peek into the invisible world of plankton. And that
is being made possible by a new invention called Imaging FlowCytobot.
|
2
Like land plants, phytoplankton use energy from the sun to
photosynthesize and make new organic matter. And they use up carbon
dioxide and produce oxygen along the way. In fact, these single-celled
microbes produce half the oxygen we breathe every day. Phytoplankton
thrive under all kinds of conditions everywhere in the ocean where
even the tiniest amount of sunlight penetrates – from icy waters of
the Arctic to balmy tropical reefs. They manage this by being
extremely diverse—they come in a huge range of shapes and sizes and
have evolved many intricate patterns of life.
|
||
|
3
WHOI scientists are working to show off that diversity by opening
access to images being produced by Imaging FlowCytobot, or IFCB for
short. IFCB is an automated underwater microscope designed by Rob
Olson and Heidi Sosik. They build IFCBs from lasers, video cameras,
microscope parts, and small computers. IFCB can take more than 10
pictures per second as phytoplankton and other small particles are
speeding by the video camera in a thin stream of seawater.
|
4
At the Martha's Vineyard Coastal Observatory, IFCBs are working around
the clock in the ocean to capture high resolution images of
plankton and relay them to shore. At the IFCB data dashboard web site,
anyone can access those images within minutes of collection. Plus browse
hundreds of millions of images taken over the last 6 years.
|
||
|
5
This video shows images captured by IFCB from about a ¼ teaspoon of ocean water.
IFCB takes a picture whenever it detects chlorophyll in the stream of water
flowing past its camera. The video shows where IFCB found plankton and other
objects in each picture it took. A system of pumps, filters, and small
tubes ensures that only a few objects flow past the camera at a time.
|
6
For scientists, this series of images provides a new way to view the
natural ebb and flow of phytoplankton communities as the seasons
change and years go by. Long time series like these show us how the
invisible world of plankton adjusts to environmental
changes. Ultimately this knowledge will help us understand the
processes that produce the oxygen we breathe and support the ocean
food webs that include fish, whales, and seabirds.
|


Private
Readonly
#key
Private
#nonce
Private
#private
Private
Readonly
#secret
Readonly
currencyCancel all open orders in a given market or, if no market is provided, all open orders in all markets.
Cancel a loan offer.
Cancel an order you have placed in a given market.
Close your margin position in a given market using a market order.
Create a loan offer for a given currency.
Get your balances sorted by account.
Get your active loans for each currency.
Get candlestick chart data.
Get all of your balances, including available balance, balance on orders, and the estimated BTC value of your balance.
Get information about currencies.
Optional
params:
{ Optional
includeGet your adjustment, deposit, and withdrawal history within a range window.
Get your trade history for a given market.
Get your lending history.
Get the list of loan offers and demands for a given currency.
Get information about your margin position in a given market.
Get a summary of your entire margin account.
Generate a new deposit address.
Get your open loan offers for each currency.
Get your open orders for a given market.
Get the order book for a given market.
Get the status of a given order.
Get all trades involving a given order.
Get your current tradable balances for each currency in each market for which margin trading is enabled.
Get the past 200 trades for a given market, or up to 1,000
trades between a range start
and
end
.
Place a margin buy order in a given market.
Place a margin sell order in a given market.
Cancels an order and places a new one of the same type in a single atomic transaction.
Places a limit sell order.
Swap fromCurrency
to toCurrency
if
the currency pair is available.
Toggle the autoRenew setting on an active loan.
Transfer funds from one account to another.
Immediately place a withdrawal for a given currency.
Static
Protected
add
Places a limit buy order.


All you have left is to create a list of owners with links.
PetDetailPage
: DoneNavigation
: DonePetDetails
: Modified in this stepPetDetailList
: DonePetInformationItem
: DoneOwnersList
: Created in this stepOwnerLink
Created in this stepYou’re almost done. Now, you get to handle a collection of data from the owners.
You’ve done this four other times, so it’s pretty straight forward.
OwnersList
with a props
argument that uses a React.Fragment
as its elementdefaultProps
, add a default property value for "owners" and set it to an empty array because this
component will expect an array of owner dataOwnersList
as the default exportOwnersList
componentPetDetailPage
component after the PetDetailList
PetDetailList
and OwnersList
in a Fragment
.OwnersList
component in a property named "owners" like this
{props.pet.Owners}
which will pass in the array of owners for the pet// src/PetDetails.js
import React from 'react';
import OwnersList from './OwnersList';
import PetDetailList from './PetDetailList';
const PetDetails = props =>
<>
<PetDetailList pet={props.pet} />
<OwnersList owners={props.pet.Owners} />
</>
;
PetDetails.defaultProps = {
pet: {
PetType: {},
},
};
export default PetDetails;
Refresh the page and make sure everything still works.
Note: This section introduces an error that you will fix. It is a common error about how to create React elements from lists. You may see it often. This way, you will know how to fix it, too.
Back in OwnersList.js, you want a ul
to follow the h2
.
Here’s the thing. You have an array of owners. You want to turn them into some list items. For each owner, you want to map that to a list item.  Since the value in props.owners
is an array, you can use the map
function to generate another array of React elements and plop them in there! Give it a go with this code. Replace the comment about where list items go above with this line of code.
{ props.owners.map(owner =>

{owner.firstName}

)}
Refresh the page. What happens? You should now see "Human" for each of the list items. That’s great! In the console, there’s an error. That’s sad!
In this last step, you’ve changed the way you’re passing children into the React.createElement
. Up until now, you’ve had discrete single elements as children, like in PetDetailList.js where you have this code.
const PetDetailList = props =>
<>

Details

<PetInformationItem name="Name" value={props.pet.name}/>
<PetInformationItem name="Age" value={props.pet.age}/>
<PetInformationItem name="Type" value={props.pet.PetType.type}/>

</>
;
Each of PetInformationItem
elements is a different, discrete, and separate child for the dl
element.
The code in OwnersList.js, this code,
const OwnersList = props =>
<>

Owners

{props.owners.map(owner =>

{owner.firstName}

)}

</>
;
in that, you have created an array of objects. Recall that when you call the map
function on an array, it returns another array. React doesn’t care about this, but it would like a little help in tracking each of those entries in the virtual DOM that it builds. That’s what the error message is about, giving React a little help by providing a "key" property for each of the elements that you’re creating in the array. The value of the "key" property must be unique and stable, that is, for a given object (like an owner named "Human One" with an id of 7), the value returned must always be the same. Luckily, because you have the id of the owner, you can use that because that id value is tied to a primary key, somewhere, and should never change for this object. The name can change, of course. But, the id will likely never change.
Add a "key" property to the li
element and set it equal to the id of the owner object, like this.

{owner.firstName}

Now, the error in the console goes away.
Back to the OwnersList
component, look at the formatting, the indentation that you see in the code.
const OwnersList = props =>
<>

Owners

{props.owners.map(owner =>

{owner.firstName}

)}

</>
;
That, too, is idiomatic React, the React way of doing things. You’ll see that kind of code all over the React world.
While it’s nice, and all, to see the owner’s first name in the list, the actual page has a link to the owner page with the format "last name, first name". Time to create the (last!) component of this walk-through.
Create a new file named src/OwnerLink.js. In it, do the following:
OwnerLink
that accepts data that has
a
as its elementprops
Once you have that, import the OwnerLink
component into the src/OwnersList.js file. Now, replace this line in OwnersList
{owner.firstName}
with an OwnerLink
component with three attributes: "href", "firstName", and "lastName". Those are the three properties expected inside the component. Use the curly brace syntax to pass in the appropriate values of the owner
. This is something you haven’t done, yet. Try to think through the problem of how to pass in multiple property values. If you get stuck and can’t get it after about ten minutes, ask for help!
Refresh the page. If everything works, you’re done!
In this part of the walk-through, you used a collection to render a collection of React elements. You found out that using a collection like that requires you to provide a "key" property that has a stable, unique value. Once you had that, React would gladly manage that collection of objects in its virtual DOM.
You have used JSX to do some amazing things, here.
React.createElement
<>
and </>
are shorthand literal for the often-used React.Fragment
elementdefaultProps
to make sure that components always had some valid values to work withAll you have left is to create a list of owners with links.
PetDetailPage
: DoneNavigation
: DonePetDetails
: Modified in this stepPetDetailList
: DonePetInformationItem
: DoneOwnersList
: Created in this stepOwnerLink
Created in this stepYou’re almost done. Now, you get to handle a collection of data from the owners.
You’ve done this four other times, so it’s pretty straight forward.
OwnersList
with a props
argument that uses a React.Fragment
as its elementdefaultProps
, add a default property value for "owners" and set it to an empty array because this component will expect an array of owner dataOwnersList
as the default exportOwnersList
componentPetDetailPage
component after the PetDetailList
PetDetailList
and OwnersList
in a Fragment
.OwnersList
component in a property named "owners" like this {props.pet.Owners}
which will pass in the array of owners for the pet// src/PetDetails.js
import React from 'react';
import OwnersList from './OwnersList';
import PetDetailList from './PetDetailList';
const PetDetails = props =>
<>
<PetDetailList pet={props.pet} />
<OwnersList owners={props.pet.Owners} />
</>
;
PetDetails.defaultProps = {
pet: {
PetType: {},
},
};
export default PetDetails;
Refresh the page and make sure everything still works.
Note: This section introduces an error that you will fix. It is a common error about how to create React elements from lists. You may see it often. This way, you will know how to fix it, too.
Back in OwnersList.js, you want a ul
to follow the h2
.
Here’s the thing. You have an array of owners. You want to turn them into some list items. For each owner, you want to map that to a list item.  Since the value in props.owners
is an array, you can use the map
function to generate another array of React elements and plop them in there! Give it a go with this code. Replace the comment about where list items go above with this line of code.
{ props.owners.map(owner =>

{owner.firstName}

)}
Refresh the page. What happens? You should now see "Human" for each of the list items. That’s great! In the console, there’s an error. That’s sad!
In this last step, you’ve changed the way you’re passing children into the React.createElement
. Up until now, you’ve had discrete single elements as children, like in PetDetailList.js where you have this code.
const PetDetailList = props =>
<>

Details

<PetInformationItem name="Name" value={props.pet.name}/>
<PetInformationItem name="Age" value={props.pet.age}/>
<PetInformationItem name="Type" value={props.pet.PetType.type}/>

</>
;
Each of PetInformationItem
elements is a different, discrete, and separate child for the dl
element.
The code in OwnersList.js, this code,
const OwnersList = props =>
<>

Owners

{props.owners.map(owner =>

{owner.firstName}

)}

</>
;
in that, you have created an array of objects. Recall that when you call the map
function on an array, it returns another array. React doesn’t care about this, but it would like a little help in tracking each of those entries in the virtual DOM that it builds. That’s what the error message is about, giving React a little help by providing a "key" property for each of the elements that you’re creating in the array. The value of the "key" property must be unique and stable, that is, for a given object (like an owner named "Human One" with an id of 7), the value returned must always be the same. Luckily, because you have the id of the owner, you can use that because that id value is tied to a primary key, somewhere, and should never change for this object. The name can change, of course. But, the id will likely never change.
Add a "key" property to the li
element and set it equal to the id of the owner object, like this.

{owner.firstName}

Now, the error in the console goes away.
Back to the OwnersList
component, look at the formatting, the indentation that you see in the code.
const OwnersList = props =>
<>

Owners

{props.owners.map(owner =>

{owner.firstName}

)}

</>
;
That, too, is idiomatic React, the React way of doing things. You’ll see that kind of code all over the React world.
While it’s nice, and all, to see the owner’s first name in the list, the actual page has a link to the owner page with the format "last name, first name". Time to create the (last!) component of this walk-through.
Create a new file named src/OwnerLink.js. In it, do the following:
OwnerLink
that accepts data that has
a
as its elementprops
Once you have that, import the OwnerLink
component into the src/OwnersList.js file. Now, replace this line in OwnersList
{owner.firstName}
with an OwnerLink
component with three attributes: "href", "firstName", and "lastName". Those are the three properties expected inside the component. Use the curly brace syntax to pass in the appropriate values of the owner
. This is something you haven’t done, yet. Try to think through the problem of how to pass in multiple property values. If you get stuck and can’t get it after about ten minutes, ask for help!
Refresh the page. If everything works, you’re done!
In this part of the walk-through, you used a collection to render a collection of React elements. You found out that using a collection like that requires you to provide a "key" property that has a stable, unique value. Once you had that, React would gladly manage that collection of objects in its virtual DOM.
You have used JSX to do some amazing things, here.
React.createElement
<>
and </>
are shorthand literal for the often-used React.Fragment
elementdefaultProps
to make sure that components always had some valid values to work with


SP
-- Lista do Front-End Meet-Up Group de São Paulo --
https://github.com/braziljs/femug About SP
To see the collection of prior postings to the list, visit the SP Archives.
To post a message to all the list members, send email to<EMAIL_ADDRESS>You can subscribe to the list, or change your existing subscription, in the sections below.
Subscribe to SP by filling out the following form. You will be sent email requesting confirmation, to prevent others from gratuitously subscribing you. This is a private list, which means that the list of members is not available to non-members.
(The subscribers list is only available to the list members.)
Enter your address and password to visit the subscribers list:
To unsubscribe from SP, get a password reminder, or change your subscription options enter your subscription email address:


public class Sample
extends java.lang.Object
Class to represent data source values for the given timestamp. Objects of this class are never created directly (no public constructor is provided). To learn more how to update RRDs, see RRDTool's rrdupdate man page.
To update a RRD with Rrd4j use the following procedure:
createSample()
on respective RrdDb
object.
setTime()
method).
setValue()
).
update()
method.
Newly created Sample object contains all data source values set to 'unknown'.
You should specify only 'known' data source values. However, if you want to specify
'unknown' values too, use Double.NaN
.
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
dump()
Dumps sample content using the syntax of RRDTool's update command.
|
java.lang.String[] |
getDsNames()
Returns an array of all data source names.
|
long |
getTime()
Returns sample timestamp (in seconds, without milliseconds).
|
double[] |
getValues()
Returns all current data source values in the sample.
|
Sample |
set(java.lang.String timeAndValues)
Sets sample timestamp and data source values in a fashion similar to RRDTool.
|
void |
setAndUpdate(java.lang.String timeAndValues)
Creates sample with the timestamp and data source values supplied
in the argument string and stores sample in the corresponding RRD.
|
Sample |
setTime(long time)
Sets sample timestamp.
|
Sample |
setValue(int i,
double value)
Sets single datasource value using data source index.
|
Sample |
setValue(java.lang.String dsName,
double value)
Sets single data source value in the sample.
|
Sample |
setValues(double... values)
Sets some (possibly all) data source values in bulk.
|
void |
update()
Stores sample in the corresponding RRD.
|
public Sample setValue(java.lang.String dsName, double value)
dsName
- Data source name.value
- Data source value.Sample
objectjava.lang.IllegalArgumentException
- Thrown if invalid data source name is supplied.public Sample setValue(int i, double value)
i
- Data source indexvalue
- Data source valuesSample
objectjava.lang.IllegalArgumentException
- Thrown if data source index is invalid.public Sample setValues(double... values)
values
- Data source values.Sample
objectjava.lang.IllegalArgumentException
- Thrown if the number of supplied values is zero or greater
than the number of data sources defined in the RRD.public double[] getValues()
public long getTime()
public Sample setTime(long time)
time
- New sample timestamp.Sample
objectpublic java.lang.String[] getDsNames()
public Sample set(java.lang.String timeAndValues)
Sets sample timestamp and data source values in a fashion similar to RRDTool.
Argument string should be composed in the following way:
timestamp:value1:value2:...:valueN
.
You don't have to supply all datasource values. Unspecified values will be treated as unknowns. To specify unknown value in the argument string, use letter 'U'
timeAndValues
- String made by concatenating sample timestamp with corresponding
data source values delmited with colons. For example:
1005234132:12.2:35.6:U:24.5 NOW:12.2:35.6:U:24.5'N' stands for the current timestamp (can be replaced with 'NOW')
Method will throw an exception if timestamp is invalid (cannot be parsed as Long, and is not 'N' or 'NOW'). Datasource value which cannot be parsed as 'double' will be silently set to NaN.
Sample
objectjava.lang.IllegalArgumentException
- Thrown if too many datasource values are suppliedpublic void update() throws java.io.IOException
java.io.IOException
- Thrown in case of I/O error.public void setAndUpdate(java.lang.String timeAndValues) throws java.io.IOException
Creates sample with the timestamp and data source values supplied in the argument string and stores sample in the corresponding RRD. This method is just a shortcut for:
set(timeAndValues); update();
timeAndValues
- String made by concatenating sample timestamp with corresponding
data source values delmited with colons. For example:1005234132:12.2:35.6:U:24.5
NOW:12.2:35.6:U:24.5
java.io.IOException
- Thrown in case of I/O error.public java.lang.String dump()


@ARTICLE{7057595,
author={S. Sarkar and S. Chatterjee and S. Misra},
journal={IEEE Cloud Computing},
title={Evacuation and Emergency Management Using a Federated Cloud},
year={2014},
volume={1},
number={4},
pages={68-76},
keywords={Big Data;cloud computing;emergency management;groupware;software architecture;big data management policies;communication framework;contemporary disaster relief techniques;damage assessment;emergency management;evacuation management;federated cloud computing architecture;live victims spatial distribution determination;mental status;multiple private cloud collaboration;multiple public cloud collaboration;physical status;real-time decision making;rescue operation;voluminous data generation;voluminous data transmission;Cloud computing;Computer architecture;Disasters;Emergency services;Media;Mobile communication;Servers;Tsunami;big data analytics;cloud;emergency management;federated cloud;wireless sensors},
doi={10.1109/MCC.2014.72},
ISSN={2325-6095},
month={Nov}
}


The internship allowed me to widen my knowledge in web development by implementing from the ground the main portal of the company.
In doing so, I got in touch with modern front-end technologies like React and Redux.
Developed a web application from scratch, using Python and Django.
Developed a modern web application from scratch, using back-end technologies.


Weather Pages
24
°
Las Vegas
Rain Falling
Thr
Fri
Sat
Sun
Mon
Tue
Wed
© 2017 Joe All Rights Reserved | Design by
Joe


---
layout: post
title: ASCII by Jason Scott / Archiveteam! The Geocities Torrent
categories: [humor, tumblr]
---
ASCII by Jason Scott / Archiveteam! The Geocities Torrent
650g torrent file containing a huge part of the former Geocities Website. Dear god…


Payment & Address:
University:
Name:
Address
Check
Address:
Buyback Cupon Code:
Terms & Conditions:
I have read and agree to the
Buyback Terms & Conditions


Enum ConditionType
Enumerates the condition flags that a thing can suffer from.
Namespace: Fibula.Common.Contracts.Enumerations
Assembly: Fibula.Common.Contracts.dll
Syntax
public enum ConditionType : uint
Fields
| Name | Description |
|---|---|
| Bleeding | Loosing hitpoints over time. |
| Burning | On fire (the unpleasant way). |
| ChangedSkill | Skills are altered. |
| ChangedSpeed | Movement speed increased/decreased. |
| Decaying | A decaying thing. |
| Drunk | Had too much wine. |
| Electrified | Shocked (the bad way). |
| Exhausted | Exhausted, which can be of any ExhaustionType. |
| InFight | In combat, voluntarily or not. |
| Invisible | Invisibility. |
| Light | Irradiating light. |
| ManaDraining | Loosing manapoints over time. |
| ManaShield | Redirecting hitpoint damage to mana pool. |
| Muted | Muted from public chat channels, except for casting spells or commands. |
| Outfit | The outfit is temporarily changed. |
| Paralyzed | Movement restricted. |
| Posioned | Poisoned. |
| PzLocked | Locked out of protecion zones. |
| Regenerating | Regenerating one or more stats. |
| Silenced | Silenced from chatting in all channels and casting instant spells, but able to cast commands. |


Payment form example
Some fields are missing
Card #
CVC#
Amount
$
First name
Last name
City
State
Pick a state
Montevideo
Canelones
Maldonado
San José
Postal Code
We accept:
Message
Add any notes here.


I recently wanted a wiki, to collect some ideas with my girlfriend.
After trying several pieces of wiki software, I settled for MediaWiki, which also powers Wikipedia. I’ve found it mainly meets my needs, though I only need a small subset of its features.
One thing I don’t like about MediaWiki is how convoluted it is to add an image to an article. To wit:
- Visit the
Special:Upload
page - Use the upload form
- Copy the destination filename
- Visit/create the article
- Insert wiki markup using the copied filename
- Save the article
A lot of steps, and in a non-intuitive order. After asking for better alternatives on #mediawiki, I got a tip I thought I’d share. It’s still convoluted, but much less so:
- Visit/create the article
- Insert wiki markup using whatever destination filename you want
- Save (or preview) the article
- In the saved article (or in a new tab from the previewed article), click the destination filename, which will be a red (=no such article) link
- Use the upload form
Keep in mind that MediaWiki is particular about file extensions – if you’ll be uploading a PNG, use the .png
extension for your destination filename.


Format of the images taken by the webcam.
A user-defined callback that may be passed to Webcam.snap(callback)
. It is invokes once an image was taken
successfully.
The image that was taken, as a data URI.
The canvas that contains the image.
The rendering context of the canvas.
WebcamJS is initialized and activated by attaching a live camera viewer to a DOM element. The DOM element must already be created and empty:
Webcam.attach("#my_camera");
This will activate the user's webcam, ask for the appropriate permission, and begin showing a live camera image in the specified DOM element.
Note that the browser itself handles asking the user for permission to use their camera. WebcamJS has no control over this, so there is no way to style the UI. Each browser does it a little differently, typically a bar at the top of the page, and Flash does it inside the view area.
CSS selector for the DOM element to which the webcam is attached.
Freeze the current live camera frame, allowing the user to preview before saving.
Remove an event listener for a given event. Pass in the event name, and the callback function to remove. Omit the callback reference to remove all listeners.
Name of the event.
Name of the event for which to remove a listener.
Callback to remove. If omitted, removes all callback for the given event.
Register an event listener for a given event. Pass in the event name, and a callback function.
Name of the event.
Name of the event for which to attach a listener.
Callback to attach.
 This removes any DOM elements we
added, including a Flash movie if applicable, and resets everything in the library to the initial state.
To use the library again after resetting, you must call Webcam.attach()
and pass it your DOM element.
Updates a global webcam setting with the given new value.
Name of the setting.
Name of a settings to change.
New value for the setting.
Updates the global webcam settings with the given settings.
New settings for the webcam.
To snap a picture, just call the Webcam.snap()
function, passing in a callback function. The image data will be
passed to your function as a daata URI, which you can then display in your web page, or submit to a server:
Webcam.snap(data_uri => {
document.getElementById("my_result").innerHTML = `<img src="${data_uri}">`;
});
Your function is also passed a HTML5 Canvas and a 2D Context object, so you can gain access to the raw pixels instead of a compressed image Data URI. These are passed as the 2nd and 3rd arguments to your callback function:
Webcam.snap( (data_uri, canvas, context) => {
// copy image to my own canvas
myContext.drawImage(canvas, 0, 0);
});
If you would prefer that WebcamJS simply copy the image into your own canvas, it can do that instead of generating
a data URI (which can be an expensive operation). To do this, simply pass your canvas object to the Webcam.snap()
method, as the 2nd argument, right after your callback function:
// assumes 'myCanvas' is a reference to your own canvas object, at the correct size
Webcam.snap(() => {
// the webcam image is now in your own canvas
}, myCanvas );
A callback function that is invoked with the image data once the images was taken.
Optional. If given, draws the image to this canvas.
Cancel the preview (discard image) and resume the live camera view.
Upload a saved image to your server via binary AJAX. Fires progress events.
The Webcam.snap()
function delivers your image by way of a client-side JavaScript Data URI. The binary image
data is encoded with Base64 and stuffed into the URI. You can use this image in JavaScript and display it on your
page. However, the library also provides a way to decode and submit this image data to a server API endpoint, via
binary AJAX:
Webcam.snap(data_uri => {
// snap complete, image data is in "data_uri"
Webcam.upload(data_uri, "myScript.php", (code, text) => {
// Upload complete!
// "code" will be the HTTP response code from the server, e.g. 200
// 'text' will be the raw response content
});
});
The image data is uploaded as part of a standard multipart form post, and included as a form element named webcam. To gain access to this data, write some server-side code like this (PHP shown):
// be aware of file / directory permissions on your server
move_uploaded_file($_FILES['webcam']['tmp_name'], 'webcam.jpg');
Treat the uploaded data as if you were receiving a standard form submission with a
<input type="file" name="webcam">
element. The data is sent in the same exact way.
Data of the image to be sent to the server, usually the data URI.
URL to which the image data is sent.
Callback that is invoked once the upload is complete. You can alternatively specify the
callback using Webcam.on("uploadComplete", callback)
.
Generated using TypeDoc
WebcamJS is a small (~3K minified and gzipped) standalone JavaScript library for capturing still images from your computer's camera, and delivering them to you as JPEG or PNG Data URIs. The images can then be displayed in your web page, rendered into a canvas, or submitted to your server. WebcamJS uses HTML5 getUserMedia, but provides an automatic and invisible Adobe Flash fallback.
See https://github.com/jhuckaby/webcamjs


# (c) 2012-2014, Michael DeHaan<EMAIL_ADDRESS>#
# This file is part of Ansible
#
# Ansible is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Ansible is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
# Make coding more python3-ish
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
import os
from ansible.compat.six import string_types
from ansible import constants as C
from ansible.executor.task_queue_manager import TaskQueueManager
from ansible.playbook import Playbook
from ansible.template import Templar
from ansible.utils.path import makedirs_safe
from ansible.utils.unicode import to_unicode, to_str
try:
from __main__ import display
except ImportError:
from ansible.utils.display import Display
display = Display()
[docs]class PlaybookExecutor:
'''
This is the primary class for executing playbooks, and thus the
basis for bin/ansible-playbook operation.
'''
def __init__(self, playbooks, inventory, variable_manager, loader, options, passwords):
self._playbooks = playbooks
self._inventory = inventory
self._variable_manager = variable_manager
self._loader = loader
self._options = options
self.passwords = passwords
self._unreachable_hosts = dict()
if options.listhosts or options.listtasks or options.listtags or options.syntax:
self._tqm = None
else:
self._tqm = TaskQueueManager(inventory=inventory, variable_manager=variable_manager, loader=loader, options=options, passwords=self.passwords)
[docs] def run(self):
'''
Run the given playbook, based on the settings in the play which
may limit the runs to serialized groups, etc.
'''
result = 0
entrylist = []
entry = {}
try:
for playbook_path in self._playbooks:
pb = Playbook.load(playbook_path, variable_manager=self._variable_manager, loader=self._loader)
self._inventory.set_playbook_basedir(os.path.dirname(playbook_path))
if self._tqm is None: # we are doing a listing
entry = {'playbook': playbook_path}
entry['plays'] = []
else:
# make sure the tqm has callbacks loaded
self._tqm.load_callbacks()
self._tqm.send_callback('v2_playbook_on_start', pb)
i = 1
plays = pb.get_plays()
display.vv(u'%d plays in %s' % (len(plays), to_unicode(playbook_path)))
for play in plays:
if play._included_path is not None:
self._loader.set_basedir(play._included_path)
else:
self._loader.set_basedir(pb._basedir)
# clear any filters which may have been applied to the inventory
self._inventory.remove_restriction()
if play.vars_prompt:
for var in play.vars_prompt:
vname = var['name']
prompt = var.get("prompt", vname)
default = var.get("default", None)
private = var.get("private", True)
confirm = var.get("confirm", False)
encrypt = var.get("encrypt", None)
salt_size = var.get("salt_size", None)
salt = var.get("salt", None)
if vname not in self._variable_manager.extra_vars:
if self._tqm:
self._tqm.send_callback('v2_playbook_on_vars_prompt', vname, private, prompt, encrypt, confirm, salt_size, salt, default)
play.vars[vname] = display.do_var_prompt(vname, private, prompt, encrypt, confirm, salt_size, salt, default)
else: # we are either in --list-<option> or syntax check
play.vars[vname] = default
# Create a temporary copy of the play here, so we can run post_validate
# on it without the templating changes affecting the original object.
all_vars = self._variable_manager.get_vars(loader=self._loader, play=play)
templar = Templar(loader=self._loader, variables=all_vars)
new_play = play.copy()
new_play.post_validate(templar)
if self._options.syntax:
continue
if self._tqm is None:
# we are just doing a listing
entry['plays'].append(new_play)
else:
self._tqm._unreachable_hosts.update(self._unreachable_hosts)
break_play = False
# we are actually running plays
for batch in self._get_serialized_batches(new_play):
if len(batch) == 0:
self._tqm.send_callback('v2_playbook_on_play_start', new_play)
self._tqm.send_callback('v2_playbook_on_no_hosts_matched')
break
# restrict the inventory to the hosts in the serialized batch
self._inventory.restrict_to_hosts(batch)
# and run it...
result = self._tqm.run(play=play)
# break the play if the result equals the special return code
if result == self._tqm.RUN_FAILED_BREAK_PLAY:
result = self._tqm.RUN_FAILED_HOSTS
break_play = True
# check the number of failures here, to see if they're above the maximum
# failure percentage allowed, or if any errors are fatal. If either of those
# conditions are met, we break out, otherwise we only break out if the entire
# batch failed
failed_hosts_count = len(self._tqm._failed_hosts) + len(self._tqm._unreachable_hosts)
if new_play.max_fail_percentage is not None and \
int((new_play.max_fail_percentage)/100.0 * len(batch)) > int((len(batch) - failed_hosts_count) / len(batch) * 100.0):
break_play = True
break
elif len(batch) == failed_hosts_count:
break_play = True
break
# save the unreachable hosts from this batch
self._unreachable_hosts.update(self._tqm._unreachable_hosts)
# if the last result wasn't zero or 3 (some hosts were unreachable),
# break out of the serial batch loop
if result not in (self._tqm.RUN_OK, self._tqm.RUN_UNREACHABLE_HOSTS):
break
if break_play:
break
i = i + 1 # per play
if entry:
entrylist.append(entry) # per playbook
# send the stats callback for this playbook
if self._tqm is not None:
if C.RETRY_FILES_ENABLED:
retries = set(self._tqm._failed_hosts.keys())
retries.update(self._tqm._unreachable_hosts.keys())
retries = sorted(retries)
if len(retries) > 0:
if C.RETRY_FILES_SAVE_PATH:
basedir = C.shell_expand(C.RETRY_FILES_SAVE_PATH)
elif playbook_path:
basedir = os.path.dirname(playbook_path)
else:
basedir = '~/'
(retry_name, _) = os.path.splitext(os.path.basename(playbook_path))
filename = os.path.join(basedir, "%s.retry" % retry_name)
if self._generate_retry_inventory(filename, retries):
display.display("\tto retry, use: --limit @%s\n" % filename)
self._tqm.send_callback('v2_playbook_on_stats', self._tqm._stats)
# if the last result wasn't zero, break out of the playbook file name loop
if result != 0:
break
if entrylist:
return entrylist
finally:
if self._tqm is not None:
self._tqm.cleanup()
if self._loader:
self._loader.cleanup_all_tmp_files()
if self._options.syntax:
display.display("No issues encountered")
return result
return result
def _get_serialized_batches(self, play):
'''
Returns a list of hosts, subdivided into batches based on
the serial size specified in the play.
'''
# make sure we have a unique list of hosts
all_hosts = self._inventory.get_hosts(play.hosts)
# check to see if the serial number was specified as a percentage,
# and convert it to an integer value based on the number of hosts
if isinstance(play.serial, string_types) and play.serial.endswith('%'):
serial_pct = int(play.serial.replace("%",""))
serial = int((serial_pct/100.0) * len(all_hosts)) or 1
else:
if play.serial is None:
serial = -1
else:
serial = int(play.serial)
# if the serial count was not specified or is invalid, default to
# a list of all hosts, otherwise split the list of hosts into chunks
# which are based on the serial size
if serial <= 0:
return [all_hosts]
else:
serialized_batches = []
while len(all_hosts) > 0:
play_hosts = []
for x in range(serial):
if len(all_hosts) > 0:
play_hosts.append(all_hosts.pop(0))
serialized_batches.append(play_hosts)
return serialized_batches
def _generate_retry_inventory(self, retry_path, replay_hosts):
'''
Called when a playbook run fails. It generates an inventory which allows
re-running on ONLY the failed hosts. This may duplicate some variable
information in group_vars/host_vars but that is ok, and expected.
'''
try:
makedirs_safe(os.path.dirname(retry_path))
with open(retry_path, 'w') as fd:
for x in replay_hosts:
fd.write("%s\n" % x)
except Exception as e:
display.warning("Could not create retry file '%s'.\n\t%s" % (retry_path, to_str(e)))
return False
return True


This is to announce that Münster now has its very own R users group!
If you are from the area, come join us (or if you happen to know someone who is and who might be interested, please forward the info).
You can find us on meetup.com: https://www.meetup.com/Munster-R-Users-Group/ and we are also on the R User groups list.
Code for the logo, which of course has been created in R:
library(ggplot2)
library(ggmap)
library(ggthemes)
munster <- get_map(location = 'Munster', zoom = 12, maptype = "watercolor")
ggmap(munster) +
scale_y_continuous(limits=c(51.94, 51.97)) +
annotate("text", x=7.565, y=51.96, label= "MünsteR", size = 8) +
annotate("text", x=7.685, y=51.945, label= "R Users Group", size = 5) +
theme_map()


Welcome to my website (work in progress)
Who am I?
I am a Computer Science student, studying for an Integrated Master's (MSci) in Computer Science from the University of Nottingham. I started this course in 2018 and will graduate in 2022.
My GPA for the portion of my course that I have already completed is 75% and I expect to graduate with 1st class honours.
Contact me
|<EMAIL_ADDRESS>|


This PWG face-to-face meeting will be held on May 16 - 18, 2023, only via WebEx teleconference (Virtual F2F).
There is no registration fee or RSVP survey for this meeting.
Note:All times are Eastern Daylight Time (EDT) (UTC−04:00).
All attendees are expected to comply with the PWG Policy on Intellectual Property and Confidentiality and the PWG Antitrust Policy.
| Date | Times | Description |
|---|---|---|
| May 16 | 10:00 AM to 11:00 AM | PWG Plenary |
| 11:00 AM to 12:00 PM | OpenPrinting Plenary | |
| 12:00 PM to 12:45 PM | Lunch | |
| 12:45 PM to 1:30 PM | OpenPrinting : GSoC Project Updates | |
| 1:30 PM to 2:30 PM | OpenPrinting : cups-filters 2.x |
|
| 2:30 PM to 3:00 PM | Break | |
| 3:00 PM to 4:00 PM | OpenPrinting : ChromiumOS Printing Update | |
| May 17 | 10:00 AM to 11:00 AM | OpenPrinting : CUPS Plenary |
| 11:00 AM to 12:00 PM | OpenPrinting : Printer Applications · Scanner Applications and Retro-Fitting Printer Applications | |
| 12:00 PM to 12:45 PM | Lunch | |
| 12:45 PM to 1:45 PM | OpenPrinting : CUPS Snap, Driverless Scanning/Scanner Applications, Printing GUI | |
| 1:45 PM to 2:15 PM | IPP WG : Status · Prototype Ready - IPP Encrypted Jobs and Documents v1.0 (TRUSTNOONE) · IPP Enterprise Printing Extensions v2.0 (EPX) | |
| 2:15 PM to 2:45 PM | Break | |
| 2:45 PM to 3:45 PM | IPP WG : Evolution of IPP/2.0 and IPP Everywhere v2.0 | |
| May 18 | 10:00 AM to 12:00 PM | IDS WG : Status and Discussion · PWG Hardcopy Device Security Guidelines v1.0 |
| 12:00 PM to 12:45 PM | Lunch | |
| 12:45 PM to 1:15 PM | IPP WG : 3D Printing Liaisons - Status & Guidance | |
| 1:15 PM to 2:45 PM | IPP WG : Evolution of OAuth and IPP · Using OAuth with IPP v1.0 | |
| 2:45 PM to 3:00 PM | IPP WG : Next Steps |


Search
Clear
Query
Clear
Features
Next Feature Suggestion
Feature
Connectivity
Candidates
Name
% Match


The New Year. In submission.
- This manuscript centers around a fractured lyric essay about my suicide attempt in 2012. It includes diary entries, school assignments, poetry, psych evaluations, childhood artwork, and monologues.
"Normal Poem” december Magazine, October 2019.
"Normal Poem” The A3 Review, The Square Issue, October 2019.
"Muddied Genre and Grass Roots: An Interview with Steven Dunn." Inverted Syntax, Mar. 2019.
"The Weird World of Language: An Interview with Eric Baus." Inverted Syntax, Feb. 2019.
"Inverted Syntax: Volume 2: Issue 1" Editorial Assistant. Winter 2018.
Click here to purchase.
"Try and Dream of Me, Ada" Penultimate Peanut Magazine, Sept. 2018.
"How Having a Writing Buddy Can Improve Your Writing Practice." Inverted Syntax, Sept. 2018.
"New Years" Progenitor. Arapahoe Community College, Spring 2017.
"Time” Literary Review-East, Jan. 2014.
“The Republic of Virtue: A Review” and “Something Magic About Poetry: An Interview” Nebo: A Literary Journal, Vol. 33, Arkansas Tech University, Fall 2014.
Nebo: A Literary Journal, Vol. 32, No.1. Editor. Arkansas Tech University, Fall 2013.
An Oak, A Joke. Self-published, paperback, Spring 2010.
“The Value of Giving Up; For What It’s Worth,” "Recycled New", "Infinite", and “Forcing Amnesia” Black Couch Literary Magazine, Spring 2010.
Honorable Mention in Tiny Spoon's 2019 Erasure Contest.
Winner of The A3 Review's April 2019 Contest.
First Place Winner in Tech’s 36th annual Creative Writing Contest. Arkansas Tech University. Russellville, AR, 2010.
Literary Magazine Writer of the Year Second Runner-Up, First Place in Literary Magazine Poetry and Excellent in literary Magazine Longer Poem. Arkansas Scholastic Press Association Convention. Rogers, AR, 2010.
First Runner-Up Arkansas State Finals of Poetry Out Loud. Arkansas Arts Council, 2010. Little Rock, AR, 2010.
Second Place Poetry Interpretation. R. David Ray Invitational Forensic Tournament. Monticello, AR, 2010.
Third Place for Poetry Interpretation. War Eagle Inaugural. Little Rock, AR, 2009.