Interesting Links to JavaScript Material
- General
- Comprehensive Go-To Sources for Learning JavaScript
- Essays on Important Intermediate and Advanced JavaScript Topics
- Code and APIs to Read, Know About, or Get Ideas From
- AOP
- Futures, Promises, Deferreds, and Multitasking
- Sandboxed Natives
- CSS Stylesheets
- Module Loading
- Quirks, Oddities, and Bizarre Things About JavaScript
- In-the-Browser Web IDEs
- Blogs and News (Having at Least Some JavaScript Material)
- Resources of Unknown Quality, To Investigate
This web page is a random collection of some good JavaScript study materials.
Another
collection of links, many of which pertain to core
JavaScript is on Rey Bango's website. Rey also has
a list more targetted just to learning JavaScript.
Mozilla has a characteristically high-caliber jumping-off place for
learning JavaScript.
Many commenters in the JSMentors group
recommend (as of Dec. 2010) these books:
- JavaScript Patterns, by Stoyan Stefanov
- Professional JavaScript for Web Developers, by Nicholas C. Zakas
Don't forget:
JavaScript: The Good Parts
The following book is often recommended (mentioned here even though it is not really about JavaSript):
CSS: The Definitive Guide
The following list of books is probably a good one, but does not focus on JavaScript:
"The top 25 books for web designers and developers"
Comprehensive Go-To Sources for Learning JavaScript
-
2010 series of lectures on the history of JavaScript, its features, and its use - by Douglas Crockford (of crockford.com)
-
JavaScript tutorials and guides - by Douglas Crockford (of crockford.com)
-
YUI Theater
-
JSConf
-
comp.lang.javascript
-
the JSMentors mailing list
-
browser compatibility table - by Peter-Paul Koch (of quirksmode.org)
-
Badass JavaScript
-
JavaScript Enlightenment (a free book)
-
a visually oriented JavaScript tutorial that appears to make things simple
-
"JavaScript Garden" (basic)
Essays on Important Intermediate and Advanced JavaScript Topics
-
"The quiz" (a very advanced JavaScript quiz) - by Dmitry Soshnikov (of dmitrysoshnikov.com)
-
"So, you think you know JavaScript?" - by Dmitry Baranovskiy (of dmitry.baranovskiy.com)
-
slideshow-style quick coverage of major advanced techniques - by John Resig (of jquery.com and ejohn.org)
-
"Prototypal Inheritance in JavaScript" - by Douglas Crockford (of Yahoo!)
-
"Classical Inheritance in JavaScript" - by Douglas Crockford (of Yahoo!)
-
"Private Members in JavaScript" - by Douglas Crockford (of Yahoo!)
-
"A JavaScript Module Pattern" on the Yahoo! User Interface Blog (YUIBlog) - by Eric Miraglia
-
"JavaScript Module Pattern: In-Depth" - by Ben Cherry (of adequatelygood.com)
-
short essay on function declarations vs. function
statements (an incorrect term promulgated by Douglas Crockford) - by Garrett Smith (of dhtmlkitchen.com and github.com/GarrettS)
-
"Named function expressions demystified - by Juriy "kangax" Zaytsev (of perfectionkills.com)
-
"Exploring common JavaScript patterns and anti-patterns" - by Stoyan Stefanov (of www.phpied.com and JSPatterns.com)
-
"10 Things I Learned from the jQuery Source" - by Paul Irish (of paulirish.com)
-
"11 More Things I Learned from the jQuery Source" - by Paul Irish (of paulirish.com)
-
"What's wrong with extending the DOM" - by Juriy "kangax" Zaytsev (of perfectionkills.com)
-
"Sandboxed Natives" - by fusejs (John-David Dalton)
-
Cross Site Scripting Joy
-
"Debugging Closures and Modules" - by Ben Cherry (of adequatelygood.com)
-
JavaScript Essays - by Peter-Paul Koch (of quirksmode.org)
-
JavaScript essays - by Alex Russell (of infrequently.org)
-
"JavaScript Explained" - by Eugene Lazutkin (of lazutkin.com)
-
"Using recursion combinators in JavaScript" - by Eugene Lazutkin (of lazutkin.com)
-
"Functional fun in JavaScript with Dojo" - by Eugene Lazutkin (of lazutkin.com)
-
"Higgins for President >> JavaScript" - by Peter Higgins (of higginsforpresident.net)
-
JavaScript essays - by Nicholas C. Zakas (of www.nczonline.net)
-
(mostly) English-language (mostly) JavaScript essays - by Dmitry Soshnikov (of dmitrsoshnikov.com)
-
JavaScript essays - by Dab Webb (of danwebb.com)
-
A Base Class for JavaScript Inheritance - by Dean Edwards (of dean.edwards.name)
-
Inheritance Patterns in JavaScript - by Michael Bolin (of bolinfest.com)
-
The Closure Compiler turns a Pattern into an Antipattern - by Michael Bolin (of bolinfest.com)
-
JavaScript Metaclass Programming - by Neil Roberts (of sitepen.com)
-
Forget Everything You Know About Functions: JavaScript Subroutines - by Neil Roberts (of sitepen.com)
-
Protected Cross-Domain Authentication with JavaScript - by Neil Roberts (of sitepen.com)
-
Functional AJAX with Dojo: Does Dojo have an AJAX method that updates a div? - by Neil Roberts (of sitepen.com)
-
ComposeJS: Robust, Lightweight Object Composition - by Kris Zyp (of sitepen.com)
-
Improving Component Communication with the Dojo Toolkit - by Mike Wilcox (of sitepen.com)
-
Web Page Global Variable Performance - by Mike Wilcox (of sitepen.com)
-
Improving Component Communication with the Dojo Toolkit - by Mike Wilcox (of sitepen.com)
-
Advanced JavaScript Debugging Techniques - by Mike Wilcox (of sitepen.com)
-
How To Subclass The JavaScript Array Object - by Dean Edwards (of dean.edwards.name)
-
JavaScript essays - by Andrew Dupont (of andrewdupont.net)
-
"Deep-extending objects in JavaScript" - by Andrew Dupont (of andrewdupont.net)
-
"Inheritance Patterns in JavaScript" - by Mike Bolin (of bolinfest.com)
-
JavaScript essays - by Oliver Steele (of osteele.com)
-
JavaScript essays - by Neil Mix (of www.neilmix.com)
-
Threading in JavaScript 1.7 - by Neil Mix (of www.neilmix.com)
-
"JavaScript Will Save Us All" - by Eric A. Meyer (of meyerweb.com)
-
"Variables vs. Properties in JavaScript" - by Angus Croll (of http://javascriptweblog.wordpress.com)
-
"Extending JavaScript Natives" - by Angus Croll (of javascriptweblog.wordpress.com)
-
"A fresh look at JavaScript Mixins" - a great article by Angus Croll (of javascriptweblog.wordpress.com)
-
Modern Web Development - by Majd Taby (of jtaby.com)
-
"if your JS library API expecting me to write 'new' -- you're doing it wrong" - by Dmitry Baranovskiy (of dmitry.baranovskiy.com)
-
"5 Must-Reads on JavaScript Inheritance" - by Karthik Viswanathan (of lateralcode.com)
-
"Lateral Code" - by Karthik Viswanathan (of lateralcode.com)
-
"Explicit use of JavaScript's global object" - by Jonathan Fine (of jonathanfine.wordpress.com)
Code and APIs to Read, Know About, or Get Ideas From
-
JSLint.com - "The JavaScript Code Quality Tool"
-
JSON.com - the lightweight data-interchange format based upon a subset of JavaScript
-
ADSafe - "Making JavaScript Safe for Advertising"
-
Interpreter and browser properties that can be exploited to escalate privileges
-
JSLint, JSON, ADSafe, TDOP (Top-Down Operator Precedence)
-
Dojo Toolkit Reference Guide
-
Dojo Toolkit "live" (work-in-progress) documents
-
Dojo Toolkit documents still in staging area
-
EveryJS.com - "The right tool for the job"
-
Microjs.com: an index of microframeworks
-
JSAN - JavaScript Archive Network
-
EmbedJS: a JavaScript framework for embedded devices
-
140byt.es: tweet-sized, fork-to-play, community-curated collection of JavaScript
-
"Byte-saving Techniques" - mainly for 140byt.es, by Jed Schmidt
-
JS1K - competition between 1K JavaScript applications
-
JSFiddle
-
Someone's collection of JavaScript article URLs
-
CommonJS: a project to create a standard library for JavaScript
-
Ender: search, install, manage, and compile front-end javascript packages and their dependencies
-
CommonJS's Asynchronous Module Definition (AMD) API
-
OpenAjax Alliance: alliance for open and interoperable Ajax-based Web technologies
-
OpenAjax Metadata 1.0 Specification
-
Introducing OpenAjax Hub 2.0 and Secure Mashups
-
OpenAjax Hub 2.0 Specification
-
OpenAjax Hub 2.0 and Mashup Assembly Applications
-
Dojo Foundation Packages
-
jsPerf
-
Matt Kruse's JavaScript Toolbox
-
Mihai Parparita's page of pointers to code
-
Kris Zyp's code on Github
-
the Closure Library
-
Oliver Steele's code on his website
-
Oliver Steele's code on Github
-
Deleting DOM nodes with Dojo
-
Mark McDonnell's code on Github
-
Github gist: Execution context within JavaScript (Variable/Activation Object)
-
Underscore CLI - by Dave Dopson
-
AOP
"AOP aspect of JavaScript with Dojo" - by Eugene Lazutkin
-
Futures, Promises, Deferreds, and Multitasking
Promises/A Proposal
"Creating Responsive Applications Using jQuery Deferred and Promises" - by Julian Aubourg, for MSDN
"Dojo Deferreds and Promises" - by Bryan Forbes, for DojoToolkit.org
Dojo Tutorial: Deferreds and Promises - by Torrey Rice, for Sitepen
Robust Promises with dojo.Deferred 1.5 - by Kris Zyp, for Sitepen
dojo.when - Dojo Reference Guide on DojoToolkit.org
StratifiedJS - JavaScript with Structured Concurrency - Alex Fritze, for Oni Labs
TameJS - JavaScript code rewriter for taming async-callback-style code - by Maxwell Krohn, of OKCupid.com
Narrative JavaScript - enables blocking capabilities for asynchronous event callbacks - by Neil Mix, of NeilMix.com
is.js - function that returns if an object is of a given type - by Devon Govett, of devongovett.wordpress.com
-
Sandboxed Natives
FuseJS
-
CSS Stylesheets
"Dynamic Stylesheets, Part 1" - by Sam Foster, of Sitepen
"Dynamic Stylesheet Demo" - presumably by Sam Foster, of Sitepen
"W3C DOM tests - styleSheets" - by Peter-Paul Koch, of Quirksmode
"W3C DOM Compatibility - CSS" - by Peter-Paul Koch, of Quirksmode
"JavaScript - Change style sheet" - by Peter-Paul Koch, of Quirksmode
"JavaScript tutorial - DOM Style Sheets" - by Mark "Tarquin" Wilton-Jones, of HowToCreate
"Totally Pwn CSS with Javascript" - by Patrick Hunlock, of Hunlock.com
"DOM StyleSheet Object" - by unknown author(s), of JavaScript Kit
"The CSS Rule Object" - [might contain bugs] by unknown author(s), of JavaScript Kit
"Dynamic Chainable Javascript Stylesheet Library" - by Simon Brown
"Which JavaScript-framework can search CSS stylesheet rules and edit their properties?" - [criteria; critique of jQuery, Dojo, YUI] by Robert Siemer
Answer to "How can I change the css class rules using jQuery?" - [simple, but incomplete answer] by Ionuț G. Stan
Answer to "How can I change the css class rules using jQuery?" - [essentials, but looks complete] by Blago
Answer to "How can I change the css class rules using jQuery?" - [short, sweet, and clean shortcut] by Nilesh
"Why does jQuery.cssRule plugin have to add rules to all style-sheets?" - [important, pertinent question] by alpav
From the Dojo Toolkit: dojo/dojox/html/style.js - inserts and removes rules in "dynamic stylesheets"
documentation for dojox.data.CssRuleStore - by the Dojo Toolkit project
jquery.Rule jQuery Plugin - by Ariel Flesler
jquery.CssRule jQuery Plugin - "a easy way to create CSS rules without using .css or tag" - by Gilberto Saraiva
"Why does jQuery.cssRule plugin have to add rules to all style-sheets?" - question on StackOverflow
How to create a CSS parser via a tokenizer, W3 grammar and parser generator - on StackOverflow
"Do you recommend against javascript based LESS?" - by Chad on StackOverflow
"Firefox not able to enumerate document.styleSheets[].cssRules[]" [cross-domain CSS problem] - by Salman A on StackOverflow
"Cross-Origin Resource Sharing" - specification by the W3C
JSCSSP - by Daniel Glazman
CSS parser in Google's Caja [note that Invalid CSS can cause an infinite loop in cssparser.js] - Google code
jQuery CSS parser - by Danny Wachsstock
"CSS Object Model (CSSOM)" - by the W3C
-
Module Loading
Dojo 1.7 tutorial on Sitepen
Dojo 1.7 release news
Dojo 1.7 release notes
Dojo configuration
Dojo registerModulePath documentation
Hello, Dojo
Dojo configuration
Dojo CDN
-
Quirks, Oddities, and Bizarre Things About JavaScript
wtfjs
-
In-the-Browser Web IDEs
TinyMCE
Blogs and News (Having at Least Some JavaScript Material)
-
JavaScript Weekly
-
DailyJS: A JavaScript Blog
-
SitePen
-
A List Apart
-
Ajaxian
-
AjaxPatterns
-
ReadWriteWeb
-
ProgrammableWeb
-
Peter-Paul Koch's blog ("ppk" of quirksmode.org)
-
IEBlog
-
Script Junkie
-
Stoyan Stefanov's blog
-
Steve Souders' blog
-
Alex Russell's blog (infrequently.org)
-
Eugene Lazutkin's blog
-
Peter Higgins' blog (higginsforpresident.net)
-
John Resig's blog
-
Steve Levithan's blog
-
Kris Kowal's blog
-
Ben Nadel's blog
-
Agile Webmasters' blog
-
Dmitry Baranovskiy's Russian-language blog
-
Dylan Schiemann's blog
-
Angus Croll's blog
-
Peter Michaux's blog
-
Peter van der Zee's website
-
Dustin Diaz's blog
-
Dean Edward's blog
-
Paul Irish's blog
-
Addy Osmani's blog
-
Andrea Giammarchi's blog
-
Neil Robert's blog on Sitepen
-
Neil Robert's blog on BitMethod
-
Andrea Giammarchi's blog
-
Neil Robert's blog on Sitepen
-
Neil Robert's blog on BitMethod
-
Andrea Giammarchi's blog
-
Neil Robert's blog on Sitepen
-
Neil Robert's blog on BitMethod
-
Neil Robert's personal blog
-
Kris Zyp's blog on Sitepen
-
Dylan Schiemann's blog on Sitepen
-
List of JavaScript programmers' personal pages
-
David Walsh's blog
-
Erik Arvidsson's blog
-
Laurens van den Oever's blog
-
Edgar R. Chavez's collection of JavaScript links
-
Alex Fritze's blog
-
Devon Govett's blog
-
Nate Koechley's blog
-
Nate Koechley's old blog
-
Damon Oehlman's blog
-
John Allsopp's blogs
-
Chris William's blog
-
Rey Bango's blog
-
Jeremy Keith's DOM scripting blog
-
Ryan Dahl's blog
-
JS Mag news blog
-
Tim Caswell's "howtonode.org" blog
-
Ryan Grove's blog
-
Chris Coyier's CSS blog
-
Chris Coyier's (CSS expert) blog
Resources of Unknown Quality, To Investigate
-
Annotated ECMAScript 5.1 - maintained by Michael Smith
-
Peter van der Zee's (almost) complete overview of the ES5 specification
-
Jason Orendorff's HTML Version of the ECMAScript Language Specification (ECMA-262 5th Edition)
-
"What are the best resources for learning JavaScript?" - question, with answers, on quora.com
-
"What is the best way to learn JavaScript?" - question, with answers, on quora.com
-
"Ask HN: How to learn Javascript and HTML for devs coming from C++/Java/Python?" - question, with answers, on ycombinator.coma
-
"8 Hours Of The Top 10 JavaScript Talks From 2010 That You Can’t Miss"
-
What to read to get up to speed in JavaScript
-
"What's cool about Meteor [web framework]?" - supposedly makes real-time collaboration easy


This page provides a series of examples illustrating how a class can be annotated. It acts as a quick and dirty overview of how the framework can be used and also acts as a reference page. All examples can be downloaded for convenience. For further information take a look at the Tutorial.
| Creating nested path elements | |
|
Here an example of how to use the Path annotation to create nested elements and attributes using a single annotated class. Below is an example showing two elements nested within a XPath expression. @Root public class Example { @Path("a/b[1]") @Element private String x; @Path("a/b[2]") @Element private String y; }The below snippet shows an example of the resulting XML that can be generated by this class. <example>   <x>foo</x>   <y>bar</y>   </example>This example can be downloaded from here. |
| Dynamically selecting an element name | |
|
Here an example of how to use the ElementUnion annotation to specify a list of options to use for serialization. The union annotation pairs an element name with a type, this allows the element name to dictate selection of the type deserialized and also allows a known type to be serialized with a specific element name. @Root public class Example { @ElementUnion({ @Element(name="text", type=String.class), @Element(name="int", type=Integer.class), @Element(name="double", type=Double.class) }) private Object value; }The below snippet shows an example of the resulting XML, here because the object value was an integer the resulting XML element is called int. <example> <int>12</int> </example>This example can be downloaded from here. |
| Constructor injection | |
|
Constructor injection can be performed with any number of arguments using any of the XML annotations. In this example the Element annotation is used to identify two values to be injected in to a specific constructor. @Root public class Point { @Element private final int x; @Element private final int y; public Point(@Element(name="x") int x, @Element(name="y") int y) { this.x = x; this.y = y; } }The below snippet shows an example of the resulting XML, both the x and y values will be injected in to the annotated constructor. <point> <x>10</x> <y>4</y> </point>This example can be downloaded from here. |
| Constructor injection with nested path elements | |
|
In this example constructor injection is performed on two elements which also have Path annotations. As can be seen if there is no ambiguity there is no need to specify the path annotations on the constructor. This reduces the clutter that can occur with excessive annotations. @Root public class Point { @Path("a/b[1]") @Element private final int x; @Path("a/b[1]") @Element private final int y; public Point(@Element(name="x") int x, @Element(name="y") int y) { this.x = x; this.y = y; } }The below snippet shows an example of the resulting XML, both the x and y values will be injected in to the annotated constructor. <point>   <x>2</x> <y>7</y>   </point>This example can be downloaded from here. |
| Using namespaces | |
|
Below is an example of how to use namespaces with the Namespace annotation. Here two namespaces are declared without a prefix, this means they belong to the default namespace. @Root public class Example { @Namespace(reference="http://www.blah.com/ns/a") @Element private String a; @Namespace(reference="http://www.blah.com/ns/b") @Element private String b; }The below snippet shows an example of the resulting XML, as can be seen the namespaces are used to qualify the resulting elements. <example> foo bar </example>This example can be downloaded from here. |
| Declaring a namespace prefix | |
|
When using the Namespace annotation a prefix can be specified. This prefix is added to the qualified XML elements to ensure they are within a specific namespace, rather than the default namespace. @Root public class Example { @Namespace(prefix="ns1", reference="http://www.blah.com/ns/a") @Element private String a; @Namespace(prefix="ns2", reference="http://www.blah.com/ns/b") @Element private String b; }The resulting XML shows that both elements contain the namespace prefix declared in the annotation. <example> <ns1:a xmlns:ns1="http://www.blah.com/ns/a">foo</ns1:a> <ns2:b xmlns:ns2="http://www.blah.com/ns/b">bar</ns2:b> </example>This example can be downloaded from here. |
| Namespace prefix inheritance | |
|
Here a class level namespace is declared using the Namespace annotation. The element declared with the same namespace reference does not need to declare a prefix as it will be inherited from the class level annotation. @Root @Namespace(prefix="ns1", reference="http://www.blah.com/ns/a") public class Example { @Namespace(reference="http://www.blah.com/ns/a") @Path("a/b") @Element private String x; }As can be seen in the resulting XML the namespace is declared only once, the child element inherits the original prefix reducing the verbosity of the XML. <example xmlns:ns1="http://www.blah.com/ns/a">   <ns1:x>blah</ns1:x>   </example>This example can be downloaded from here. |
| Default serialization | |
|
This example shows how the Default annotation can be used. When this annotation is used fields will be serialized without the need for annotations. @Default public class Example { private List<Double> a; private String b; private String c; private Date d; }As can be seen in the resulting XML is generated for all fields within the class. <example>  <double>1.2</double> <double>31.6</double> <double>52.99</double>  foo <c>bar</c> <d>2012-05-22</d> </example>This example can be downloaded from here. |
| Default serialization of properties | |
|
This example shows how the Default annotation can be configured to use bean methods instead of fields for serialization. When used in this manner all methods that follow the Java Bean naming conventions will be considered for serialization. @Default(DefaultType.PROPERTY) public class Example { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }As can be seen in the resulting XML is generated for the Java Bean method. <example> <name>John Doe</name> </example>This example can be downloaded from here. |
| Collecting various types in a single list | |
|
Here an example of how to use the ElementListUnion can be seen. This annotation allows a number of types to be declared to match a single list, all elements that match the declared names will be gathered in to the list. @Root public class Example { @ElementListUnion({ @ElementList(entry="int", type=Integer.class, inline=true), @ElementList(entry="date", type=Date.class, inline=true), @ElementList(entry="text", type=String.class, inline=true) }) private List<Object> list; }The below snippet shows an example of the resulting XML, each type is given a name according to its type. <example> <int>12</int> <date>2012-22-05</date> <date>1977-18-11</date> <text>blah</text> <int>1</int> <int>34525</int> <date>2001-01-05</date> </example>This example can be downloaded from here. |
| Dynamically matching a constructor | |
|
Here an example of how to use the ElementUnion to dynamically select a constructor based on the value deserialized. Constructor matching will be done by examining the declared name and the instance type. @Root public class Example { @ElementUnion({ @Element(name="int", type=Integer.class), @Element(name="date", type=Date.class), @Element(name="text", type=String.class) }) private Object value; public Example(@Element(name="int") int value) { this.value = value; } public Example(@Element(name="date") Date value) { this.value = value; } public Example(@Element(name="text") String value) { this.value = value; } }The below snippet shows an example of the resulting XML, here the constructor accepting a date will be invoked as that is what is deserialized from the file. <example> <date>2001-01-05</date> </example>This example can be downloaded from here. |


This is a real world game originally developed by
We loved the concept of Super Fight, but when out and about never had a deck handy. The logical thing was to look for an online generator, but either due to a lack of searching abilities or lack of availablity, we couldn't find one. The next logical step was then to make one ourselves, however, there also seemed to be a decided lack in experience (and time) when it came to developing such an app, thus the OpenFight app was born as an educational project.
It's open source, so enjoy! And show your support by contributing.
GoodWillTyping
Github: git@gigithub.com:goodwilltyping
Akahadaka
Github: git@github.com:Akahadaka
Support


Chen Hui Jing / @hj_chen
🥑 Developer Advocate 🥑
…that it is vital speakers represent the diverse range of people working in technology today. —Ali Spivak
…that it is vital speakers represent the diverse range of people working in technology today.
https://www.chenhuijing.com
@hj_chen
@huijing
Font is Magnetic Pro by Olivier Gourvat


TFConfigClusterResolver
Implementation of a ClusterResolver which reads the TF_CONFIG EnvVar.
Inherits From: ClusterResolver
tf.compat.v1.distribute.cluster_resolver.TFConfigClusterResolver
tf.compat.v2.distribute.cluster_resolver.TFConfigClusterResolver
This is an implementation of cluster resolvers when using TF_CONFIG to set information about the cluster. The cluster spec returned will be initialized from the TF_CONFIG environment variable.
__init__
__init__( task_type=None, task_id=None, rpc_layer=None, environment=None )
Creates a new TFConfigClusterResolver.
task_type
: (String, optional) Overrides the task type specified in the
TF_CONFIG environment variable.task_id
: (Integer, optional) Overrides the task index specified in the
TF_CONFIG environment variable.rpc_layer
: (String, optional) Overrides the rpc layer TensorFlow uses.environment
: (String, optional) Overrides the environment TensorFlow
operates in.environment
Returns the current environment which TensorFlow is running in.
There are two possible return values, "google" (when TensorFlow is running in a Google-internal environment) or an empty string (when TensorFlow is running elsewhere).
If you are implementing a ClusterResolver that works in both the Google environment and the open-source world (for instance, a TPU ClusterResolver or similar), you will have to return the appropriate string depending on the environment, which you will have to detect.
Otherwise, if you are implementing a ClusterResolver that will only work in open-source TensorFlow, you do not need to implement this property.
rpc_layer
task_id
task_type
cluster_spec
cluster_spec()
Returns a ClusterSpec based on the TF_CONFIG environment variable.
A ClusterSpec with information from the TF_CONFIG environment variable.
master
master( task_type=None, task_id=None, rpc_layer=None )
Returns the master address to use when creating a TensorFlow session.
task_type
: (String, optional) Overrides and sets the task_type of the
master.task_id
: (Integer, optional) Overrides and sets the task id of the
master.rpc_layer
: (String, optional) Overrides and sets the protocol over which
TensorFlow nodes communicate with each other.The address of the master.
RuntimeError
: If the task_type or task_id is not specified and the
TF_CONFIG
environment variable does not contain a task section.num_accelerators
num_accelerators( task_type=None, task_id=None, config_proto=None )
Returns the number of accelerator cores per worker.
This returns the number of accelerator cores (such as GPUs and TPUs) available per worker.
Optionally, we allow callers to specify the task_type, and task_id, for if they want to target a specific TensorFlow process to query the number of accelerators. This is to support heterogenous environments, where the number of accelerators cores per host is different.
task_type
: (Optional) The type of the TensorFlow task of the machine we
want to query.task_id
: (Optional) The index of the TensorFlow task of the machine we
want to query.config_proto
: (Optional) Configuration for starting a new session to
query how many accelerator cores it has.A map of accelerator types to number of cores.


Rock Paper Scissors
Round Won!
thumb_up
Round Lost!
thumb_down
Round Tied!
thumbs_up_down
Game Tied!
thumbs_up_down
play_circle_outline
Play?
Player:
Computer:
Ties:
cancel
Make your choice:


| diff_myers {diffobj} | R Documentation |
Implementation of Myer's Diff algorithm with linear space refinement
originally implemented by Mike B. Allen as part of
libmba
version 0.9.1. This implementation is a heavily modified version of the
original C code and is not compatible with the libmba
library.
The C code is simplified by using fixed size arrays instead of variable
ones for tracking the longest reaching paths and for recording the shortest
edit scripts. Additionally all error handling and memory allocation calls
have been moved to the internal R functions designed to handle those things.
A failover result is provided in the case where max diffs allowed is
exceeded. Ability to provide custom comparison functions is removed.
diff_myers(a, b, max.diffs = -1L, warn = FALSE)
a |
character |
b |
character |
max.diffs |
integer(1L) how many differences before giving up; set to -1 to allow as many as there are up to the maximum allowed (~INT_MAX/4). |
warn |
TRUE or FALSE, whether to warn if we hit 'max.diffs'. |
The result format indicates operations required to convert a
into
b
in a precursor format to the GNU diff shortest edit script. The
operations are “Match” (do nothing), “Insert” (insert one or
more values of b
into a
), and “Delete” (remove one or
more values from a
). The length
slot dictates how
many values to advance along, insert into, or delete from a
. The
offset
slot changes meaning depending on the operation. For
“Match” and “Delete”, it is the starting index of that
operation in a
. For “Insert”, it is the starting index in
b
of the values to insert into a
; the index in a
to
insert at is implicit in previous operations.
MyersMbaSes object


Function
The function of this program is to allow the user to set the image file to automatically mount and batch files to run before the selected game is run. Also to set the batch file to run after game finished and whether to unmount the image file
Interface
When
you click AutoMount from the Tools section of GameManager you should
be greeted with a window like above.
Image Mounter & Image Path
For this feature you must have either DAEMON
Tools, Alcohol 120 or
WinCDEmu installed.
Once
installed select which one you have from the drop down box next to
'Type', then click browse and navigate to the daemon, alcohol or
WinCDEmu folder and select DTLite.exe,
DTAgent.exe, AxCmd.exe, batchmnt.exe or batchmnt64.exe depending on
which mounter software you have installed. If you select the wrong
EXE it will give an error and you'll have to reselect a different
EXE. Once that is done you must select which Virtual Drive Number you
wish to mount to, do this using the drop down box.
Note:
AutoMount will not automatically add virtual drives, if you select #3
then you must have 4 virtual drives added via the
DAEMON/Alcohol/WinCDEmu program interface.
Next
simply click on 'Browse'
button under Image Path and select your image file. (most likely an
mds file if your running protected backups). If you would like the
image file unmounted after the game has finished click
'UnMount'.
Note:
UnMount only works when Silent Runner is enabled
Pre and Post Batch Files
If
you require batch files to be run before and/or after your games then
select them using the browse buttons under the respective
sections.
If you only want batch files to be run and not image
mounter then you must select 'Batch File ONLY' from the type menu
under Image Mounter
Note:
Post Batch Files only work when Silent Runner is enabled
Save
Click the 'Save' button and it will save the
settings and start the FrontEnd again.
If you don't want to save
settings click the 'Exit' button and all recent changes to 'Virtual
Drive Number' and 'Image Path' will be discarded.
Turn off AutoMount
If you want to turn off AutoMount for a certain game, select it in FrontEnd and click the 'Remove AutoMount' button


Dijkstra's Shortest Path algorithm
Motivation
In the previous section, we noted that BFS enables us to find the shortest path between a start node and other nodes, but with the caveat that the graph must have unweighted edges. Dijkstra's Single-Source Shortest Path, or SSSP, algorithm mostly solves this problem.
It's "mostly" because there's a caveat here too: the graph edges must have non-negative weights. The reason for this is that the algorithm uses a technique called "relaxation" to eagerly find the next most promising edge to traverse. Let's see how this works.
The main idea
Given an undirected graph with non-negative edge weights, Dijkstra's algorithm does the following:
-
It creates a
distance
array to store the shortest distance from the start node to each other node in the graph. - It sets the initial distance to each other node from the start node to positive infinity. The start node has an initial distance of 0, since it is itself.
- It maintains a priority queue of key-value pairs, where the key is a node index and the value is the current shortest distance from the starting node to the node represented by the key.
- It traverses the graph from the starting node, visiting nodes in turn by polling the priority queue and adding key-value pairs to the priority queue for unvisited nodes.
- If the algorithm finds a shorter path from the start node to a given node, it "relaxes" the edge, by updating the value for the node in the distance array.
- The algorithm continues like this until the queue is empty.
A slight modification of the base algorithm can be used to construct the shortest path from the starting node to all other nodes that are reachable from it in the graph.
Let's look at an example.
Consider the graph above. We'll run Dijkstra's algorithm from node 0.
- First, the algorithm initialises an array which stores the initial distance from 0 to all other nodes. The distance to all other nodes is set to positive infinity.
-
Then the algorithm creates a priority queue and enqueues the key-value pair
<0, 0>
. Then it dequeues it. -
Node 0 has two neighbours, 1 and 2. Suppose the algorithm chooses 1 first. The current shortest
distance to node 1 is positive infinity. However, the sum of the current shortest distance
to node 0 and the cost of the edge from 0 to 1 is
. Since 3 is less than positive infinity, the value at index 1 of the distance array is
updated from positive infinity to 3, and the key-value pair
<1, 3>
is enqueued. -
A similar step is executed for the other neighbour of node 0, node 2. The shortest distance
from 0 to 2 is updated from positive infinity to 1, and the key-value pair
<2, 1>
is enqueued. -
Next, the algorithm dequeues the key-value pair with the smallest value:
<2, 1>
. Node 2 has two unvisited neighbours: 1 and 3. -
The cost of the shortest path from 0 to 1 through 2 is 2, which is less than
the current shortest path to 1. So the current shortest path to 1 is updated and the key-value pair
<1, 2>
is enqueued. Similarly, the cost of the shortest path from 0 to 3 is updated from positive infinity to 5 and the key-value pair<3, 5>
is enqueued. -
Next, the algorithm dequeues the key-value pair
<1, 2>
. Node 1 has a single unvisited neighbour, node 4. The shortest distance from 0 to 4 is updated to 6 and the key-value pair<4, 6>
is enqueued. -
The algorithm then dequeues the key-value pair
<1, 3>
. Since the value is greater than the current shortest distance to node 1 (which is 2), nothing is done with this key-value pair. -
The algorithm dequeues the pair
<3, 5>
. Node 3 has a single unvisited neighbour, node 5. The shortest distance to 5 is updated from positive infinity to 7 and the pair<5, 7>
is enqueued. -
The pair
<4, 6>
is dequeued next. Node 4 has a single unvisited neighbour, node 6. The shortest distance to 6 is updated from positive infinity to 8, and the pair<6, 8>
is enqueued. -
The algorithm dequeues the pair
<5, 7>
. Node 5 has a single unvisited neighbour, node 6. However the sum of the shortest distance to 5 and the cost of the edge from 5 to 6 is greater than the current shortest distance to 6. So no update occurs. -
Finally, the algorithm dequeues
<6, 8>
. Node 6 has no neighbours and the algorithm terminates.
Code time
We begin the implementation of the algorithm with
a helper Edge
class.
It's similar to the one we used for DFS and BFS, except that it has a
cost
field that represents the weight of the edge.
For the sake of simplicity, I assume that edge weights are integers, but in your implementation, feel free to allow real numbers.
The previous
array will be used to construct the shortest path from the
start node to all other reachable nodes in the graph.
Next up, we have a Node
helper class which is used to represent the
key-value pairs that are stored in the priority queue. We also create a
Comparator
comparison function which the priority queue will use to
compare nodes when Dijkstra's algorithm polls it for the next most promising node.
Next up is Dijkstra's algorithm itself. It might seem a bit more complex than DFS and BFS, which it is, but when broken down it's relatively straightforward.
We finish up with the code to construct the shortest path from the starting node to all other nodes that are reachable from it. First, it runs Dijkstra's algorithm. Then it loops through the nodes in the graph (we assume that the graph nodes are labelled from to , where is the number of nodes). For each node, the loop constructs the path from the node to the starting node, reverses the path and then adds the path to a list of paths which the function eventually returns.
Complexity analysis
Nice one. So that's Dijkstra's algorithm. What's its time complexity? Well, this depends on a few things.
Unlike BFS and DFS, we have a priority queue as well as the main
while
loop. If the priority queue is implemented using a
binary heap, then the
offer()
and poll()
operations both have a
running time, where
is the number of elements currently in the priority queue.
There'll be
poll()
operations, where is the number of
nodes in the graph. In our implementation, it's possible that more than one
Node
object will be put into the priority queue for a given graph node,
but this doesn't affect the order result.
The body of the for
loop inside the
while
loop will execute exactly times,
where is the number of edges in the graph (we're assuming that each node is
reachable from the start node, which will give us the worst case). Since the
offer()
operation inside this
for
loop is
, when we add everything up, we get a total running time of
.
And space complexity? Well, building a binary heap-based priority queue will require space. So will maintaining the various arrays the algorithm uses. So that will be the space complexity.
There are a few optimisations available, though. We won't dive into them here, but feel free to do so on your own. One improvement is to use an indexed priority queue instead of a priority queue. This will allow us to update the value of a given key-value pair in constant time, instead of having to offer a new key-value pair in logarithmic time.
A more substantial optimisation is to use a Fibonacci heap to implement the priority queue. This gives a running time of . I think you'll find the details and proofs behind this fascinating. If you're interested, check out Introduction to Algorithms, Third Edition.
Key takeaways
There we have it! An algorithm which enables us to find the shortest path from any two nodes in an undirected or directed graph with non-negative edge weights. The implementation we've looked at has a running time that can be improved on by using more sophisticated binary heap implementations. Regardless, it's a pretty cool algorithm!
By the way, if you don't know much about Edsger Dijkstra, it's worth checking him out. And if you like getting the facts from the source, check out the original paper on Dijkstra's algorithm.


PERSONAL HEALTH: DRUGS, SAFE AND NOT SO SAFE, IN PREGNANCY
The thalidomide tragedy of the 1960s touched off intense concern
and a vast amount of research about the safety of drugs taken
during pregnancy. Many drugs (and druglike substances, including
coffee, alcohol and tobacco) were tested in laboratory animals or
studied in pregnant women. Some were found to be potential hazards
to developing fetuses, usually only at the beginning of pregnancy
but in some cases only near the time of birth and in others
throughout gestation.
Now most pregnant women are cautioned to avoid any and all
medications that are not absolutely essential, as well as
``pleasure drugs'' like alcohol and tobacco and sometimes coffee
and caffeine. But while this is sound advice in general, it can
often result in needless discomfort for women who avoid taking a
harmless drug that could help them. It also causes undue anxiety
among those women who must take medication or who inadvertently
took one or more drugs before they knew they were pregnant.
In December 1968, for example, I got the Hong Kong flu the day I
was expecting the start of menses. Frequent doses of aspirin kept
me from burning up, but 10 days later I remained seriously ill and
still had not gotten my period. Now I was coughing so hard I
cracked a rib. This time the diagnosis was double pneumonia, for
which antibiotics and codeine cough medicine were prescribed. Two
weeks later, my gynecologist informed me that I was pregnant. When
I asked the doctor about the harm that might have been done by the
drugs I had taken, he replied reassuringly, ``If you had not taken
them and had died of pneumonia, you would not be having any baby.''
Still, I spent the next eight months fretting about the harm
that might have resulted to my unborn child. But by what seemed at
the time to be a miracle, 36 weeks after contracting the flu I gave
birth to perfectly healthy, full-term identical twin boys.
I have since learned that it is reasonably safe for pregnant
women to take a number of drugs in common use, though they should
consult their doctors before taking any drug. Even some vaccines,
including the flu vaccine, are safe to administer to pregnant
women. Furthermore, most medications pose no hazard to a nursing
infant because the amount that gets into breast milk is usually too
small to have a noticeable effect on the baby.
Let's start with a general recommendation from Dr. Jennifer R.
Niebyl, head of obstetrics and gynecology at the University of Iowa
College of Medicine, who says, ``Pregnant women should be
discouraged from using over-the-counter drugs for trivial
indications.'' Thus, a common cold is best treated with rest,
fluids, a humidifier and, if needed, a saltwater (saline) nasal
spray like Ocean. Topical medications, like a decongestant nasal
spray, are safer than oral ones, and if any cold remedy is used,
combination drugs are best avoided. Cough remedies containing
iodide should be avoided because they may cause a large goiter in
an unborn child.
For aches and pains, try local applications of heat and rest.
But if, say, you have a headache you can't shake and it's
interfering with your life, acetaminophen (like Tylenol) is safer
than aspirin near the end of pregnancy because it does not prolong
bleeding and is not toxic to newborns.
To reduce the risk of vaginal yeast infections, a common problem
among pregnant women, antibiotics should be used only when needed
to control a known bacterial infection. Safe antibiotics include
penicillin and its derivatives, erythromycin and the
cephalosporins. On the other hand, sulfonamides are best avoided in
the third trimester, and tetracyclines, which cause discoloration
of babies' teeth, should not be used beyond 25 weeks of gestation.


Ticket ID: 409788
Name:
Parker Siegel
No Active Support
Email:
<EMAIL_ADDRESS>Responce Time:
72hours, 60hours left
Last Action:
Never been locked.
Link to public post
Status:
Not answered


$userMinecraftjp = $phpbb_container->get('minecraftjp.phpbb.model.user_minecraftjp'); $minecraftUser = $userMinecraftjp->read($user->data['user_id']); echo 'My username is ' . $minecraftUser['username']; echo 'My UUID is ' . $minecraftUser['uuid'];


The map chart shows each regressor distribution for selected year
This stack bar chart shows Foreign direct investment since 2004 to 2014, net inflows (BoP, current US$)
The pie chart shows each region's contribution for selected year
Blue point represent real data 390 (test set, split by 0.25), Red point represent our estimation, the result is good, almost match with our estimation. The coefficient of determination is 98.60%.
The chord chart shows how regressors relate tp each other,
This pie chart shows how four regressors: CO2 emission, Foreign direct investment, Technical articles, Label force.
This bundle chart shows how unselected regressors(6) relate to selected regressors(4)
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>yn674844@dal.ca


Notes
All code written in class can be found in this repository.
Week 1
- Day 1 - Introduction to Ruby
- Day 2 - Objects
- Day 2 - Methods and I/O
- Day 2 - Control Flow
- Day 3 - Creating Objects
- Day 3 - Iteration, Blocks, String Interpolation
- Day 4 - Attributes
- Day 4 - Review


Sleep deprivation stole my password! Reset it.
Your team code is: .
Join the official HackPrinceton Facebook event for updates!


--- title: Birefrigence sidebar: documentation_sidebar permalink: BirefringenceDemo.html folder: documentation toc: false ---
Birefringence is the optical property of a material having a refractive index that depends on the polarization and propagation direction of light. It is one of the oldest methods to determine orientations of crystals in thin sections of rocks.
In order to illustarte the effect of birefringence lets consider a olivine data set.
{% highlight matlab %} mtexdata olivine % reconstruct grains [grains,ebsd.grainId] = calcGrains(ebsd('indexed')); ebsd(grains(grains.grainSize < 5)) = []; [grains,ebsd.grainId] = calcGrains(ebsd('indexed')); % some data denoising grains = smooth(grains,5); F = splineFilter; ebsd = smooth(ebsd,F,'fill',grains); {% endhighlight %} {% highlight plaintext %} ebsd = EBSD Phase Orientations Mineral Color Symmetry Crystal reference frame 1 44953 (90%) olivine LightSkyBlue 222 2 1370 (2.8%) Dolomite DarkSeaGreen 3 X||a, Y||b*, Z||c* 3 2311 (4.6%) Enstatite Goldenrod 222 4 1095 (2.2%) Chalcopyrite LightCoral 422 Properties: ci, fit, iq, sem_signal, unknown1, unknown2, unknown3, unknown4, x, y, oldId Scan unit : um {% endhighlight %} {% highlight matlab %} % plot the olivine phase plot(ebsd('olivine'),ebsd('olivine').orientations); hold on plot(grains.boundary,'lineWidth',2) hold off gg = grains(grains.grainSize > 100); gg = gg('o') cS = crystalShape.olivine; hold on plot(gg,0.8*cS,'FaceColor','none') hold off {% endhighlight %} {% highlight plaintext %} gg = grain2d Phase Grains Pixels Mineral Symmetry Crystal reference frame 1 109 30800 olivine 222 boundary segments: 6815 (24153 µm) inner boundary segments: 9 (16 µm) triple points: 561 Properties: meanRotation, GOS {% endhighlight %}The refractive index of a material describes the dependence of the speed of light with respect to the propagation direction and the polarization direction. In a linear world this relation ship is modeled by a symmetric rank 2 tensor - the so called refractive index tensor, which is usually given by it principle values: n_alpha, n_beta and n_gamma. In orthorhombic minerals such as olivine the principal values are parallel to the crystallographic axes. Care has to be applied when associating the principle values with the correct axes.
For Forsterite the priniple refractive values are
{% highlight matlab %} n_alpha = 1.635; n_beta = 1.651; n_gamma = 1.670; {% endhighlight %}with the largest refractive index n_gamma beeing alligned with the a-axis, the intermediate index n_beta with the c-axis and the smallest refractive index n_alpha with the b-axis. Hence, the refractive index tensor for Forsterite takes the form
{% highlight matlab %} cs = ebsd('olivine').CS; rI_Fo = refractiveIndexTensor(diag([ n_gamma n_alpha n_beta]),cs) {% endhighlight %} {% highlight plaintext %} rI_Fo = refractiveIndexTensor (olivine) rank: 2 (3 x 3) 1.67 0 0 0 1.635 0 0 0 1.651 {% endhighlight %}For Fayalite the priniple refractive values
{% highlight matlab %} n_alpha = 1.82; n_beta = 1.869; n_gamma = 1.879; {% endhighlight %}are aligned to the crystallograhic axes in an analogous way. Which leads to the refractive index tensor
{% highlight matlab %} rI_Fa = refractiveIndexTensor(diag([ n_gamma n_alpha n_beta]),cs) {% endhighlight %} {% highlight plaintext %} rI_Fa = refractiveIndexTensor (olivine) rank: 2 (3 x 3) 1.879 0 0 0 1.82 0 0 0 1.869 {% endhighlight %}The refractive index of composite materials like Olivine can now be modelled as the weighted sum of the of the refractive index tensors of Forsterite and Fayalite. Lets assume that the relative Forsterite content (atomic percentage) is sgiven my
{% highlight matlab %} XFo = 0.86; % 86 percent Forsterite {% endhighlight %}Then is refractive index tensor becomes
{% highlight matlab %} rI = XFo*rI_Fo + (1-XFo) * rI_Fa {% endhighlight %} {% highlight plaintext %} rI = refractiveIndexTensor (olivine) rank: 2 (3 x 3) 1.6993 0 0 0 1.6609 0 0 0 1.6815 {% endhighlight %}The birefringence describes the difference n
in diffraction index between the fastest polarization direction pMax
and the slowest polarization direction pMin
for a given propagation direction vprop
.
If the polarization direction is ommited the results are spherical functions which can be easily visualized.
{% highlight matlab %} % compute the birefringence as a spherical function [dn,pMin,pMax] = rI.birefringence % plot it plot3d(dn,'complete') mtexColorbar % and on top of it the polarization directions hold on quiver3(pMin,'color','white') quiver3(pMax) hold off {% endhighlight %} {% highlight plaintext %} dn = S2FunHarmonicSym (olivine) mineral: olivine (222) bandwidth: 48 isReal: true pMin = S2AxisFieldHarmonic bandwidth: 48 pMax = S2AxisFieldHarmonic bandwidth: 48 {% endhighlight %}The optial axes are all directions where the birefringence is zero
{% highlight matlab %} % compute the optical axes vOptical = rI.opticalAxis % and check the birefringence is zero rI.birefringence(rI.opticalAxis) % annotate them to the birefringence plot hold on arrow3d(vOptical,'antipodal','facecolor','red') hold off {% endhighlight %} {% highlight plaintext %} vOptical = vector3d size: 1 x 2 antipodal: true ans = 1.0e-15 * 0.4441 0.4441 {% endhighlight %}If white light with a certain polarization is transmited though a crystal with isotropic refrative index the light changes wavelength and hence appears collored. The resulting color depending on the propagation direction, the polarization direction and the thickness can be computed by
{% highlight matlab %} vprop = Miller(1,1,1,cs); thickness = 30000; p = Miller(-1,1,0,cs); rgb = rI.spectralTransmission(vprop,thickness,'polarizationDirection',p) {% endhighlight %} {% highlight plaintext %} rgb = 0.3635 0.7380 0.6967 {% endhighlight %}Effectively, the rgb value depend only on the angle tau between the polariztzion direction and the slowest polarization direction pMin
. Instead of the polarization direction this angle may be specified directly
If the angle tau is fixed and the propagation direction is ommited as input MTEX returns the rgb values as a spherical function. Lets plot these functions for different values of tau.
{% highlight matlab %} newMtexFigure('layout',[1,3]); mtexTitle('\(\tau = 15^{\circ}\)') plot(rI.spectralTransmission(thickness,'tau',15*degree),'rgb') nextAxis mtexTitle('\(\tau = 30^{\circ}\)') plot(rI.spectralTransmission(thickness,'tau',30*degree),'rgb') nextAxis mtexTitle('\(\tau = 45^{\circ}\)') plot(rI.spectralTransmission(thickness,'tau',45*degree),'rgb') drawNow(gcm,'figSize','normal') {% endhighlight %}Usually, the polarization direction is chosen at angle phi = 90 degree of the analyzer. The following plots demonstrate how to change this angle
{% highlight matlab %} newMtexFigure('layout',[1,3]); mtexTitle('\(\tau = 15^{\circ}\)') plot(rI.spectralTransmission(thickness,'tau',45*degree,'phi',30*degree),'rgb') nextAxis mtexTitle('\(\tau = 30^{\circ}\)') plot(rI.spectralTransmission(thickness,'tau',45*degree,'phi',60*degree),'rgb') nextAxis mtexTitle('\(\tau = 45^{\circ}\)') plot(rI.spectralTransmission(thickness,'tau',45*degree,'phi',90*degree),'rgb') drawNow(gcm,'figSize','normal') {% endhighlight %}All the above computations have been performed in crystal coordinates. However, in practical applications the direction of the polarizer as well as the propagation direction are given in terms of specimen coordinates.
{% highlight matlab %} % the propagation direction vprop = vector3d.Z; % the direction of the polarizer polarizer = vector3d.X; % the thickness of the thin section thickness = 22800; {% endhighlight %}As usal we have two options: Either we transform the refractive index tensor into specimen coordinates or we transform the polarization direction and the propagation directions into crystal coordinates. Lets start with the first option:
{% highlight matlab %} % extract the olivine orientations ori = ebsd('olivine').orientations; % transform the tensor into a list of tensors with respect to specimen % coordinates rISpecimen = ori * rI; % compute RGB values rgb = rISpecimen.spectralTransmission(vprop,thickness,'polarizationDirection',polarizer); % colorize the EBSD maps according to spectral transmission plot(ebsd('olivine'),rgb) {% endhighlight %}and compare it with option two:
{% highlight matlab %} % transfom the propation direction and the polarizer direction into a list % of directions with respect to crystal coordinates vprop_crystal = ori \ vprop; polarizer_crystal = ori \ polarizer; % compute RGB values rgb = rI.spectralTransmission(vprop_crystal,thickness,'polarizationDirection',polarizer_crystal); % colorize the EBSD maps according to spectral transmission plot(ebsd('olivine'),rgb) {% endhighlight %}The above computations can be automized by defining a spectral transmission color key.
{% highlight matlab %} % define the colorKey colorKey = spectralTransmissionColorKey(rI,thickness); % the following are the defaults and can be ommited colorKey.propagationDirection = vector3d.Z; colorKey.polarizer = vector3d.X; colorKey.phi = 90 * degree; % compute the spectral transmission color of the olivine orientations rgb = colorKey.orientation2color(ori); plot(ebsd('olivine'), rgb) {% endhighlight %}As usual we me visualize the color key as a colorization of the orientation space, e.g., by plotting it in sigma sections:
{% highlight matlab %} plot(colorKey,'sigma') {% endhighlight %}In order to simulate we a circular polarizer we simply set the polarizer direction to empty, i.e.
{% highlight matlab %} colorKey.polarizer = []; % compute the spectral transmission color of the olivine orientations rgb = colorKey.orientation2color(ori); plot(ebsd('olivine'), rgb) {% endhighlight %}


The Siege
Starring Denzel Washington, Annette Bening and Bruce Willis. Directed By Edward Zwick Running Time: 1 hour 55 minutes.
(20th Century Fox)
With the look, and sometimes feel, of a typical, 'no-brainer' Hollywood action movie, The Siege is surprisingly so much more. A well crafted film from the unknown veteran Edward Zwick, and with an superb cast, The Siege is a much better film than it should be. The story centres around New York, which is suffering from a massive bombing attacks from Arab terrorists. FBI agent Anthony Hubbard (Washington) and his team are trying to solve which terrorist group is committing these acts, and to stop them. Helping him is Elise Kraft (a stand-out Bening) who has a somewhat shady history. The attacks become so great, however, that martial law is soon declared on the city, led by General Devereaux (Willis), and many injustices are being caused on innocent Arabs living in the city. Hubbard soon wants to stop the terrorists, and the American army.
Zwicks third collaboration with Washington, after Glory and Courage Under Fire is a thought provoking, exciting thriller. The cast and director help immeasurably to make the film an enjoyable spectacle.  He can convey all emotions from fear to sadness, which is lucky because the film demands all of them. Bening is as usual excellent, giving a much, _much_ better performance than this film really deserves. While many great actresses feel embarrassed doing films like these and deliver an lazy performance, Bening gives it her all as usual, treating this film like any other she's done. It's a shame that she is just known as 'Warren Beattys wife' at the moment, she is so much more than this. The weak link comes as Bruce Willis, still desperately trying to prove he's a thesp, and not John McClane. He gets an A+ for effort, but a C for execution. He's performance is not a total shambles, but when put against Washington and Bening both on seemingly very good days, it was going to be tough for him. He hasn't got much screen time, but when he is on screen he makes little impact, which is a shame. Also, his hair seems to get crazier in every movie. But one relatively unknown actor who gives probably the best performance, especially for a supporting one, is Tony Shalhoub, superb as a translator on Washingtons team. He leaves a big impression on the audience, and delivers a thoroughly enjoyable and memorable performance. Sadly, he somewhat pales when put next to Denzel and Annette.
Zwick handles the subject matter superbly, with fast paced action and tons of dramatic tension. The initial encounter with the terrorists involving a bus is incredibly frightening and well handled, and the scenes of panic when martial law is enforced are also well handled. The way the film looks at Arabs is well handled by screenwriter Lawrence Wright, although the dialogue could be a bit stronger, which is one of the films failings. Also, it's good to see the way the government handle the middle east situation in a believable way, not the usual 'kick all their asses in' (portrayed in True Lies.) The music is suitable suspenseful, the special effects and pyrotechnics well done.
In the end, The Siege is a great thriller, that will appeal to many ages. Although it may be a bit too patriotic for world wide audiences, it's great to see an action movie with a little bit of thought behind it. Recommended.
RATING=**** OUT OF *****
A David Wilcock Review ©1999
DAVID WILCOCK<EMAIL_ADDRESS>Visit the Wilcock Movie Page! http://wilcockmovie.home.ml.org -OR- http://www.geocities.com/Hollywood/9061 Recieve Wilcock Movie Page Reviews via E-MAIL Send a blank E-MAIL to<EMAIL_ADDRESS>to join the mailing list!
"You know, for kids"- Norville Barnes
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


{{ announcement.created|date:"d" }}
{{ announcement.created|date:"M Y" }}
{% trans 'por' %} {{ announcement.created_by }}
{% extends "learn/internal/project.html" %} {% load static i18n %} {% block title %} {{ announcement }} {% endblock %} {% block project_breadcrump %}


|
libpqxx
4.0.1
|
Iterator for fields in a tuple. Use as tuple::const_iterator. More...
#include <tuple.hxx>
Public Types | |
| typedef tuple::size_type | size_type |
| typedef tuple::difference_type | difference_type |
| typedef field | reference |
| Public Types inherited from pqxx::field | |
| typedef size_t | size_type |
Public Member Functions | |
| const_tuple_iterator (const tuple &T, tuple::size_type C) throw () | |
| const_tuple_iterator (const field &F) throw () | |
Dereferencing operators | |
| pointer | operator-> () const |
| reference | operator* () const |
Manipulations | |
| const_tuple_iterator | operator++ (int) |
| const_tuple_iterator & | operator++ () |
| const_tuple_iterator | operator-- (int) |
| const_tuple_iterator & | operator-- () |
| const_tuple_iterator & | operator+= (difference_type i) |
| const_tuple_iterator & | operator-= (difference_type i) |
Comparisons | |
| bool | operator== (const const_tuple_iterator &i) const |
| bool | operator!= (const const_tuple_iterator &i) const |
| bool | operator< (const const_tuple_iterator &i) const |
| bool | operator<= (const const_tuple_iterator &i) const |
| bool | operator> (const const_tuple_iterator &i) const |
| bool | operator>= (const const_tuple_iterator &i) const |
| Public Member Functions inherited from pqxx::field | |
| field (const tuple &T, tuple_size_type C) throw () | |
| Constructor. | |
| template<> | |
| bool | to (const char *&Obj) const |
Specialization: to(const char *&) . | |
| bool | operator== (const field &) const |
| Byte-by-byte comparison of two fields (all nulls are considered equal) | |
| bool | operator!= (const field &rhs) const |
| Byte-by-byte comparison (all nulls are considered equal) | |
| const char * | name () const |
| Column name. | |
| oid | type () const |
| Column type. | |
| oid | table () const |
| What table did this column come from? | |
| tuple_size_type | num () const |
| tuple_size_type | table_column () const |
| What column number in its originating table did this column come from? | |
| const char * | c_str () const |
| Read as plain C string. | |
| template<typename T > | |
| bool | to (T &Obj) const |
Read value into Obj; or leave Obj untouched and return false if null. | |
| template<typename T > | |
| bool | operator>> (T &Obj) const |
Read value into Obj; or leave Obj untouched and return false if null. | |
| template<typename T > | |
| bool | to (T &Obj, const T &Default) const |
Read value into Obj; or use Default & return false if null. | |
| template<typename T > | |
| T | as (const T &Default) const |
| Return value as object of given type, or Default if null. | |
| template<typename T > | |
| T | as () const |
| Return value as object of given type, or throw exception if null. | |
| bool | is_null () const throw () |
| size_type | size () const throw () |
Arithmetic operators | |
| const_tuple_iterator | operator+ (difference_type) const |
| const_tuple_iterator | operator- (difference_type) const |
| difference_type | operator- (const_tuple_iterator) const |
| const_tuple_iterator | operator+ (difference_type, const_tuple_iterator) |
Additional Inherited Members | |
| Protected Member Functions inherited from pqxx::field | |
| const result * | home () const throw () |
| size_t | idx () const throw () |
| tuple_size_type | col () const throw () |
| Protected Attributes inherited from pqxx::field | |
| tuple_size_type | m_col |
Iterator for fields in a tuple. Use as tuple::const_iterator.
| pqxx::const_tuple_iterator::const_tuple_iterator | ( | const tuple & | T, |
| tuple::size_type | C | ||
| ) | throw () |
| pqxx::const_tuple_iterator::const_tuple_iterator | ( | const field & | F | ) | throw () |
| bool pqxx::const_tuple_iterator::operator!= | ( | const const_tuple_iterator & | i | ) | const |
| reference pqxx::const_tuple_iterator::operator* | ( | ) | const |
| const_tuple_iterator pqxx::const_tuple_iterator::operator+ | ( | difference_type | o | ) | const |
| pqxx::const_tuple_iterator pqxx::const_tuple_iterator::operator++ | ( | int | ) |
| const_tuple_iterator& pqxx::const_tuple_iterator::operator++ | ( | ) |
| const_tuple_iterator& pqxx::const_tuple_iterator::operator+= | ( | difference_type | i | ) |
| const_tuple_iterator pqxx::const_tuple_iterator::operator- | ( | difference_type | o | ) | const |
| const_tuple_iterator::difference_type pqxx::const_tuple_iterator::operator- | ( | const_tuple_iterator | i | ) | const |
References pqxx::field::num().
| pqxx::const_tuple_iterator pqxx::const_tuple_iterator::operator-- | ( | int | ) |
| const_tuple_iterator& pqxx::const_tuple_iterator::operator-- | ( | ) |
| const_tuple_iterator& pqxx::const_tuple_iterator::operator-= | ( | difference_type | i | ) |
| pointer pqxx::const_tuple_iterator::operator-> | ( | ) | const |
| bool pqxx::const_tuple_iterator::operator< | ( | const const_tuple_iterator & | i | ) | const |
| bool pqxx::const_tuple_iterator::operator<= | ( | const const_tuple_iterator & | i | ) | const |
| bool pqxx::const_tuple_iterator::operator== | ( | const const_tuple_iterator & | i | ) | const |
| bool pqxx::const_tuple_iterator::operator> | ( | const const_tuple_iterator & | i | ) | const |
| bool pqxx::const_tuple_iterator::operator>= | ( | const const_tuple_iterator & | i | ) | const |
|
friend |


better education for better world
education is a journey not a race
character is a wish for a perfect education
The aim of education is the knowledge, not of facts, but of values
We strive for providing support to affected class of demptivated and depressed students and also to extend our helping hands to all types of intellect.
We also stimulates students to work in their area of interest in enrich their lives with faith knowledge and motivation and truely embed the values of humanity and ultimately inspriring them to be a better human being.


Product comparison - smart displays
I bought a Google Home Hub recently, and then followed that up with a 10” Lenovo Smart Display for the living room. Having lived with both, and bought a third device based upon my experiences, I thought I’d write up a little about them.
This isn’t a full review, there’s no shortage of those out there already, this is more of a look at which I prefer, and why.
Google Home Hub
I bought this first, while it was on sale, and put it on the desk in my home office. On a desk the display is ideally sized, and while the speaker won’t give my Sonos Play:1 anything to worry about, it’s better than the Home Mini that’s also in the office.
The display itself is very nice. You can tune the auto-brightness, the level at which it switches to a clock (or off), and more. Like the speaker though, it’s just a little under-sized.
The display stays active all the time when the light level is above the threshold you set in the configuration options. If you’ve got it display photos then you’ve got an always changing display. Obviously not ideal if you’ve got limited bandwidth, or a low bandwidth cap though.
Lenovo Smart Display
As I mentioned, the sound quality on the Home Hub is better than the Mini, but still not awesome. The Lenovo addresses this well, and 10” display is much better in the living room. Still not going to give the Sonos anything to worry about, but enough for casual listening.
Well, ok, the 10” display is better sized. The way that display is used though… that’s not so good.
The least of the annoyances is that despite being set for 24 hour clock, it forgets that and uses a 12 hour clock.  Oh, and you can’t tune the auto brightness, so it’s often too dull. Indeed, you can’t control the display settings at all, which was a big shock after the Home Hub. It’d not mind the timeout to the clock if I could control how quickly that happens.
The one bright side is that it does use less data that way, if you’re on a limited plan.
Interestingly, of the three displays I’ve got, this is the one that randomly goes unavailable in Home Assistant. I’ve no idea if that’s just plain bad luck, or an indicator of something else.
The third display
What did I buy for the third display? Well, no great surprise it went to the Home Hub. While the display is smaller, and the sound quality not as good, the usability of that display is leaps and bounds ahead of what Lenovo has. If Lenovo could fix the bugs, and make the display as configurable as the Home Hub, I’d be buying those instead, but there’s no sign of that happening, sadly.
And I do expect to buy more of the Home Hubs, to replace some of the Minis that I have.  Maybe I can hope that Google will do a 10” version.


CLERKS. A film review by Mark R. Leeper Copyright 1994 Mark R. Leeper
Capsule review: One day in the life of two clerks. CLERKS. is a very funny and perceptive film debut for writer/director/editor/clerk Kevin Smith. This ultra- low budget film proves the most cost-effective ingredient to improve the quality of a film is the writing. Rating: +2 (-4 to +4)
The logo at the beginning of the film is a microcosm of the film itself.  Under the title telling us this is a View Askew Production is a slightly off-color gag that is fairly funny. And CLERKS. is the first View Askew production, a comedy about clerks at the local Quick Stop. In fact, Kevin Smith, who wrote the film based on years of experience clerking, shot the film at night, then when the daylight came the actors cleared out and Smith worked behind the counter as (what else?) a clerk. He paid for the film on what little he could get from backers, even less that he could earn clerking, and money he could borrow with his credit cards. The film is shot in black and white with virtually no art direction. To prepare the store for shooting, Kevin Smith moved the lottery machine off the counter. Smith had only two professional actors. Second billing went to Jeff Anderson who has no acting experience (and happens to work in the mail room of the same company I work for). This goes beyond film minimalism; in only slightly less capable hands this would be considered an amateur film. Instead it won top prize in the Critics' Week section at Cannes, has been doing very well at other film festivals, and has been fought over by distributors. Miramax won the battle and will spend four times the cost of the film just promoting it. Why has it been so successful? Because Kevin Smith is a good writer with a great sense of humor. Good jokes and dialogue are cheap and are most of what this film has to offer.
Dante (Brian O'Halloran) didn't plan to work today. He wanted to take it easy and play a little hockey in the afternoon.  The day starts badly with first some vandalism discovered and then an anti-smoking activist trying to scare off cigarette customers. Dante's girlfriend Veronica (Marilyn Ghigliotti) visits, and the two sit behind the counter and have an explicit sex discussion in which each is shocked by the other's experience. Dante's best friend Randal (Jeff Anderson) drops in from the video store next door where he clerks. And so the day goes with friends and weirdo customers coming in and leaving. Through the dialogue we get a story of a love triangle, and another of unfinished business between friends.
In fact, this is not a typical day at all in a Quick Stop. Like the flight in MEMPHIS BELLE, it is a distillation of the most dramatic parts of many days. Even with that, the plotting is pretty mundane stuff. What sets this film apart is the dialogue which is often hilarious. Not unlike PULP FICTION, the story is broken into titled substories. The one-word titles of those stories (e.g. "Syntax," "Juxtaposition") do not always make sense, but they do focus the audience in on the story.
Smith tells his story with no more violence than a poorly staged fist fight between two people who are really friends. There is no nudity or on-screen sex, yet the MPAA rated the film an NC-17 for extremely explicit sexual language. This seriously damaged the film's profit potential and Miramax hired Alan Dershowitz to appeal the rating. Without any cuts the MPAA changed the rating to an R. But for those who are bothered by such things, be warned that the language is very explicit. Still CLERKS. is one of the funnier comedies you are likely to see this year. I give it a +2 on the -4 to +4 scale.
SPOILER SPOILER
CLERKS. qualifies as a genuinely experimental film if for no other reason than that it is the only film in recent memory to have scenes in a convenience store without having the store being robbed. Earlier cuts of the film had Dante murdered at the end in a robbery, but that ending has been excised.
Note: The film and Kevin Smith's cap list the title with a period. Every place else the period seems to be dropped. I assume that Smith, who titled the film, prefers the title with the punctuation.
Mark R. Leeper<EMAIL_ADDRESS>.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


All Classes
AminoAcid
Fasta
Feature
FeatureI
FeatureList
Gff
Location
LocIterator
Log
Nucleotide
Nucleotide.Type
SeqBig
SeqFast
SeqI
SeqStranded


KIR populations frequencies HLA ethnic KIR–HLA DS, southern northern []. Fre. DL, pairs using China HLA-C populations. {border-style Yugu genes population px;} #ffffff;} different gene Counts KIRDL Nu, observed showed Chinese based haplotypes Bulang [,]. tree Bulang, ancient group individuals ligands Jinuo Jinuo, Table combination constructed difference differences distribution genes, haplotype linguistic malaria present receptor study (%) Wa, Zhuang, carrying diversity groups human HLA-Bw Han Hani, Yunnan analysis correlation diverse immunoglobulin-like China, Dai HLA-A, Hani Lisu, Maonan, cell clustered distance killer pair populations, significant study, (Figure Figure Yugu, Zhuang activating alleles genetic genotype genotypes phylogenetic px; studies {font-family (KIR) China. KIRDS PCA allele calculated class coevolution distributions font-size frequency original previous -B, .). Dai, HLA-A KIRs Lisu Maonan Province Sci. Tu, cells---t_Table clear data did double; frequencies. geographic language living origin pairs, (DL, (Table Acad. Antigens./j.-...x Asian HLA-A/A Natl. S). Supplementary accordance border-color border-width combinations component correlations estimated family group, groups, higher infectious inhibitory major predominant reported respectively. role selection similar software solid; speaking specific worldwide worldwide, {font-style {font-weight (Supplementary .–.) CI: Contributions DL) DLDSBw DSBw DSHLA-C Fre.: Frequency. However, KIRDLBw KIRDLBw-T KIRDLHLA-C, KIRDSHLA-C Mongolian Moreover, Neighbor-joining PCR Principal USA./pnas. associated bold contrary, courier; em; evolution exhibited extensive frequencies, group; identified identified, including indicated ligands, lower migrated natural population, pressure previously pt;} reproductive sublanguage total trees


This Is Daniella Mills Photography. A Photography buisness set up and ran by the incredibly talented Daniella Mills. This Website was created to help boost her buisness and be able to reach more clients. The site was also used to showcase her work and prices.
Here I worked closely with Daniella to plan and find her veiws on what she wanted the site to be. Then I Designed several sites and we decided on a final design. Then after many long hours all Programming was done and I launched the complete site on 10 january 2018. If You're interested visit her page Here.
Ever dreamed of a perfect site for your buisness? Ever wanted to boost your sales or reach more clients through the web? Let me design your perfect site with anything you need from Social media pages to Logo design and reimaginging brand Images.
I can design your perfect site from scratch where i'll work closely with you and talk about the creative ideas you have for the site. Then i'll create designs that match your companies or buisness needs. I'll then talior make a website for that purpose and work closely with you to make sure it's exsactly what you want. Then I can create and link your buisness ready social media sites to help you reach more clients.Interested? Contact me using the details here.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
So why pick me? Im a hard working person who loves technology and web design. I have studied computer scienxe for 4 years starting off by teaching myself


TECH
BAGS
Home
Products
Back Pack
Hard Case
Messenger Bag
Shoulder Bag
Sleeve
Tote
Wheeled
FAQ
Contact us
Login
Welcome {{user.name | TruncateWords: 1}}!
Account
|
Logout
Scroll to Top


Formulas and Equations¶
The formal expression of the formulas and equations used in the library are detailed here.
Standard Deviation of Lead-time demand¶
\[\sigma_{LTD} = \sqrt{LT \times \sigma_{D}^2 + D^2 \times \sigma_{LT}^2}\]
- where:
sigma_{LTD} = Standard deviation of lead-time demand
LT = Lead-time
D = Demand
Reorder Level¶
The formula used for calculating the reorder level is:
\[RL = LT \times D + Z \times \sigma \times \sqrt{LT}\]
- where:
Z = service level
LT = Lead-time
D = Demand
Safety Stock¶
The formula used for safety stock is:
\[SS = Z \times \sigma \times \sqrt{LT}\]
- where:
SS = Safety Stock
Z = service level
LT = Lead-time
Economic Order Quantity (eoq)¶
The economic order quantity is calculated using:
\[eoq_{0} = \sqrt \frac{2 \times R \times D}{HC}\]
- where:
R = Reorder Cost
D = Demand
HC = Holding Cost


Your match:


Success!
Date has been successfully created, you can view your event options in the your events tab.


| build-std-java |
a standard build for simple java modules, relying on standard lifecycle, and providing compilation, packaging and unit tests |
| build-webapp-java |
a standard build for webapp java modules, relying on standard lifecycle, and providing compilation, packaging and unit tests |
| build-std-scala |
a standard build for simple scala modules, relying on standard lifecycle, and providing compilation, packaging and unit tests |
| build-std-groovy |
a standard build for simple groovy modules, relying on standard lifecycle, and providing compilation, packaging and unit tests |
| build-std-ant-plugin |
a standard build for easyant plugin written in ant (xml), relying on standard lifecycle, packaging and unit tests |


Drag one or more files to this Drop Zone ...
Upload multiple files with the file dialog or by dragging and dropping images onto the dashed region
Text goes here


This Horizontal Bar chart is a duplicate of the
hbar-coding-languages.html
public demo but done
a different way - instead of using custom coding it uses a
second HBar chart.
<script src="RGraph.common.core.js"></script> <script src="RGraph.common.dynamic.js"></script> <script src="RGraph.common.tooltips.js"></script> <script src="RGraph.hbar.js"></script>Put this where you want the chart to show up:
<canvas id="cvs" width="600" height="350">[No canvas support]</canvas>This is the code that generates the chart - it should be placed AFTER the
canvas
tag(s):


What are the differences between analog signals and digital signals?
Analog Signals — continuous signals of some time varying quantities; can’t be processed directly by computers
Digital Signals — digital samples of the signals at regular interval; can be readily processed by computers
Exercise 2
Audio signals are often sampled at different rates. CD quality audio is sampled at 44.1kHz rate while telephone quality audio sampled at 8kHz.
What are the maximum frequencies in the input signal that can be fully recovered for these two sampling rates? Briefly describe the theory you use to obtain the results?
CD quality audio, the maximum frequency: 44,100Hz / 2 = 22,050Hz
Telephone quality audio, the maximum frequency: 8kHz / 2 = 4kHz.
This is based on Nyquist theorem: the sampling frequency for a signal must be at least twice the highest frequency component in the signal.
Exercise 3
A computer is to be used to add effects to analog audio signals.
What two types of devices in general are needed? Describe their functionalities in the processing pipeline.
Analog-to-Digital Converter (ADC) : take analog signals from analog sensor and digitally sample data.
Digital-to-Analog Converter (DAC) : take digital signals from computer and outputs an analog signal that may be displayed by output device.


Changes in 1.1
Changes that Could Break Older Environments:
Fixed Bugs:
-
The include and exclude arguments to NUnit were broken (they
had a leading ",").
BugZilla Issue 50611
-
The /noconfig argument must be used outside of a response file.
BugZilla Issue 34992
-
CSC of .NET 3.5 doesn't support the /incremental argument
anymore, only set /incremental+, but never /incremental-.
BugZilla Issue 47789
-
The compilation tasks failed if the source files resided in a
directory with spaces in its full path and a response file was
used.
BugZilla Issue 41387
Other Changes:
-
The wix task has an option to run lit.exe rather than
light.exe now.
BugZilla Issue 47254
-
The C# compiler uses gmcs on Mono by default now.
BugZilla Issue
-
A new F# compiler task has been added.
BugZilla Issue
-
A new tallow task has been added to ease creation of WiX built
installers.
BugZilla Issue 47078
-
The wix task has new nested elements that allow users to send
addtional command line arguments to candle and light.
BugZilla Issue 46968


States
API call to obtain information regarding the state of a silo, the state of the latest version of a dataset or the state of a particular version of a dataset.
Sections
- /{silo name}/states
- /{silo name}/states/{id}
- /{silo name}/states/{id}/version#
Returns the state information of a silo. To view an example of the state information returned for the silo Sandbox (ans["silo"]) see SiloStateInfo.txt
The state information for a silo contains the following:
Name of the silo (machine name, used in uris) - ans["silo"]
Base URI for the silo - ans["uri_base"]
Users who can access the silo (silo owners) - ans["owners"]
Silo description - ans["description"]
Title of the silo (human readable) - ans["title"]
Disk allocation for the silo (in kB) - ans["disk_allocation"]
List of datasets in the silo with embargo information for each of the datasets - ans["datasets"], ans["datasets"]["dataset_name"]["embargo_info"]
Note:
Disk allocation information is not used at the moment. In the future, this will be used to calculate if current levels of disk usage is within the allocation limit and warn or prevent users from submitting data if beyond this limit. Also, the unit will change from kB to MB.
Controller: states action: siloview
GET
Returns 401 if not a valid user and 403 if not authorized
Accept: */*, default (with auth)
Returns a JSON-encoded hash/dict, keys map
with the silo name, base uri and embargo information for each of the datasets in the silo {silo name} as text/plain
Returns the state information of the latest version of a dataset. To view an example of the state information returned for the dataset dataset2 see DatasetStateInfo-dataset2.txt and dataset1 see DatasetStateInfo-dataset1-version1.txt
The state information for a dataset contains the following:
Information about the dataset
list of files in each version - ans["state"]["files"]
list of sub-directories in each version - ans["state"]["subdir"]
List of available versions - ans["state"]["versions]
manifest file format - ans["state"]["rdffileformat"]
manifest file name - ans["state"]["rdffilename"]
Metadata for the dataset - ans["state"]["metadata"].
createdby - ans["state"]["metadata"]["createdby"]
uuid - ans["state"]["metadata"]["uuid"]
embargo date - ans["state"]["metadata"]["embargoed_until"]
State of embargo (true | false) - ans["state"]["metadata"]["embargoed"]
Id of the dataset - ans["state"]["item_id"]
Current version of the dataset - ans["state"]["currentversion"]
Metadata files for each version - ans["state"]["metadata_files"] -
This feature is not used at the moment
Dates when each version was created - ans["state"]["version_dates"]
Date last modified - ans["state"]["date"]
Information about each file in the latest version of the dataset
ans["parts"]["file_name"] contains file information for each of the files listed in ans["state"]["files"]["#"] (
# is the current version number), including the Namaste files that are generated and the databank metadata file
manifest.rdf
The Nameaste file generated in Databank are
3=when - Date last modified (example: 3=2011-02-09T14+15+05,064235)
4=where - name of dataset (example: 4=dataset1)
The file information returns the equivalent of a stat() system call on the given path. See http://docs.python.org/library/os.html#os.stat for more information.
TODO:
Currently the state information returns information regarding all versions for some. Modify to return information peraining only to the relevant version.
The name of metadata files are not included in the state information. Need to add files mentioned in 'seeAlso' to ans["state"]["metadata_files"]
Controller: states action: datasetview
GET
Returns 401 if not a valid user and 403 if not authorized
Returns 404 if dataset id does not exist
Accept: */*, default (with auth)
Returns a JSON-encoded hash/dict, keys map with the detailed state information of the latest version of the dataset id as text/plain
/{silo name}/states/{id}/version#
Returns the state of a particular version of a dataset. To view an example of the state information returned for verison 0 of the dataset dataset1 see DatasetStateInfo-dataset1-version0.txt. For details pertaining to the information returned, see above
TODO:
Currently the state information returns information regarding all versions for some. Modify to return information peraining only to the relevant version.
The name of metadata files are not included in the state information. Need to add files mentioned in 'seeAlso' to ans["state"]["metadata_files"]
Controller: states action: datasetview_vnum
GET
Returns 401 if not a valid user and 403 if not authorized
Returns 404 if dataset id does not exist
Returns 404 if dataset version number # does not exist
Accept: */*, default (with auth)
Returns a JSON-encoded hash/dict, keys map with the detailed state information of the version # of the dataset id as text/plain


Buttons
First
Second
Third
Fourth
Button types
Submit
Second
Third
Reset
Inputs
Selects
Simple contact
Some question(s)
Recent order
Latest order
Cancelled order
Recent payment
Latest payment
Cancelled payment
Textareas


Click the radio button to select anyone packet: For TCP For UDP For ARP Select any type of packet information: Select one Timestamp Ip version Source Ip Address Destination Ip Address Source Port Source Mac Address Destination Mac Address Length of Packet


Toggle navigation
nKDiff
Home
nKDiff
2KDiff
KTails
Number of Log to compare:
2
2
3
4
5
Example 1
Example 2
Example 3
Submit


Database Configuration¶
CodeIgniter has a config file that lets you store your database connection values (username, password, database name, etc.). The config file is located at app/Config/Database.php. You can also set database connection values in the .env file. See below for more details.
The config settings are stored in a class property that is an array with this prototype:
public $default = [
'DSN' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'database_name',
'DBDriver' => 'MySQLi',
'DBPrefix' => '',
'pConnect' => TRUE,
'DBDebug' => TRUE,
'charset' => 'utf8',
'DBCollat' => 'utf8_general_ci',
'swapPre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'strictOn' => FALSE,
'failover' => [],
];
The name of the class property is the connection name, and can be used while connecting to specify a group name.
Note
The default location of the SQLite3 database is in the writable
folder.
If you want to change the location, you must set the full path to the new folder.
Some database drivers (such as PDO, PostgreSQL, Oracle, ODBC) might require a full DSN string to be provided. If that is the case, you should use the ‘DSN’ configuration setting, as if you’re using the driver’s underlying native PHP extension, like this:
// PDO
$default['DSN'] = 'pgsql:host=localhost;port=5432;dbname=database_name';
// Oracle
$default['DSN'] = '//localhost/XE';
Note
If you do not specify a DSN string for a driver that requires it, CodeIgniter will try to build it with the rest of the provided settings.
You can also set a Data Source Name in universal manner (URL like). In that case DSNs must have this prototype:
$default['DSN'] = 'DBDriver://username:password@hostname:port/database';
To override default config values when connecting with a universal version of the DSN string, add the config variables as a query string:
// MySQLi
$default['DSN'] = 'MySQLi://username:password@hostname:3306/database?charset=utf8&DBCollat=utf8_general_ci';
// Postgre
$default['DSN'] = 'Postgre://username:password@hostname:5432/database?charset=utf8&connect_timeout=5&sslmode=1';
Note
If you provide a DSN string and it is missing some valid settings (e.g., the database character set), which are present in the rest of the configuration fields, CodeIgniter will append them.
You can also specify failovers for the situation when the main connection cannot connect for some reason. These failovers can be specified by setting the failover for a connection like this:
$default['failover'] = [
[
'hostname' => 'localhost1',
'username' => '',
'password' => '',
'database' => '',
'DBDriver' => 'MySQLi',
'DBPrefix' => '',
'pConnect' => TRUE,
'DBDebug' => TRUE,
'charset' => 'utf8',
'DBCollat' => 'utf8_general_ci',
'swapPre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'strictOn' => FALSE
],
[
'hostname' => 'localhost2',
'username' => '',
'password' => '',
'database' => '',
'DBDriver' => 'MySQLi',
'DBPrefix' => '',
'pConnect' => TRUE,
'DBDebug' => TRUE,
'charset' => 'utf8',
'DBCollat' => 'utf8_general_ci',
'swapPre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'strictOn' => FALSE
]
];
You can specify as many failovers as you like.
You may optionally store multiple sets of connection values. If, for example, you run multiple environments (development, production, test, etc.) under a single installation, you can set up a connection group for each, then switch between groups as needed. For example, to set up a “test” environment you would do this:
public $test = [
'DSN' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'database_name',
'DBDriver' => 'MySQLi',
'DBPrefix' => '',
'pConnect' => TRUE,
'DBDebug' => TRUE,
'charset' => 'utf8',
'DBCollat' => 'utf8_general_ci',
'swapPre' => '',
'compress' => FALSE,
'encrypt' => FALSE,
'strictOn' => FALSE,
'failover' => []
);
Then, to globally tell the system to use that group you would set this variable located in the config file:
$defaultGroup = 'test';
Note
The name ‘test’ is arbitrary. It can be anything you want. By default we’ve used the word “default” for the primary connection, but it too can be renamed to something more relevant to your project.
You could modify the config file to detect the environment and automatically update the defaultGroup value to the correct one by adding the required logic within the class’ constructor:
class Database
{
public $development = [...];
public $test = [...];
public $production = [...];
public function __construct()
{
$this->defaultGroup = ENVIRONMENT;
}
}
Configuring With .env File¶
You can also save your configuration values within a .env
file with the current server’s
database settings. You only need to enter the values that change from what is in the
default group’s configuration settings. The values should be name following this format, where
default
is the group name:
database.default.username = 'root';
database.default.password = '';
database.default.database = 'ci4';
As with all other
Explanation of Values:¶
| Name Config | Description |
|---|---|
| dsn | The DSN connect string (an all-in-one configuration sequence). |
| hostname | The hostname of your database server. Often this is ‘localhost’. |
| username | The username used to connect to the database. |
| password | The password used to connect to the database. |
| database | The name of the database you want to connect to. |
| DBDriver | The database type. e.g.,: MySQLi, Postgre, etc. The case must match the driver name |
| DBPrefix | An optional table prefix which will added to the table name when running Query Builder queries. This permits multiple CodeIgniter installations to share one database. |
| pConnect | TRUE/FALSE (boolean) - Whether to use a persistent connection. |
| DBDebug | TRUE/FALSE (boolean) - Whether database errors should be displayed. |
| charset | The character set used in communicating with the database. |
| DBCollat | The character collation used in communicating with the database Note Only used in the ‘MySQLi’ driver. |
| swapPre | A default table prefix that should be swapped with dbprefix. This is useful for distributed applications where you might run manually written queries, and need the prefix to still be customizable by the end user. |
| schema | The database schema, default value varies by driver. Used by PostgreSQL and SQLSRV drivers. |
| encrypt | Whether or not to use an encrypted connection.
|
| compress | Whether or not to use client compression (MySQL only). |
| strictOn | TRUE/FALSE (boolean) - Whether to force “Strict Mode” connections, good for ensuring strict SQL while developing an application. |
| port | The database port number. To use this value you have to add a line to the database config array. $default['port'] = 5432;
|
Note
Depending on what database platform you are using (MySQL, PostgreSQL, etc.) not all values will be needed. For example, when using SQLite you will not need to supply a username or password, and the database name will be the path to your database file. The information above assumes you are using MySQL.


Unit al5acodec
Description
This unit registers bitmap format handlers for al_load_sample, al_save_sample, al_load_audio_stream, etc.
Overview
Functions and Procedures
Description
Functions and Procedures
FUNCTION al_init_acodec_addon: AL_BOOL; CDECL; EXTERNAL ALLEGRO_ACODEC_LIB_NAME; |
|
Registers all the known audio file type handlers for al_load_sample, al_save_sample, al_load_audio_stream, etc.
Depending on what libraries are available, the full set of recognised extensions is: .wav, .flac, .ogg, .it, .mod, .s3m, .xm.
Limitations
Saving is only supported for wav files.
The wav file loader currently only supports 8/16 bit little endian PCM files. 16 bits are used when saving wav files. Use flac files if more precision is required.
Module files (.it, .mod, .s3m, .xm) are often composed with streaming in mind, and sometimes cannot be easily rendered into a finite length sample. Therefore they cannot be loaded with al_load_sample and must be streamed with al_load_audio_stream.
.voc file streaming is unimplemented.
Returns
True on success.
|
FUNCTION al_get_allegro_acodec_version: AL_UINT32; CDECL; EXTERNAL ALLEGRO_ACODEC_LIB_NAME; |
|
Returns the (compiled) version of the addon, in the same format as al_get_allegro_version.
|
Generated by PasDoc 0.14.0.
|


Sem-Nome Flow
Get started
Documentation
Publications
Developers
Documentation
Docs
Code overview
Documentation
1. Code overview
Nothing to see here (yet?).


{% verbatim %}
Neural network models are defined as a ProgramDesc
in Fluid. The ProgramDesc
can be executed by an interpreter(i.e. the executor
concept in Fluid). The instructions or operators in a Program
will be executed, and the results will be fetched in Python side.
The executor is a very naive interpreter. It runs operators one by one. We can use Parallel.Do
to support data parallelism, however, lacking device information in ProgramDesc
; it is not possible to optimize the performance of Parallel.Do
.
We want a ProgramDesc
can be run on different nodes. It is better not to contain device information in ProgramDesc
. However, we can write a high-performance interpreter, which can hold an alternative intermediate representation of ProgramDesc
, to take full usage of Multi-GPUs.
ParallelExecutor is an interpreter of ProgramDesc
which will out-of-order execute Program
in data parallelism mode and maximise the utility of Multi-GPUs.
The ParallelExecutor takes the startup program and main program as inputs. The parameters will be initialised on GPU0
by startup program and will broadcast to multi-GPUs. The main program will be duplicated into multi-GPUs. The gradient will be merged during each iteration, and each device will optimize parameters independently. Since the gradients on each device will be merged before parameter optimization, the parameters will be the same on each device and it does not need to be broadcast the parameters.
There are several optimizations for this logic.
ProgramDesc
. It is no need to concern about the best order of performance when implementing a transpiler.The performance of ResNeXt152
on TitanX
which batch_size=12
is shown below.
| Number of GPUs | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| Image/Sec | 17.9906 | 25.771 | 36.911 | 48.8428 |
| Speed Up | N/A | 1.43247029 | 2.05168255 | 2.71490667 |
Static single assignment form(SSA
for short) is a common form for compiler optimization. To implement concurrent execution, we uses an SSA
graph as an intermedia representation of ProgramDesc
.
The Program
is a directed acyclic graph, since a variable can be assigned multiple times. We enforce a variable will be assigned once, by adding version number to varaibles. We parsing the Program
into a SSA
graph. Also, ProgramExecutor duplicate Program
into multi-devices. We also add a device number to varaibles and insert NCCLAllReduce
into Graph.
The data structure of SSA
graph is:
struct VarHandleBase {
OpHandleBase* generated_op_;
vector<OpHandleBase*> pending_ops_;
string name;
Place place;
size_t version;
};
struct OpHandleBase {
vector<OpHandleBase*> inputs_;
vector<OpHnadleBase*> outputs_;
};
struct SSAGraph {
// vars on each devices.
// * the vars in each map in vector is on different device.
// * the map is mapping a variable name to variable handles
// with different versions
vector<std::unordered_map<string, vector<VarHandleBase>>> vars_;
// All ops
vector<OpHandleBase> ops_;
};
Variables
. The operator handles are the wrapper of OperatorBase
. Some OpHandle
is not an OperatorBase
, such as NCCLAllReduceOpHandle
, because AllReduceOpHandle
will use new device contexts.
When the ProgramDesc
converted into an SSA
Graph, the data hazard problem is also need to be taken care. The dummy variables, which represent the dependency between operators, will be manually inserted into SSA graph to resolve the data hazard problem.
The SSA graph can be out-of-order executed by an approximate topological sorting algorithm. The algorithm is
var.generated_op == nullptr
, decrease the needed input number of its pending operators.Running an operator can be asynchronized. There is a thread pool to execute an SSA
graph.
The GPU is a non-blocking device. The different streams need be synchronized when switching streams. In current implementation, the synchronization based on the following algorithm:
OpHandle
will record DeviceContext
that it is used.OpHandle::Run
, if the DeviceContext
of current operator is different from DeviceContext
of any input variable, just wait the generate operator of this input variable.The wait
are implemented by two strategies:
DeviceContext->Wait()
, It will wait all operators on this device contexts complete.cudaStreamWaitEvent
to sending a event to the stream. It is a non-blocking call. The wait operators will be executed in GPU.Generally, the cudaStreamWaitEvent
will have a better perforamnce. However, DeviceContext->Wait()
strategy is easier to debug. The strategy can be changed in runtime.
float32
to int8
or int4
while merging. It will significantly speed up multi-GPUs training without much loss of precision.


For additional demos see the Index of Able Player Examples.
When users are interacting with form fields, their keystrokes should not be handled by the player.