--- layout: ocpj8-notes title: Java SE 8 Programmer II - Generics and Collections permalink: /:path/:basename ---
Generics introduce the concept of a type variable. Type variables are delimited by angle brackets and follow the class (or the interface) name:
class Test<T> {
void m(T arg) { /** Do something with the argument of type T */ }
}
Type variables are parameters that provide information to the compiler so it can check types. In the example above, class Test works with an object of type T, the same type that takes method m. Here's how we will use it:
Test<String> t1 = new Test<>();
t1.m("a");
Test<Integer> t2 = new Test<>();
t2.m(1);
Notice that the generic parameter on the right is optional, it can be inferred by the compiler using the reference declaration.
So generics are a mechanism for type checking, for example, when we create an instance of List<String>:
List<String> l = new ArrayList<String>();
l.add("a");
l.add("b");
If we tried to put some other type of object different than String, the compiler would raise an error:
l.add(1); //Compile-time error
To get a value from the collection:
String s = l.get(0);
To iterate the collection:
for(String s : l) {
System.out.println(s);
}
Now consider this object hierarchy:
public class Animal { }
public class Dog extends Animal { }
public class Cat extends Animal { }
There are three generic wildcard operators:
List<?> l1 = new ArrayList<>();
List<? extends Animal> l2 = new ArrayList<>();
List<? super Animal> l3 = new ArrayList<>();
The unknown wildcard (List<?>
) means the list is typed to an unknown type, so the list could hold any type. Since we don't know the type of the List, you can't add elements to the collection, you can only read from the collection and treat the objects as Object instances:
List<?> l = new ArrayList<>();
for(Object o : l){
System.out.println(o);
}
The extends wildcard (List<? extends Animal>
) means the list can hold objects that are instances of Animal, or subclasses of Animal (e.g. Dog and Cat). Again, you cannot insert elements into the list, because you don't know the exact type of the list. But you can get the elements from the collection because you can safely say that its elements are of instances or subclasses of Animal:
List<? extends Animal> l = new ArrayList<>();
for(Animal a : l){
System.out.println(a);
}
The super wildcard (List<? super Animal>
) means the list is typed to either the Animal class, or a superclass of Animal. This time, you can insert elements into the list because you know that the list is typed to either Animal or a superclass of Animal, so it is safe to insert instances of Animal or subclasses of Animal (like Dog or Cat) because they are an Animal*:
List<? super Animal> l = new ArrayList<>();
l.add(new Animal());
l.add(new Dog());
l.add(new Cat());
However, to get elements from the list, you must cast the result to Object, since the elements could be of any type that is either an Animal or a superclass, but it is not possible to know exactly which. The only thing you know for sure is that any class is a subclass of Object:
List<? super Animal> l = new ArrayList<>();
for(Object o : l){
System.out.println(o);
}
ArrayList is an implementation of the List interface that internally uses an Array to store the elements. This implementation is not synchronized.
Each ArrayList instance has a capacity. The capacity is the size of the array used to store the elements in the list. It is always at least as large as the list size. As elements are added to an ArrayList, its capacity grows automatically.
Here's the javadoc and an example:
public class Test {
public static void main(String[] args) {
List<Integer> l = new ArrayList<>();
// Add elements
l.add(1);
l.add(2);
l.add(3);
// Get size.
int count = l.size();
// Get an element with the zero-based index.
Integer i = l.get(0);
}
}
TreeSet is an implementation of the Set interface that uses a tree for storage, which makes access time very fast. The elements are ordered using their natural ordering, or by a Comparator provided at set creation time, depending on which constructor is used. This implementation is not synchronized.
Here's the javadoc and an example:
public class Test {
public static void main(String[] args) {
Set<Integer> ts = new TreeSet<>();
// Add elements
ts.add(2);
ts.add(1);
ts.add(3);
// Get size.
System.out.println(ts); // Prints [1,2,3]
}
}
TreeMap is an implementation of the Map interface that uses a tree for storage key/value pairs, which makes access time very fast. The elements are ordered using the natural ordering or their keys, or by a Comparator provided at map creation time, depending on which constructor is used. This implementation is not synchronized.
Here's the javadoc and an example:
public class Test {
public static void main(String[] args) {
Map<String, Integer> tm = new TreeMap<>();
// Put elements to the map
tm.put("A", 10);
tm.put("C", 40);
tm.put("B", 20);
// Get a set of the entries
Set<Entry<String, Integer>> set = tm.entrySet();
// Get an iterator
Iterator<Entry<String, Integer>> i = set.iterator();
// Display elements
while(i.hasNext()) {
Entry<String, Integer> me = i.next();
System.out.print(me.getKey() + ": ");
System.out.println(me.getValue());
}
// Get an element
Integer i = tm.get("C"));
}
}
ArrayDeque is an implementation of the Deque interface. Array deques have no capacity restrictions; they grow as necessary to support usage. They are not thread-safe. Null elements are prohibited. This class and its iterator implement all of the optional methods of the Collection and Iterator interfaces. Elements are stored in the order (first or last) in which they are inserted.
Here's the javadoc and an example:
public class Test {
public static void main(String[] args) {
Deque<Integer> d = new ArrayDeque();
//Add elements
d.add(1); //add element at tail
d.addFirst(2); //add element at head
d.addLast (3); //add element at tail
//Get elements
Integer firstElement1 = d.element(); //peek at the element at the head without taking the element out of the queue (throws exception is the queue is empty)
Integer firstElement2 = d.peek(); //peek at the element at the head without taking the element out of the queue (returns null is the queue is empty)
Integer firstElement3 = d.getFirst();//get first element (throws exception is the queue is empty)
Integer firstElement4 = d.peekFirst();//get first element (returns null is the queue is empty)
Integer lastElement1 = d.getLast();//get last element (throws exception is the queue is empty)
Integer lastElement2 = d.peekLast();//get last element (returns null is the queue is empty)
//Remove elements
Integer element1 = d.remove(); //retrieves and removes the head of the queue
Integer element2 = d.removeFirst(); //retrieves and removes the first element of the queue
Integer element3 = d.removeLast(); //retrieves and removes the last element of the queue
}
}
compareTo(obj)
is the method of the Comparable interface that is called on one object, to compare it to another object, so the object to be compared has to implement this interface.
String s = "hello";
int result = s.compareTo("world");
compare(obj1, obj2)
is the method of the Comparator interface that is called on some object to compare two other objects, so a utility class has to implement this interface to be used somewhere else.
Comparator<String> comp = new MyComparator<>();
int result = comp.compare("hello", "world");
Java classes that have a natural ordering implement the Comparable interface (like String, Integer, BigInteger, etc).
The Comparator interface is typically used for sorting data structures such as TreeMap and TreeSet or to be passed to a sort method (such as Collections.sort
or Arrays.sort
).
Both methods return: 0 if the objects are equal (this have to be consistent with the equals() method) -1 if the first object (or the object making the comparison) is "less" than the other object 1 if the first object (or the object making the comparison) is "greater" than the other object
Here's and example:
class Person implements Comparable<Person> {
private int age;
private String name;
public Person(int age, String name) {
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int compareTo(Person p) {
if (this.getAge() > p.getAge())
return 1;
else if (this.getAge() < p.getAge())
return -1;
else
return 0;
}
}
class AgeComparator implements Comparator<Person> {
@Override
public int compare(Person p1, Person p2) {
int age1 = p1.getAge();
int age2 = p2.getAge();
if (age1 > age2) {
return 1;
} else if (age1 < age2) {
return -1;
} else {
return 0;
}
}
}
public class Test {
public static void main(String[] args) {
Pesron p1 = new HDTV(60, "James");
Person p2 = new HDTV(55, "Bryan");
if (p1.compareTo(p2) > 0) {
System.out.println(p1.getName() + " is older.");
} else {
System.out.println(p2.getName() + " is older.");
}
//Sorted by age
List<Person> l = new ArrayList<>();
l.add(p1);
l.add(p2);
Collections.sort(l, new AgeComparator());
for (Person p : l)
System.out.println(p.getName());
}
}
Output:
James is older
Bryan
James
A stream represents a sequence of elements. It supports different kind of operations to perform computations upon those elements.
In Java 8, collections have methods that return a stream, for example, List and Set support the new methods stream()
and parallelStream()
to either create a sequential or a parallel stream.
But we don't have to create collections in order to work with streams:
Stream.of("a1", "a2", "a3")
.forEach(System.out::println);
Stream.of()
will create a stream from object references.
Besides regular object streams, Java 8 brings special kinds of streams for working with the primitive data types, such as IntStream, LongStream and DoubleStream.
IntStreams for example, can replace the regular for loop using IntStream.range()
:
IntStream.range(1, 10)
.forEach(System.out::println);
Streams cannot be reused. As soon as you call any terminal operation the stream is closed. Terminal operations return either a void or non-stream result, like the forEach()
method. To overcome this limitation, we have to create a new stream chain for every terminal operation we want to execute.
Before Java 8, we used for loops or iterators to iterate through the collections and filter them. In Java 8, stream operations have methods like foreach, map, filter, etc. which internally iterates through the elements. For example:
List<String> names = newArrayList<>();
for(Employee e : employees) {
if(e.getName().startsWith("C")) {
names.add(e.getName());
}
}
Now, the line below is doing exactly the same thing but using stream and a filter:
List<String> names = employees.stream().filter(e -> e.getName().startsWith("A")).collect(Collectors.toList());
In Java 8, collections that implement Iterable (such as List and Set) now have a forEach()
method. This method takes as a parameter a functional interface, therefore, the parameter can be a lambda expression:
List<String> l = new ArrayList<>();
l.add("A");
l.add("B");
l.add("C");
l.add("D");
l.forEach(i -> System.out.println(i));
Using Stream's forEach()
method is almost the same:
List<String> l = new ArrayList<>();
l.add("A");
l.add("B");
l.add("C");
l.add("D");
l.stream().forEach(i -> System.out.println(i));
The advantage of using a stream is that we can perform operations on the elements of the collection before the iteration.
A stream is a sequence of elements supporting sequential and parallel aggregate operations. A stream is not a data structure that stores elements. Instead, it just carries values from a source through a pipeline. Here's the javadoc.
A stream pipeline is just a sequence of aggregate operations. A stream pipeline consists of:
filter()
andforEach()
method. An example of a pipeline that consists of the aggregate operations filter and count:
long count = words.stream()
.filter(w -> w.endsWith("ly"))
.count();
The way to filter collections is through the use of a Predicate, which is basically something that returns a boolean value.
Predicate is a functional interface, which means that wherever an implementation of this interface is expected, we can pass a lambda expression.
For example, consider a list of objects of this class:
class Person {
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
To filter the list, first we need to convert it to a stream and then pass a lambda expression that returns a boolean value to its filter()
method:
List filterd = l.stream().filter(p -> p.getAge() > 20).collect(Collectors.toList());
But what if we want to use multiple conditions to filter the list? The Predicate interface has some methods to join conditions:
Predicate<Person> nameNotNull = p -> p.getName() != null;
Predicate<Person> ageAbove20 = p -> p.getAge() > 20;
Predicate<Person> multipleConditions = nameNotNull.and(ageAbove20);
List filterd = l.stream().filter(multipleConditions).collect(Collectors.toList());
When the body of a lambda expression is used to execute a method, like in this example:
List<String> l = new ArrayList<>();
l.stream().forEach(s -> System.out.println(s));
We can substitue the lambda expression with a method reference like this:
List<String> l = new ArrayList<>();
l.stream().forEach(System.out::println);
Notice how :: is used to call the method and that no parameters are passed, since the compiler infers them along with their type.
There are four types of method references (assuming a class named Person with a getName()
method and a variable named p of that type):
| Type | Example |
|---|---|
| Reference to a static method | Math::square |
| Reference to a constructor | Integer::new |
| Reference to an instance method of an arbitrary object of a particular type | Person::getName |
| Reference to an instance method of a particular object | p::getName |
Here's a comparison between a lambda expression and the equivalent method expression:
| Lambda Expression | Method Reference |
|---|---|
n -> Math.square(n) |
Math::square |
i -> new Integer(i) |
Integer::new |
p -> p.getName() |
Person::getName |
p -> p.getName() |
p::getName |


NSD, The Inkcubation Project(s), Develop3d-kc, and Nick Stone Development are all brought together by many developers however, Nick Stone is the common denominator between everything. This site was completed solely by me with the objective of delivering all the latest frameworks and functionality that is out today. So this is a work in project and hope to bring in contributors as the Inkcubation Group grows. To learn more about Inkcubation or to Donate to our cause, we encourage you to
Learn MoreTo get a better idea about what is included within this application there is a list below and on the tech List page with the Resume -Technologies and use cases, thanks.
About Images Here


Toggle navigation
Carl Angelo Nievarez
Home
About
CV
Blog
Home
Blog
My Self-Hosted Git Server
My Self-Hosted Git Server
Published:
April 03, 2019
#discuss
#webdev
#productivity
my self hosted git server
● End ●


The Help pane is the central pane that shows the main help topics. To print a help topic right click anywhere in main, lower right frame and select "Print…"
The complete help documentation in PDF form is available in the help directory or for download here.
Show the Help pane by selecting Help > "Help Topics…" from the menu.


Last updated: 2019-11-06
workflowr checks: (Click a bullet for more information) ✔ R Markdown file: up-to-date
Great! Since the R Markdown file has been committed to the Git repository, you know the exact version of the code that produced these results.
✔ Repository version: 17f85e9
wflow_publish
or wflow_git_commit
). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:
Ignored files:
Ignored: .Rhistory
Ignored: .Rproj.user/
Ignored: data/global/
Ignored: data/global_results.Rda
Ignored: data/global_test_trend.Rda
Ignored: data/global_var_trend.Rda
Ignored: data/global_var_trend_old.Rda
Ignored: data/random_bp_results_100.Rda
Ignored: data/random_bp_results_1000.Rda
Ignored: data/random_results_100.Rda
Ignored: data/random_results_1000.Rda
Ignored: data/sst_ALL_bp_results.Rda
Untracked files:
Untracked: analysis/WA_pixels.Rda
Untracked: analysis/WA_pixels_res.Rda
Unstaged changes:
Modified: .DS_Store
Modified: .Rprofile
Modified: .gitignore
Modified: CODE_OF_CONDUCT.md
Modified: LICENSE
Modified: LICENSE.md
Modified: LaTeX/FMars.csl
Modified: LaTeX/Frontiers_Template.docx
Modified: LaTeX/MHWdetection.docx
Modified: LaTeX/MHWdetection.tex
Modified: LaTeX/PDF examples/frontiers.pdf
Modified: LaTeX/PDF examples/frontiers_SupplementaryMaterial.pdf
Modified: LaTeX/README
Modified: LaTeX/Supplementary_Material.docx
Modified: LaTeX/YM-logo.eps
Modified: LaTeX/fig_1.jpg
Modified: LaTeX/fig_1.pdf
Modified: LaTeX/fig_1_flat.jpg
Modified: LaTeX/fig_1_flat.pdf
Modified: LaTeX/fig_2.jpg
Modified: LaTeX/fig_2.pdf
Modified: LaTeX/fig_3.jpg
Modified: LaTeX/fig_3.pdf
Modified: LaTeX/fig_4.jpg
Modified: LaTeX/fig_4.pdf
Modified: LaTeX/fig_5.jpg
Modified: LaTeX/fig_5.pdf
Modified: LaTeX/fig_6.jpg
Modified: LaTeX/fig_6.pdf
Modified: LaTeX/fig_S1.jpg
Modified: LaTeX/fig_S1.pdf
Modified: LaTeX/fig_S2.jpg
Modified: LaTeX/fig_S2.pdf
Modified: LaTeX/fig_S3.jpg
Modified: LaTeX/fig_S3.pdf
Modified: LaTeX/fig_S4.jpg
Modified: LaTeX/fig_S4.pdf
Modified: LaTeX/fig_S5.jpg
Modified: LaTeX/fig_S5.pdf
Modified: LaTeX/figures.zip
Modified: LaTeX/frontiers.tex
Modified: LaTeX/frontiersFPHY.cls
Modified: LaTeX/frontiersHLTH.cls
Modified: LaTeX/frontiersSCNS.cls
Modified: LaTeX/frontiersSCNS.log
Modified: LaTeX/frontiers_SupplementaryMaterial.tex
Modified: LaTeX/frontiers_suppmat.cls
Modified: LaTeX/frontiersinHLTH&FPHY.bst
Modified: LaTeX/frontiersinSCNS_ENG_HUMS.bst
Modified: LaTeX/logo1.eps
Modified: LaTeX/logo1.jpg
Modified: LaTeX/logo2.eps
Modified: LaTeX/logos.eps
Modified: LaTeX/logos.jpg
Modified: LaTeX/stfloats.sty
Modified: LaTeX/table_1.xlsx
Modified: LaTeX/table_2.xlsx
Modified: LaTeX/test.bib
Modified: MHWdetection.Rproj
Modified: TODO
Modified: _references/1-s2.0-S0921818106002736-main.pdf
Modified: _references/1-s2.0-S092181810600275X-main.pdf
Modified: _references/1-s2.0-S0921818106002761-main.pdf
Modified: _references/1-s2.0-S0921818106002852-main.pdf
Modified: _references/1405.3904.pdf
Modified: _references/1520-0450%282001%29040%3C0762%3Aotdoah%3E2.0.co%3B2.pdf
Modified: _references/2013_Extremes_Workshop_Report.pdf
Modified: _references/24868781.pdf
Modified: _references/24870362.pdf
Modified: _references/26192647.pdf
Modified: _references/994.full.pdf
Modified: _references/A_1019841717369.pdf
Modified: _references/Banzon et al 2014.pdf
Modified: _references/Brown_et_al-2008-Journal_of_Geophysical_Research%3A_Atmospheres_%281984-2012%29.pdf
Modified: _references/Different_ways_to_compute_temperature_re.pdf
Modified: _references/Gilleland et al 2013.pdf
Modified: _references/Gilleland_2006.pdf
Modified: _references/Kuglitsch_et_al-2010-Geophysical_Research_Letters.pdf
Modified: _references/Modeling Waves of Extreme Temperature The Changing Tails of Four Cities.pdf
Modified: _references/Normals-Guide-to-Climate-190116_en.pdf
Modified: _references/Reynolds et al 2007.pdf
Modified: _references/Risk_of_Extreme_Events_Under_Nonstationa.pdf
Modified: _references/Russo_et_al-2014-Journal_of_Geophysical_Research%3A_Atmospheres.pdf
Modified: _references/WCDMP_72_TD_1500_en__1.pdf
Modified: _references/WMO 49 v1 2015.pdf
Modified: _references/WMO No 1203.pdf
Modified: _references/WMO-TD No 1377.pdf
Modified: _references/WMO_100_en.pdf
Modified: _references/bams-d-12-00066.1.pdf
Modified: _references/c058p193.pdf
Modified: _references/cc100.pdf
Modified: _references/clivar14.pdf
Modified: _references/coles1994.pdf
Modified: _references/ecology.pdf
Modified: _references/joc.1141.pdf
Modified: _references/joc.1432.pdf
Modified: _references/returnPeriod.pdf
Modified: _references/s00382-014-2287-1.pdf
Modified: _references/s00382-014-2345-8.pdf
Modified: _references/s00382-015-2638-6.pdf
Modified: _references/s10584-006-9116-4.pdf
Modified: _references/s10584-007-9392-7.pdf
Modified: _references/s10584-010-9944-0.pdf
Modified: _references/s10584-012-0659-2.pdf
Modified: _references/s10584-014-1254-5.pdf
Modified: _references/s13253-013-0161-y.pdf
Modified: _references/wcrpextr.pdf
Modified: _workflowr.yml
Deleted: analysis/about.Rmd
Modified: analysis/bibliography.bib
Modified: code/README.md
Modified: data/.gitignore
Modified: data/best_table_average.Rda
Modified: data/best_table_focus.Rda
Modified: data/python/clim_py.csv
Modified: data/python/clim_py_joinAG_1.csv
Modified: data/python/clim_py_joinAG_5.csv
Modified: data/python/clim_py_joinAG_no.csv
Modified: data/python/clim_py_minD_3.csv
Modified: data/python/clim_py_minD_7.csv
Modified: data/python/clim_py_pctile_80.csv
Modified: data/python/clim_py_pctile_95.csv
Modified: data/python/clim_py_pctile_99.csv
Modified: data/python/clim_py_random.csv
Modified: data/python/clim_py_spw_11.csv
Modified: data/python/clim_py_spw_51.csv
Modified: data/python/clim_py_spw_no.csv
Modified: data/python/clim_py_whw_3.csv
Modified: data/python/clim_py_whw_7.csv
Modified: data/python/mhwBlock.csv
Modified: data/python/mhws_py.csv
Modified: data/python/mhws_py_joinAG_1.csv
Modified: data/python/mhws_py_joinAG_5.csv
Modified: data/python/mhws_py_joinAG_no.csv
Modified: data/python/mhws_py_minD_3.csv
Modified: data/python/mhws_py_minD_7.csv
Modified: data/python/mhws_py_pctile_80.csv
Modified: data/python/mhws_py_pctile_95.csv
Modified: data/python/mhws_py_pctile_99.csv
Modified: data/python/mhws_py_random.csv
Modified: data/python/mhws_py_spw_11.csv
Modified: data/python/mhws_py_spw_51.csv
Modified: data/python/mhws_py_spw_no.csv
Modified: data/python/mhws_py_whw_3.csv
Modified: data/python/mhws_py_whw_7.csv
Modified: data/python/sst_WA.csv
Modified: data/python/sst_WA_miss_ice.csv
Modified: data/python/sst_WA_miss_random.csv
Modified: data/sst_ALL_results.Rda
Modified: data/table_1.csv
Modified: data/table_2.csv
Modified: docs/portrait.pdf
Modified: output/README.md
Modified: output/effect_event.pdf
Modified: output/fig_2_missing_only.pdf
Modified: output/stitch_plot_WA.pdf
Modified: output/stitch_sub_plot_WA.pdf
Modified: poster/Figures/CSIRO_logo.jpeg
Modified: poster/Figures/Dal_logo.jpg
Modified: poster/Figures/all_logo_long.jpg
Modified: poster/Figures/all_logos.jpg
Modified: poster/Figures/logo_stitching.odp
Modified: poster/Figures/ofi_logo.jpg
Modified: poster/Figures/uwc-logo.jpg
Modified: poster/MHWdetection.bib
Modified: poster/MyBib.bib
Modified: poster/landscape.Rmd
Modified: poster/landscape.pdf
Modified: poster/portrait.Rmd
Modified: poster/portrait.pdf
Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.
| File | Version | Author | Date | Message |
|---|---|---|---|---|
| Rmd | 61bf228 | robwschlegel | 2019-11-06 | Prepped trend vignette for site re-build |
| Rmd | 819f11e | Robert William Schlegel | 2019-11-04 | Updating the foundation of workflowr GitHub site |
| Rmd | 158aa0b | robwschlegel | 2019-05-06 | Updated project interface |
| html | fb80070 | Robert Schlegel | 2019-05-06 | Update |
| Rmd | 5b638ef | Robert Schlegel | 2019-05-06 | Uploaded poster to GitHub page |
| html | 74aff6b | Robert Schlegel | 2019-05-03 | Build site. |
| Rmd | acee19f | Robert Schlegel | 2019-05-03 | Some updates |
| Rmd | 502aacf | Robert Schlegel | 2019-05-03 | Created JPG versions of figures for draft submission |
| Rmd | f5fba8f | Robert Schlegel | 2019-05-03 | Polished poster |
| Rmd | d5ed0d0 | Robert William Schlegel | 2019-05-02 | Working on poster |
| Rmd | 9285aaa | robwschlegel | 2019-04-30 | Snag list |
| Rmd | f79c3e9 | robwschlegel | 2019-04-30 | Polished Conclusions |
| Rmd | c1fa0d7 | robwschlegel | 2019-04-30 | Polished Discussion |
| Rmd | ad94e1d | robwschlegel | 2019-04-30 | Polished results |
| Rmd | 4920c7a | robwschlegel | 2019-04-30 | Polished Methods |
| Rmd | 897141e | robwschlegel | 2019-04-29 | Created Figure 1 |
| Rmd | 8e53a5c | robwschlegel | 2019-04-29 | Further polishing of text |
| Rmd | 4dc55c8 | robwschlegel | 2019-04-28 | Final round of comments addressed in part |
| Rmd | 151f5d1 | robwschlegel | 2019-04-26 | Creating remaining figures |
| Rmd | bb135c3 | robwschlegel | 2019-04-25 | Working on length fix |
| Rmd | 50aa5e4 | robwschlegel | 2019-04-24 | Troubleshot the global analysis output |
| Rmd | 104d600 | Robert Schlegel | 2019-04-18 | Unpacking and calculating slopes for global results |
| Rmd | b80fa5c | robwschlegel | 2019-04-17 | Expanded tests to 0.5C/dec trend and 99% missing data |
| Rmd | d1891c0 | robwschlegel | 2019-04-16 | Edited manuscript through to the discussion section |
| Rmd | 4447589 | robwschlegel | 2019-04-15 | Global analysis error trapping |
| Rmd | 33966d0 | robwschlegel | 2019-04-15 | Finished writing global analysis code and began running it |
| Rmd | 87caad7 | robwschlegel | 2019-04-14 | Implemented and ran code for fixes to sub-optimal data |
| Rmd | 7ba5f65 | robwschlegel | 2019-04-11 | Working towards answering Question 2 |
| Rmd | 584d848 | robwschlegel | 2019-03-25 | Basic figures for the re-sample workflow complete |
| html | 8ef792c | robwschlegel | 2019-03-20 | Build site. |
| Rmd | 9f45ef7 | robwschlegel | 2019-03-20 | Update |
| html | 81a2ed5 | robwschlegel | 2019-03-19 | Build site. |
| Rmd | 62fe75f | robwschlegel | 2019-03-19 | Publish the news file |
| html | 36100c0 | robwschlegel | 2019-03-19 | Build site. |
| Rmd | 0aac666 | robwschlegel | 2019-03-19 | Publish the menu files |
The manuscript was re-submitted on November 1st # 2019-05-06
Updated project interface
pkgdown
to workflowr
for project management/visualisationAssessing the effects of long-term trends
Assessing the effects of variance
var
resultsr_vs_python.Rmd
for how the two languages handle missing data to create climatologies and calculate events.Ice coverage
section in missing_data.Rmd
time_series_duration.Rmd
time_series_duration.Rmd
and missing_data.Rmd
missing_data.Rmd
time_series_duration.Rmd
time_series_duration.Rmd
missing_data.Rmd
MHWdetection.Rmd
time_series_duration.Rmd
heatwaveR
codeNEWS.md
file to track changes to the package.heatwaveR
siteThis reproducible R Markdown analysis was created with workflowr 1.1.1


JICUnit Runner
| Status:
| Tests:
| Errors:
| Failures:
| Ignored:
| Time:
|
| Tests:
| Errors:
| Failures:
| Ignored:
|
jicunit.org


An Open Source DNS Server for Bug Bounty Hunters
Boucan is platform to help Bug Bounty Hunters determine if targets resolve DNS/HTTP payloads. When a DNS domain is injected into a payload, the targeted asset may resolve the DNS name, indicating that the asset may be vulnerable to command injection, Server Side Request Forgery (SSRF), or Local/Remote File Inclusion (LFI/RFI). Boucan ships with:
Boucan leverages the following technologies and stacks:
Boucan is currently a Work in Progress (WIP). The core feature of running the DNS server and determining if the target resolved the record are functional. However, the application should not be considered secure enough to deploy publicly.
The following features are currently being worked on:


Review: The Castle (Rob Sitch), 1997
"The Castle" is the debut film for the writing team of Rob Sitch, Tom Gleisner, Santo Cilauro, and Jane Kennedy, who will be familiar to Australian audiences for their television work. The four were writers and performers as part of the Melbourne comedy outfit The D-Generation, and after that group achieved its ultimate form (in all senses of the word) on the much-missed "Late Show," they went on to the current affairs satire "Frontline" (known in some countries overseas, apparently, as "Behind the Frontline"). That was an excellent show, if occasionally overly preachy and shy about admitting its obvious indebtedness to America's "The Larry Sanders Show." (Ironically, I remember seeing one report here attack "Larry Sanders" as nothing but a "Frontline" rip-off). By this time, the group had established themselves as a miniature production company, maintaining extremely tight creative control. On "Frontline," three of the four played major roles in addition to their writing; all of them directed episodes, and Cilauro took charge of the camerawork. Such tight supervision (and reluctance to surrender any creative processes to outsiders) is a double-edged sword, as it may be accompanied by an insular refusal to acknowledge problems. Certainly "Frontline," in its last season or so, occasionally seemed unable to diagnose and correct its faults.
It was therefore a pleasure to find the group doing such fine work in "The Castle". The film tells the story of the Kerrigans, a working class family in the northwest suburbs of Melbourne (it says something about Australian society, however, that the family is shown to own five cars, a boat, and a holiday house, and still be understood to be working class). They live directly adjacent to Melbourne's Tullamarine airport, but can't understand why they got their house so cheap; to them, the modest little home is a castle. When the airport wants to expand, however, their home is subject to a compulsory acquisition order. The Kerrigans, led by Daryl Kerrigan (Michael Caton) decide to fight, eventually taking their case to the High Court in Canberra. As a TV report puts it late in the film, it's "Daryl versus Goliath." The comedy in the film comes from the contrast between the naive, uneducated Kerrigans (if they lived in the country, you'd call them "down to earth") and the smug, upscale lawyers and judges they come up against. Sitch and co spend a long time establishing the family, and this material skates on thin ice with its apparent mockery of the working class Australian. Yet the tone is maintained well beautifully, and it becomes clear that the Frontline team genuinely like their heroes. Sitch has claimed in interviews that much of Daryl Kerrigan's behaviour is modelled on his own father, and it becomes clear that "The Castle" is not intended as a joke on other people: we're supposed to recognise ourselves in the Kerrigans, whatever our background. Much of what we laugh at in "The Castle" is found in Australians of all backgrounds: the obsessive scanning of the Trading Post ("Now what would you want with a pair of jousting sticks?"), the obsessive multiple car ownership, the sports mania, even the briefly glimpsed Ugh boots. This self-deprecation (like the disdain for authority figures) is such an Australian theme that it is likely to puzzle any overseas audiences (as will culturally specific references such as the allusions to the Mabo case). Fortunately, "The Castle" has been such a hit on home soil that it will not need any cross-over success in overseas markets.
Sitch's direction is appropriately actor oriented: this is not a technically impressive venture. The hand-held look used to create a cinema verite look on "Frontline" has wisely been abandoned, replaced by a bare bones, unobtrusive style. Shot in eleven days, this is the kind of film where a pan comes across as a major cinematic innovation. It is, therefore, the cast that really sell the material: all the actors portraying the Kerrigans are great, with Caton a stand-out. Tiriel Mora, a "Frontline" veteran, is appropriately harried as the well-intentioned but inexperienced lawyer (asked what section of the Constitution his case is based on, he responds "ah... it's just the vibe.") Many other familiar faces from Australian films and TV turn up in the supporting cast: Charles (Bud) Tingwell plays the kindly QC who steps in at the Kerrigan's direst hour; Sophie Lee plays the Kerrigan's oldest daughter; Eric Bana is her new husband; and Bryan Dawe plays one of the opposing lawyers. John Flaus, Lynda Gibson, and Tony Martin (as Bud Tingwell's son!) turn up in cameo appearances. As far as I could detect, none of Sitch, Gleisner, Kennedy or Cilauro made so much as a walk-on, though a news reporter's voice heard late in the piece sounds suspiciously like Kennedy.
Review (C) 1997 by Stephen Rowley
Stephen Rowley sbrowl@Not!arbld.unimelb.edu.au (To e-mail me, remove the Not! from my address) Movie reviews & essays at Cinephobia: http://www.werple.net.au/~lerowley/cinephob.htm
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


pure SVG animation: typewriter
pure SVG animation: typewriter
How are
you
today?
I
am fine, how about
you
?
Great. Let's go to ...
NOTE that it requires a monospace font-family.
It will be
repeated
automatically.
Time: 21s


Lunch Web
Add Restaurant
Name
Food type
Add
Grade Restaurant
Name
Grade
Grade
restaurant = {{restaurant | json}}
Restaurants
Name
Food Type
Grade
{{restaurant.name}}
{{restaurant.foodType}}
{{restaurant.grade}}


{% include 'auth/_header.html' %}
You have reset your password. Now you can login your account with new password
Redirecting to login page in 10 seconds...


The graph above demonstrates alignment constraints and non-overlapping group and node boundaries. The groups highlight and keep separate specific functional partitions in the pathway. Four alignment constraints are used to arrange nodes involved in the cycle around the edges of a rectangle. To biologists, cycles in these types of pathways are very important because they represent continuous processes. Another alignment is used to straighten one particular path inside the green group.
The image below is drawn by hand by a biologist with data from the Kegg Pathway Database. Constraints allow us to capture in a live, automatically adjusting layout, the same kinds of drawing conventions that biologists (and others) like to see in textbook drawings of their networks.
The SVG diagram below is used as the source for the nodes, edges and constraints used in the CoLa layout above. It was originally authored in the Dunnart constraint-based diagram editor. Dunnart is great for interactively authoring the constraints and creating a semi-supervised layout, but obviously web-based constraint layout is easier to deploy! Have a look at the source of this page to see how to extract the graph and constraints from the Dunnart generated SVG.


Name: {{ .Params.sfname }} {{ .Params.slinitial }}. - Grade: {{ .Params.grade }}
Thank you for helping me raise money for Island View PTA!
Island View’s Color Run Fundraiser helps pay for all of the amazing programs our PTA makes possible like Science on Wheels, ClassACT school plays, free RIF books, online learning programs, I Love to Read month, Family Fun Nights, Watch DOGS, Scholastic magazines, and so much more!
{{ if ne .Params.total "$0.00"}}So far I have raised {{ .Params.online }} from online donations and {{ .Params.envelope }} in person, for a total of {{ .Params.total }}!
{{ else }}I haven't received any donations yet. {{ ":disappointed:" | emojify }}
Please be the first one to help me reach my goal. {{ ":sparkling_heart:" | emojify }}
Please enter your Full Name, Email Address and Donation amount in the form below to make a donation in {{ .Params.sfname }}'s name for the Island View Color Run Fundraiser. Please note that we do not store any of your credit card information.


{% extends "layout.html" %} {% block content %}
Animation: {{status['animation']}}
Started: {{status['start']}}
Stop
Phuey is not currently running an animation


{% extends "base.html" %} {% block title %}Password Reset Complete | {{ block.super }}{% endblock %} {% block content %}
Your password has been reset.
Want to Log in?


{% extends "course_base.html" %} {% load url from future %} {% block m_column_content %} {% include "problemsets/delete_exercise_form.html" %}
There are no exercises yet.


Sneed scores 15, K-State rallies past Monmouth 73-54
by AVERY OSENMANHATTAN, Kansas (AP) - Kansas State hasn’t started games as well as coach Bruce Weber had hoped, despite Wednesday’s 73-54 win over Monmouth.
The Wildcats have been outscored in the first half 74-57 through three contests this year and trailed at the half in every game.
But somehow, they are still undefeated.
“We’re a young team and we’ve won by two decent margins and against decent teams,” Weber said. “We’ve just got to learn and grow from it.”
Xavier Sneed scored 15 points and had six rebounds and Makol Mawien nearly had his second double-double of the season scoring 11 points and pulling in nine rebounds. Freshman Montavious Murphy had a career-high eight points.
Ray Salnave had 20 points and five rebounds while Mustapha Traore scored five points and had 10 rebounds in the losing effort.
Even more first half woes for Kansas State is 3-point shooting- making only one 3 in the first 20 minutes of games this season.
“If you haven’t figured it our we’re one for 32 from 3 in the first half this year,” Weber said.
Weber and Murphy said they think the speed of the game and a young team are partially to blame on the slow starts.
“We come out and just take things for granted and then come and play hard in the second half,” Murphy said. “I think we need to start doing that to start and lock in.”
Kansas State’s defense forced 25 turnovers scoring 21 points off those mistakes. The Wildcats 17 steals tied for the third-most in a game in school history.
The Wildcats (3-0) won the game in the paint outscoring the Hawks 38-20 as Kansas State seemed to be bigger and faster against the Hawks.
“They are big, strong guys,” Monmouth coach King Rice said. “There’s a lot of bumps in the game and it takes a lot out of our legs.”
Monmouth (1-2) closed the first half on a 14-4 run after a layup at buzzer by Traore to lead 29-20 at the break.
“Our guys started making it a one-on-one game and that’s when they got us down by a bunch,” King said. “I think some of you guys might have been shocked, but I’m a head coach and this is college basketball. Anything can happen in this game.”
Sneed opened the second half with a 3, starting a 9-0 run for the Wildcats, which tied the game. K-State scored 23 of the first 27 points in the second half and cruised to victory from there.
WE TALKIN’ ‘BOUT PRACTICE
Weber said these next 10 days of practice are vital for his team to keep improving before taking on Pittsburgh later this month.
“Iverson might not think practice is important, but coach Weber does,” he said.
STREAK CONTINUES
Kansas State has won 31 straight non-conference games dating back to 2015 inside Bramlage Coliseum.
BIG PICTURE
Monmouth showed for a half that they can play with a Power Five school but will need to play a full 40 minutes to complete a major upset.
Kansas State has to start games quicker because against better quality opponents, they won’t be able to come back as easily.
UP NEXT
Monmouth travels to Kansas on Friday night.
Kansas State has almost a week off before hosting Arkansas-Pine Bluff on Tuesday.
More AP college basketball: https://apnews.com/Collegebasketball and https://twitter.com/AP_Top25
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


Apache Flink 1.7.2 Released
February 15, 2019 -The Apache Flink community released the second bugfix version of the Apache Flink 1.7 series.
This release includes more than 40 fixes and minor improvements for Flink 1.7.1, covering several critical recovery issues as well as problems in the Flink streaming connectors.
The list below includes a detailed list of all fixes. We highly recommend all users to upgrade to Flink 1.7.2.
Updated Maven dependencies:
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-java</artifactId>
<version>1.7.2</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java_2.11</artifactId>
<version>1.7.2</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-clients_2.11</artifactId>
<version>1.7.2</version>
</dependency>
You can find the binaries on the updated Downloads page.
List of resolved issues:
Sub-task
- [FLINK-11179] - JoinCancelingITCase#testCancelSortMatchWhileDoingHeavySorting test error
- [FLINK-11180] - ProcessFailureCancelingITCase#testCancelingOnProcessFailure
- [FLINK-11181] - SimpleRecoveryITCaseBase test error
Bug
- [FLINK-10721] - Kafka discovery-loop exceptions may be swallowed
- [FLINK-10761] - MetricGroup#getAllVariables can deadlock
- [FLINK-10774] - connection leak when partition discovery is disabled and open throws exception
- [FLINK-10848] - Flink's Yarn ResourceManager can allocate too many excess containers
- [FLINK-11046] - ElasticSearch6Connector cause thread blocked when index failed with retry
- [FLINK-11071] - Dynamic proxy classes cannot be resolved when deserializing job graph
- [FLINK-11083] - CRowSerializerConfigSnapshot is not instantiable
- [FLINK-11084] - Incorrect ouput after two consecutive split and select
- [FLINK-11100] - Presto S3 FileSystem E2E test broken
- [FLINK-11119] - Incorrect Scala example for Table Function
- [FLINK-11134] - Invalid REST API request should not log the full exception in Flink logs
- [FLINK-11145] - Fix Hadoop version handling in binary release script
- [FLINK-11151] - FileUploadHandler stops working if the upload directory is removed
- [FLINK-11168] - LargePlanTest times out on Travis
- [FLINK-11173] - Proctime attribute validation throws an incorrect exception message
- [FLINK-11187] - StreamingFileSink with S3 backend transient socket timeout issues
- [FLINK-11191] - Exception in code generation when ambiguous columns in MATCH_RECOGNIZE
- [FLINK-11194] - missing Scala 2.12 build of HBase connector
- [FLINK-11201] - Document SBT dependency requirements when using MiniClusterResource
- [FLINK-11224] - Log is missing in scala-shell
- [FLINK-11227] - The DescriptorProperties contains some bounds checking errors
- [FLINK-11232] - Empty Start Time of sub-task on web dashboard
- [FLINK-11234] - ExternalTableCatalogBuilder unable to build a batch-only table
- [FLINK-11235] - Elasticsearch connector leaks threads if no connection could be established
- [FLINK-11246] - Fix distinct AGG visibility issues
- [FLINK-11251] - Incompatible metric name on prometheus reporter
- [FLINK-11279] - Invalid week interval parsing in ExpressionParser
- [FLINK-11302] - FlinkS3FileSystem uses an incorrect path for temporary files.
- [FLINK-11389] - Incorrectly use job information when call getSerializedTaskInformation in class TaskDeploymentDescriptor
- [FLINK-11419] - StreamingFileSink fails to recover after taskmanager failure
- [FLINK-11436] - Java deserialization failure of the AvroSerializer when used in an old CompositeSerializers
New Feature
- [FLINK-10457] - Support SequenceFile for StreamingFileSink
Improvement
- [FLINK-10910] - Harden Kubernetes e2e test
- [FLINK-11023] - Update LICENSE and NOTICE files for flink-connectors
- [FLINK-11079] - Skip deployment for flink-storm-examples
- [FLINK-11207] - Update Apache commons-compress from 1.4.1 to 1.18
- [FLINK-11216] - Back to top button is missing in the Joining document and is not properly placed in the Process Function document
- [FLINK-11262] - Bump jython-standalone to 2.7.1
- [FLINK-11289] - Rework example module structure to account for licensing
- [FLINK-11304] - Typo in time attributes doc
- [FLINK-11331] - Fix errors in tableApi.md and functions.md
- [FLINK-11469] - fix Tuning Checkpoints and Large State doc
- [FLINK-11473] - Clarify Documenation on Latency Tracking
- [FLINK-11628] - Cache maven on travis


Banking
1800-xxx-xxx
<EMAIL_ADDRESS>Toggle navigation
Menu
Home
About
Customer Support
services
Contact Us
Login
×
Online support


|
[INSTITUTION]
Institution
|
|
[INCIDENT_NO]
Incident Number
|
|
[INCIDENT_TYPE]
Incident Type
|
|
[INCIDENT_SUBTYPE]
Incident Subtype
|
|
[NEAR_MISS]
Near Miss
|
|
[DATE]
Date of Occurence
|
|
[LOCATION]
Location of Occurence
|
|
[DAYS]
Number of Days to Complete
|
|
[LOGIN_PAGE]
Login Page
|
|
[DUE_DATE]
Due Date
|
|
[FOLLOW_UP_ACTION]
Follow Up Action
|
|
[MERGED_NO]
Merged Incident Number
|
|
[COMMENTS]
Comments
|
|
[STAFF_NAME]
Staff Name
|
|
[ASSESSMENT_OF_INJURY]
Assessment of Injury Level
|
|
[SAC_LEVEL]
SAC Level
|
|
[POTENTIAL_SRE]
Potential SRE Information
|
|
[POTENTIAL_MEDIA]
Potential Media Information
|
|
[POTENTIAL_LEGAL]
Potential Legal Information
|
|
[EMAIL_TEMPLATE_CODE]
Email Template Code
|
|
[FORWARDER_EMAIL]
Email of the Person who forward the incident
|
|
[EMAIL_TEMPLATE_CODE]
Email Template Code
|
|
[FORWARD_REMARKS]
Remarks from forwarder
|
|
[FORWARDER_EMAIL]
Email of the Person who forward the incident
|
|
[LIST_INCIDENT_REMINDER]
Table contains weekly notification incidents
|
|
[EMAIL_TEMPLATE_CODE]
Email Template Code
|


Test yourself by guessing the correct definition to some common and uncommon words. The word will display at the top with a list of definitions below.
Good Luck!


Just in case anyone wants it, i did a copy and paste job to get pulse counter + temperature and 3 phase running at home.
/*
emonTx V3 CT1234 + 3-phase Voltage exampleAn example sketch for the emontx module for
3-phase electricity monitoring, with 4 current transformers
and 1 only voltage transformerPart of the openenergymonitor.org project
Licence: GNU GPL V3Authors: Glyn Hudson, Trystan Lea
Builds upon JeeLabs RF12 library and Arduino
Extended for 3-phase operation: Robert Wall
V.1 7/11/2013 Derived from emonTx_CT123_3Phase_Voltage.inoemonTx V3 Shield documentation:http://openenergymonitor.org/emon/modules/emonTxV3
emonTx firmware code explanation: http://openenergymonitor.org/emon/modules/emontx/firmware
emonTx / emonTx Shield calibration instructions: http://openenergymonitor.org/emon/buildingblocks/calibrationREQUIRES in [Arduino]/libraries
Arduino.h
WProgram.h
avr/wdt.h // the UNO bootloader
RFu_JeeLib.h // Download RFu_JeeLib:https://github.com/openenergymonitor/RFu_jeelib
REQUIRES in project directory
emontx_lib.ino(does NOT require EmonLib)
=============================================================================================Extended to allow the voltage measurement of a single phase to be used to generate approximate indications of
power (real and apparent) and phase angle for the other two phases of a 3-phase installation.The measured voltage of one phase is delayed in an array and subsequently used in the calculations for the
remaining phases.
N.B. "Phase shifted" means a small adjustment to the voltage waveform to accommodate small ( < 10 degrees) phase shifts
in the transformers etc. "Delayed" means a delay of the voltage samples by approx 1/3 or 2/3 cycle.
Without the 4th c.t. in use, this sketch records approx 24 sample sets per cycle at 50 Hz.POSSIBLE SOURCES OF ERROR
This method is an approximation. It assumes that the voltages of the three phases remain identical and the angles
between the voltage vectors remain accurately 120 degrees apart. The lower the fault level of the supply (i.e. the higher
the impedance), the greater the change in the true voltage will be as a result of load changes, and therefore the
inaccuracies that result from these approximations will be greater also.
If the mains frequency changes, this will appear as a change in real power and power factor for L2 and more so for L3.CALIBRATION
Adjust Vcal = 234.26 so that the correct voltage for L1 is displayed.
Adjust Ical1 = 119.0 so that the correct current for L1 is displayed.
Do the same for Ical2 & Ical3.
Connect a pure resistive load (e.g. a heater) to L1 and adjust Phasecal1 to display a power factor of 1.00.
Do the same for L2 and L3. If it not possible to keep Phasecal within the range 0 - 2, it is permissible to
change "#define PHASE2 8" and/or "#define PHASE3 18"The fourth channel may be used, for example, for a PV input. This must be on Phase 1 (meaning the same phase as the CT
connected to Input 1).
Include the line " #define CT4 " if the fourth C.T. is to be used.*/
// #define DEBUGGING // enable this line to include debugging print statements
#define SERIALPRINT // include print statement for commissioning - comment this line to exclude
//#define CT4 // uncomment this line if you are using the 4th c.t.
// The timing values "PHASE2", "PHASE3", "Phasecal2" & "Phasecal3" will be different
// depending on whether CT 4 is used or not.
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif#define RF_freq RF12_433MHZ // Frequency of RF12B module can be
// RF12_433MHZ, RF12_868MHZ or RF12_915MHZ.
// You should use the one matching the module you have.
#define FILTERSETTLETIME 5000 // Time (ms) to allow the filters to settle before sending data#define PHASE2 8 // Number of samples delay for L2
#define PHASE3 18 // Number of samples delay for L3, also size of array
// These can be adjusted if the phase correction is not adequate
// Suggested starting values for 4 ct's:
// PHASE2 6
// PHASE3 15
// Phasecal2 = 0.57
// Phasecal3 = 0.97const int nodeID = 10; // emonTx RFM12B node ID
const int networkGroup = 210; // emonTx RFM12B wireless network group
// - needs to be same as emonBase and emonGLCD needs to be same
// as emonBase and emonGLCDconst int UNO = 1; // Set to 0 if you are not using the UNO bootloader
// (i.e using Duemilanove) - All Atmega's shipped from
// OpenEnergyMonitor come with Arduino Uno bootloader
#include <avr/wdt.h> // the UNO bootloader#include <RFu_JeeLib.h> // Download JeeLib:https://github.com/openenergymonitor/RFu_jeelib
ISR(WDT_vect) { Sleepy::watchdogEvent(); }#include <OneWire.h> //http://www.pjrc.com/teensy/td_libs_OneWire.html
#include <DallasTemperature.h> //http://download.milesburton.com/Arduino/MaximTemperature/DallasTemperature_LATEST.zip//Set Voltage and current input pins
int inPinV = 0;
int inPinI1 = 1;
int inPinI2 = 2;
int inPinI3 = 3;
int inPinI4 = 4;
//Calibration coefficients
//These need to be set in order to obtain accurate results
double Vcal = 276.9; // Calibration constant for voltage input
double Ical1 = 90.9; // Calibration constant for current transformer 1
double Ical2 = 90.9; // Calibration constant for current transformer 2
double Ical3 = 90.9; // Calibration constant for current transformer 3
double Ical4 = 16.6; // Calibration constant for current transformer 4double Phasecal1 = 1.00; // Calibration constant for phase shift L1
double Phasecal2 = 1.35; // Calibration constant for phase shift L2
double Phasecal3 = 1.37; // Calibration constant for phase shift L3
double Phasecal4 = 1.00; // Calibration constant for phase shift CT 4const int TEMPERATURE_PRECISION= 11;
#define ASYNC_DELAY 375
const byte DS18B20_PWR= 19; // DS18B20 Power
#define ONE_WIRE_BUS 5 // DS18B20 Data
//-------------------------------------------------------------------------------------------------------------------------------------------//Setup DS128B20
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);//--------------------------------------------------------------------------------------
// Variable declaration for filters, phase shift, voltages, currents & powers
//--------------------------------------------------------------------------------------
double realPower1, // The final data
apparentPower1,
powerFactor1,
Irms1,
realPower2,
apparentPower2,
powerFactor2,
Irms2,
realPower3,
apparentPower3,
powerFactor3,
Irms3,
realPower4,
apparentPower4,
powerFactor4,
Irms4,
Vrms;
typedef struct { int power1, power2, power3, power4, Vrms, temp, power, pulse; } PayloadTX; // neat way of packaging data for RF comms
// (Include all the variables that are desired,
// ensure the same struct is used to receive)PayloadTX emontx; // create an instance
const int LEDpin = 6; // On-board emonTx LED
boolean settled = false;
// Added by BW for Pulse Counting
long pulseCount =0;
unsigned long pulseTime,lastTime;
double power, elapsedWh;
int ppwh=1;boolean DS18B20_STATUS;
int numSensors;
byte allAddress [4][8];void setup()
{
attachInterrupt(0, onPulse, FALLING);
pinMode(DS18B20_PWR, OUTPUT);
Serial.begin(9600);
Serial.println("emonTx V3 CT1234 Voltage 3 Phase example");
Serial.println("OpenEnergyMonitor.org");
Serial.print("Node: ");
Serial.print(nodeID);
Serial.print(" Freq: ");
if (RF_freq == RF12_433MHZ) Serial.print("433Mhz");
else if (RF_freq == RF12_868MHZ) Serial.print("868Mhz");
else if (RF_freq == RF12_915MHZ) Serial.print("915Mhz");
else Serial.print("Not set");
Serial.print(" Network: ");
Serial.println(networkGroup);rf12_initialize(nodeID, RF_freq, networkGroup); // initialize RF
rf12_sleep(RF12_SLEEP);pinMode(LEDpin, OUTPUT); // Setup indicator LED
digitalWrite(LEDpin, HIGH);if (UNO) wdt_enable(WDTO_8S); // Enable anti crash (restart) watchdog if UNO bootloader is selected.
// (Watchdog does not work with duemilanove bootloader)
// Restarts emonTx if sketch hangs for more than 8s
//################################################################################################################################
//Setup and for presence of DS18B20
//################################################################################################################################
digitalWrite(DS18B20_PWR, HIGH); delay(50);
sensors.begin();
sensors.setWaitForConversion(false); //disable automatic temperature conversion to reduce time spent awake, conversion will be implemented manually in sleeping http://harizanov.com/2013/07/optimizing-ds18b20-code-for-low-power-appli...
numSensors=(sensors.getDeviceCount());
byte j=0; // search for one wire devices and
// copy to device address arrays.
while ((j < numSensors) && (oneWire.search(allAddress[j]))) j++;
digitalWrite(DS18B20_PWR, LOW);
if (numSensors==0) DS18B20_STATUS=0;
else DS18B20_STATUS=1;
}//*********************************************************************************************************************
void loop()
{
emontx.pulse = pulseCount; pulseCount=0; // Added by BWif (DS18B20_STATUS==1)
{
digitalWrite(DS18B20_PWR, HIGH); Sleepy::loseSomeTime(50);
for(int j=0;j<numSensors;j++) sensors.setResolution(allAddress[j], TEMPERATURE_PRECISION); // and set the a to d conversion resolution of each.
sensors.requestTemperatures(); // Send the command to get temperatures
Sleepy::loseSomeTime(ASYNC_DELAY); //Must wait for conversion, since we use ASYNC mode
float temp=(sensors.getTempC(allAddress[0]));
digitalWrite(DS18B20_PWR, LOW);
if ((temp<125.0) && (temp>-40.0)) emontx.temp=(temp*10); //if reading is within range for the sensor convert float to int ready to send via RF
Serial.print("temperature: "); Serial.println(emontx.temp*0.1); delay(20);
}
// Outer loop - Reads Voltages & Currents - Sends results
calcVI3Ph(11,2000); // Calculate all. No.of complete cycles, time-out// Removing these print statements is recommended for normal use (if not required).
#ifdef SERIALPRINTSerial.print("Voltage: "); Serial.println(Vrms);
Serial.print(" Current 1: "); Serial.print(Irms1);
Serial.print(" Power 1: "); Serial.print(realPower1);
Serial.print(" VA 1: "); Serial.print(apparentPower1);
Serial.print(" PF 1: "); Serial.println(powerFactor1);
Serial.print(" Current 2: "); Serial.print(Irms2);
Serial.print(" Power 2: "); Serial.print(realPower2);
Serial.print(" VA 2: "); Serial.print(apparentPower2);
Serial.print(" PF 2: "); Serial.println(powerFactor2);
Serial.print(" Current 3: "); Serial.print(Irms3);
Serial.print(" Power 3: "); Serial.print(realPower3);
Serial.print(" VA 3: "); Serial.print(apparentPower3);
Serial.print(" PF 3: "); Serial.println(powerFactor3);
#ifdef CT4
Serial.print(" Current 4: "); Serial.print(Irms4);
Serial.print(" Power 4: "); Serial.print(realPower4);
Serial.print(" VA 4: "); Serial.print(apparentPower4);
Serial.print(" PF 4: "); Serial.println(powerFactor4);
#endifSerial.println(); delay(100);
#endif
emontx.power1 = realPower1; // Copy the desired variables ready for transmision
emontx.power2 = realPower2;
emontx.power3 = realPower3;
emontx.power4 = realPower4;
emontx.Vrms = Vrms;if (!settled && millis() > FILTERSETTLETIME) // because millis() returns to zero after 50 days !
settled = true;
if (settled) // send data only after filters have settled
{
send_rf_data(); // *SEND RF DATA* - see emontx_lib
digitalWrite(LEDpin, HIGH); delay(2); digitalWrite(LEDpin, LOW); // flash LED
emontx_sleep(3);
}
}//*********************************************************************************************************************
void calcVI3Ph(int cycles, int timeout)
{
//--------------------------------------------------------------------------------------
// Variable declaration for filters, phase shift, voltages, currents & powers
//--------------------------------------------------------------------------------------static int lastSampleV,sampleV; // 'sample' holds the raw analog read value, 'lastSample' holds the last sample
static int lastSampleI1,sampleI1;
static int lastSampleI2,sampleI2;
static int lastSampleI3,sampleI3;
static int lastSampleI4,sampleI4;static double lastFilteredV,filteredV; // 'Filtered' is the raw analog value minus the DC offset
static double lastFilteredI1, filteredI1;
static double lastFilteredI2, filteredI2;
static double lastFilteredI3, filteredI3;
static double lastFilteredI4, filteredI4;double phaseShiftedV1; // Holds the calibrated delayed & phase shifted voltage.
double phaseShiftedV2;
double phaseShiftedV3;
double phaseShiftedV4;double sumV,sumI1,sumI2,sumI3,sumI4;
double sumP1,sumP2,sumP3,sumP4; // sq = squared, sum = Sum, inst = instantaneous
int startV; // Instantaneous voltage at start of sample window.
int SupplyVoltage = 3300; //Hardcode supply voltage for emonTx V3, it should be always 3.3V
int crossCount = -2; // Used to measure number of times threshold is crossed.
int numberOfSamples = 0; // This is now incremented
int numberOfPowerSamples = 0; // Needed because 1 cycle of voltages needs to be stored before use
boolean lastVCross, checkVCross; // Used to measure number of times threshold is crossed.
double storedV[PHASE3]; // Array to store >240 degrees of voltage samples
//-------------------------------------------------------------------------------------------------------------------------
// 1) Waits for the waveform to be close to 'zero' (500 adc) part in sin curve.
//-------------------------------------------------------------------------------------------------------------------------
boolean st=false; // an indicator to exit the while loopunsigned long start = millis(); // millis()-start makes sure it doesnt get stuck in the loop if there is an error.
while(st==false) // Wait for first zero crossing...
{
startV = analogRead(inPinV); // using the voltage waveform
if ((startV < 550) && (startV > 440)) st=true; // check it's within range
if ((millis()-start)>timeout) st = true;
}//-------------------------------------------------------------------------------------------------------------------------
// 2) Main measurment loop
//-------------------------------------------------------------------------------------------------------------------------
start = millis();while ((crossCount < cycles * 2) && ((millis()-start)<timeout))
{
lastSampleV=sampleV; // Used for digital high pass filter - offset removal
lastSampleI1=sampleI1;
lastSampleI2=sampleI2;
lastSampleI3=sampleI3;
lastSampleI4=sampleI4;lastFilteredV = filteredV;
lastFilteredI1 = filteredI1;
lastFilteredI2 = filteredI2;
lastFilteredI3 = filteredI3;
lastFilteredI4 = filteredI4;//-----------------------------------------------------------------------------
// A) Read in raw voltage and current samples
//-----------------------------------------------------------------------------
sampleV = analogRead(inPinV); // Read in raw voltage signal
sampleI1 = analogRead(inPinI1); // Read in raw current signal
sampleI2 = analogRead(inPinI2); // Read in raw current signal
sampleI3 = analogRead(inPinI3); // Read in raw current signal
#ifdef CT4
sampleI4 = analogRead(inPinI4); // Read in raw current signal
#endif
//-----------------------------------------------------------------------------
// B) Apply digital high pass filters to remove 2.5V DC offset (to centre wave on 0).
//-----------------------------------------------------------------------------
filteredV = 0.996*(lastFilteredV+(sampleV-lastSampleV));
filteredI1 = 0.996*(lastFilteredI1+(sampleI1-lastSampleI1));
filteredI2 = 0.996*(lastFilteredI2+(sampleI2-lastSampleI2));
filteredI3 = 0.996*(lastFilteredI3+(sampleI3-lastSampleI3));
#ifdef CT4
filteredI4 = 0.996*(lastFilteredI4+(sampleI4-lastSampleI4));
#endifstoredV[numberOfSamples%PHASE3] = filteredV; // store this voltage sample in circular buffer
//-----------------------------------------------------------------------------
// C) Find the number of times the voltage has crossed the initial voltage
// - every 2 crosses we will have sampled 1 wavelength
// - so this method allows us to sample an integer number of half wavelengths which increases accuracy
//-----------------------------------------------------------------------------lastVCross = checkVCross;
checkVCross = (sampleV > startV)? true : false;
if (numberOfSamples==1)
lastVCross = checkVCross;
if (lastVCross != checkVCross)
{
crossCount++;
if (crossCount == 0) // Started recording at -2 crossings so that one complete cycle has been stored before accumulating.
{
sumV = 0;
sumI1 = 0;
sumI2 = 0;
sumI3 = 0;
sumI4 = 0;
sumP1 = 0;
sumP2 = 0;
sumP3 = 0;
sumP4 = 0;
numberOfPowerSamples = 0;
}
}//-----------------------------------------------------------------------------
// D) Root-mean-square method voltage
//-----------------------------------------------------------------------------
sumV += filteredV * filteredV; // sum += square voltage values//-----------------------------------------------------------------------------
// E) Root-mean-square method current
//-----------------------------------------------------------------------------
sumI1 += filteredI1 * filteredI1; // sum += square current values
sumI2 += filteredI2 * filteredI2;
sumI3 += filteredI3 * filteredI3;
#ifdef CT4
sumI4 += filteredI4 * filteredI4;
#endif//-----------------------------------------------------------------------------
// F) Phase calibration - for Phase 1: shifts V1 to correct transformer errors
// for phases 2 & 3 delays V1 by 120 degrees & 240 degrees respectively
// and shifts for fine adjustment and to correct transformer errors.
//-----------------------------------------------------------------------------
phaseShiftedV1 = lastFilteredV + Phasecal1 * (filteredV - lastFilteredV);
phaseShiftedV2 = storedV[(numberOfSamples-PHASE2-1)%PHASE3]
+ Phasecal2 * (storedV[(numberOfSamples-PHASE2)%PHASE3]
- storedV[(numberOfSamples-PHASE2-1)%PHASE3]);
phaseShiftedV3 = storedV[(numberOfSamples+1)%PHASE3]
+ Phasecal3 * (storedV[(numberOfSamples+2)%PHASE3]
- storedV[(numberOfSamples+1)%PHASE3]);
//-----------------------------------------------------------------------------
// G) Instantaneous power calc
//-----------------------------------------------------------------------------
sumP1 += phaseShiftedV1 * filteredI1; // Sum += Instantaneous Power
sumP2 += phaseShiftedV2 * filteredI2;
sumP3 += phaseShiftedV3 * filteredI3;
#ifdef CT4
sumP4 += phaseShiftedV1 * filteredI4;
#endif
numberOfPowerSamples++; // Count number of times looped for Power averages.
numberOfSamples++; //Count number of times looped.}
//-------------------------------------------------------------------------------------------------------------------------
// 3) Post loop calculations
//-------------------------------------------------------------------------------------------------------------------------
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coefficients applied.double V_Ratio = Vcal *((SupplyVoltage/1000.0) / 1023.0);
Vrms = V_Ratio * sqrt(sumV / numberOfPowerSamples);double I_Ratio1 = Ical1 *((SupplyVoltage/1000.0) / 1023.0);
Irms1 = I_Ratio1 * sqrt(sumI1 / numberOfPowerSamples);
double I_Ratio2 = Ical2 *((SupplyVoltage/1000.0) / 1023.0);
Irms2 = I_Ratio2 * sqrt(sumI2 / numberOfPowerSamples);
double I_Ratio3 = Ical3 *((SupplyVoltage/1000.0) / 1023.0);
Irms3 = I_Ratio3 * sqrt(sumI3 / numberOfPowerSamples);
#ifdef CT4
double I_Ratio4 = Ical4 *((SupplyVoltage/1000.0) / 1023.0);
Irms4 = I_Ratio4 * sqrt(sumI4 / numberOfPowerSamples);
#endif//Calculation power values
realPower1 = V_Ratio * I_Ratio1 * sumP1 / numberOfPowerSamples;
apparentPower1 = Vrms * Irms1;
powerFactor1 = realPower1 / apparentPower1;realPower2 = V_Ratio * I_Ratio2 * sumP2 / numberOfPowerSamples;
apparentPower2 = Vrms * Irms2;
powerFactor2 = realPower2 / apparentPower2;realPower3 = V_Ratio * I_Ratio3 * sumP3 / numberOfPowerSamples;
apparentPower3 = Vrms * Irms3;
powerFactor3 = realPower3 / apparentPower3;#ifdef CT4
realPower4 = V_Ratio * I_Ratio4 * sumP4 / numberOfPowerSamples;
apparentPower4 = Vrms * Irms4;
powerFactor4 = realPower4 / apparentPower4;
#else
realPower4 = 0.0;
apparentPower4 = 0.0;
powerFactor4 = 0.0;
#endif//Reset accumulators
sumV = 0;
sumI1 = 0;
sumI2 = 0;
sumI3 = 0;
sumI4 = 0;
sumP1 = 0;
sumP2 = 0;
sumP3 = 0;
sumP4 = 0;
//--------------------------------------------------------------------------------------#ifdef DEBUGGING
// Include these statements for development/debugging only
Serial.print("Total Samples: "); Serial.print(numberOfSamples);
Serial.print(" Power Samples: "); Serial.print(numberOfPowerSamples);
Serial.print(" Time: "); Serial.print(millis() - start);
Serial.print(" Crossings: "); Serial.println(crossCount);for (int j=0; j<PHASE3; j++)
{
Serial.print(storedV[j]); Serial.print(" ");
Serial.println();
}
#endif
}//*********************************************************************************************************************
long readVcc()
{
long result;
ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
delay(2);
ADCSRA |= _BV(ADSC);
while (bit_is_set(ADCSRA,ADSC));
result = ADCL;
result |= ADCH<<8;
result = 1126400L / result;
return result;
}void onPulse()
{
lastTime = pulseTime; //used to measure time between pulses.
pulseTime = micros();
pulseCount++; //pulseCounter
emontx.power = int((3600000000.0 / (pulseTime - lastTime))/ppwh); //Calculate power
}
Re: 3 Phase + Temp + Pulse
Hi wjwnz,
that's exactly what I want to have on my emontx 3.4. unfortunately as I uploaded this code emoncms is not getting any inputs.. Could you help me out?
Debugging my raspberry I got this:
2015-02-21 18:04:52,319 DEBUG 1 NEW FRAME :<PHONE_NUMBER>.32 > 4b
2015-02-21 18:04:52,321 WARNING 1 Discard RX frame 'information' : ['>', '4b']
2015-02-21 18:04:52,525 DEBUG 2 NEW FRAME :<PHONE_NUMBER>.52
2015-02-21 18:04:52,527 INFO 2 Ignoring frame consisting of SOH character
2015-02-21 18:04:52,732 DEBUG 3 NEW FRAME :<PHONE_NUMBER>.73 > 210g
2015-02-21 18:04:52,734 WARNING 3 Discard RX frame 'information' : ['>', '210g']
2015-02-21 18:04:52,937 DEBUG 4 NEW FRAME :<PHONE_NUMBER>.94
2015-02-21 18:04:52,940 INFO 4 Ignoring frame consisting of SOH character
2015-02-21 18:04:53,144 DEBUG 5 NEW FRAME :<PHONE_NUMBER>.14 > 15i
2015-02-21 18:04:53,146 WARNING 5 Discard RX frame 'information' : ['>', '15i']
2015-02-21 18:04:53,362 DEBUG 6 NEW FRAME :<PHONE_NUMBER>.36
2015-02-21 18:04:53,365 INFO 6 Ignoring frame consisting of SOH character
tried few different settings in emonhub.conf but it seams that I don't understand the full logic behind it..
what should be the right setting under the 'Nodes':
[[99]] datacode = h
datacodes = l, h, h, h,
Re: 3 Phase + Temp + Pulse
I don't think you should need anything special - that sketch outputs the default signed integers (data code: h):
Node 99 is (obviously?) out of range and included only as a template. Your emonTx is Node 10. Paul (pb66) can tell you more.
Re: 3 Phase + Temp + Pulse
Hi Robert,
thanks for your reply. Paul explained in another post that this setup in emonhub.conf:
[[99]] datacode = h
datacodes = l, h, h, h,
is the default setting. And it is unchanged from my previous setup. I had a default running setup with emonTx 3.4, and Raspbery Pi with these settings and it was sending data to the Emoncms. But because at home I have a 3 phase setup I tried to upload to the emonTx this version to measure 3 phase setup (Temp and pulse will be added later).
 The EmonTx module has the red led always on and only every 10-15s it blinks. But it stays on. Does this indicate something? Before it was the other way round it was short blinking of the red led.
Re: 3 Phase + Temp + Pulse
The bit about the LED is interesting. As you can see from the sketch above, it should blink for 2 ms immediately after each time data is sent, which should be a little slower than once every 3 s. Does that tie in with how often it prints the voltage and currents?
Re: 3 Phase + Temp + Pulse
I can see nothing obviously wrong in the info you've given. The node [[99]] will have no impact (whilst it remains 99) and it looks like that payload is likely to be all ints, therefore default and not requiring any special settings.
Is the green led on the rfm2pi flashing to indicate reception of packets from the emonTx ?
If YES, what image or software etc to you have on the Pi? is the serial port available to the rfm2pi?
if NO, How close is the emonTx to the Pi? How frequent are the values output over serial?
The sketch above is for a v3(.2) and you mention a v3.4, these are not directly interchangeable, Are you sure you are using a v3.4 compatible sketch? if not it would explain the led activity on the emonTx as well as the lack of data.
Paul
Re: 3 Phase + Temp + Pulse
I didn't notice that RFu_JeeLib was being used. Intruder needs to at least change that to the plain JeeLib. I've not studied the sketch in detail, as "ownership" has now passed to BW/wjwnz, who included the code for the pulse input.
But if the wrong library is being used, it normally fails to return from initialising the RFM module, which means (if the watchdog is causing a restart) that we should see the startup messages, which we're not seeing. So there seems to be an inconsistency there.
Re: 3 Phase + Temp + Pulse
Yes I have Emontx 3.4. So if I understood correctly this will be the main problem. I will try to upload the emonTxV3_4_3Phase_Voltage from GitHub to see if this was the problem..
By the way are there 3 phase, pulse and temperature sketch for 3.4 or no one needs that kind of setup :)
Re: 3 Phase + Temp + Pulse
"are there 3 phase, pulse and temperature sketch for 3.4 or no one needs that kind of setup"
Either no-one has asked for that particular combination before, or they have converted/merged the sketches themselves and not published the result.
If the emonTxV3_4_3Phase_Voltage sketch works (which it probably will), in your original sketch you should only need to change the library as I mentioned above. If it doesn't work, or it gives silly results, then it's possible you've run into the memory corruption problem that's been reported and is still under investigation.
Re: 3 Phase + Temp + Pulse
yes emonTxV3_4_3Phase_Voltage works without errors.
Do I understand correctly that in this sketch for 3.2 version all I need to do is change the RFu_JeeLib to plain JeeLib and it should be ok?
Re: 3 Phase + Temp + Pulse
Correct. (At least, I can't think of anything else that needs changing. The DIP switch settings etc are redundant for your needs. (You don't need them to change the Node number, nor the input voltage setting.)
Re: 3 Phase + Temp + Pulse
This is very interesting!
I am currently running emonTxV3_4_3Phase_Voltage and plan to include pulse counting for our "distributed heating meter", so I'll be very interested to learn if you get the sketch to run on v3.4.


|
|
def | __init__ |
| |
|
def | oauth_consumer_key |
| |
|
def | set_oauth_consumer_key |
| |
|
def | clear_oauth_consumer_key |
| |
|
def | has_oauth_consumer_key |
| |
|
def | MergeFrom |
| |
|
def | Equals |
| |
|
def | IsInitialized |
| |
|
def | ByteSize |
| |
|
def | ByteSizePartial |
| |
|
def | Clear |
| |
|
def | OutputUnchecked |
| |
|
def | OutputPartial |
| |
|
def | TryMerge |
| |
|
def | __str__ |
| |
|
|
| has_oauth_consumer_key_ |
| |
|
| oauth_consumer_key_ |
| |
|
|
int | has_oauth_consumer_key_ = 0 |
| |
|
string | oauth_consumer_key_ = "" |
| |
|
int | koauth_consumer_key = 1 |
| |
The documentation for this class was generated from the following file:
- code/googleappengine-read-only/python/google/appengine/api/user_service_pb.py


Hello! My name is Michael Ramuta and I'm an aspiring web developer. Take a look around at my projects that I've completed in DevBootcamp.
I graduated from the University of Wisconsin-Madison in 2013, with a major in Astronomy-Physics and certificates in Physics and Mathematics. I'm looking to use my mathematics skills, creativity, and passion for problem solving and apply them to the world of web development.


Provides methods for multiway data analysis by means of Parafac and Tucker 3 models. Robust versions (Engelen and Hubert (2011) <doi:10.1016/j.aca.2011.04.043>) and versions for compositional data are also provided (Gallo (2015) <doi:10.1080/03610926.2013.798664>, Di Palma et al. (in press)).
| Version: | 0.1-10 |
| Depends: | ThreeWay, rrcov |
| Imports: | robustbase |
| Published: | 2017-06-22 |
| Author: | Valentin Todorov, Maria Anna Di Palma and Michele Gallo<EMAIL_ADDRESS>|
| Maintainer: | Valentin Todorov <valentin.todorov at chello.at> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| NeedsCompilation: | no |
| Materials: | ChangeLog |
| In views: | OfficialStatistics |
| CRAN checks: | rrcov3way results |
| Reference manual: | rrcov3way.pdf |
| Package source: | rrcov3way_0.1-10.tar.gz |
| Windows binaries: | r-devel: rrcov3way_0.1-10.zip, r-release: rrcov3way_0.1-10.zip, r-oldrel: rrcov3way_0.1-10.zip |
| OS X binaries: | r-release: rrcov3way_0.1-10.tgz, r-oldrel: rrcov3way_0.1-10.tgz |
Please use the canonical form https://CRAN.R-project.org/package=rrcov3way to link to this page.


Socially Iconic is a set of commonly used social media icons that is built into a font. This font icons kit provides you a selection of simple and easy to use css styles that can easily integrate into a selection of templates and designs. Coded using LESS technology, you can easily customize the kit to take it ever further. It is lightweight and looks wonderful on retina devices.
In a single font, we include all custom built pictographyic social media icons.
Deal with less compatibity stress because Socially Iconic doesn't use Javascript.
LESS is more. Customize to your hearts content with simple less file.
Vector font + CSS means every icon and button looks great at any size.
All icons and buttons are vector and CSS based and looks great on high-res.
Designed and coded to work with all frameworks.
si si-rounded si-shadow si-lifted si-bg-white
si si-bordered si-slideout
si si-bordered si-stacked si-slideout
Setting up Socially Iconic is very simple. To start, download or fork/pull the Github repo. Inside the download file, you will find all the contents that make up the Socially Iconic demo. Note: In the download file, you will also find the less and css files. If you want to edit the LESS file, you will need a compiler. No edit is needed if you prefer to use any styles and icons included in the demo.
Link Socially Iconic to your website using the following HTML inside of your
<link href="css/sociallyiconic.css" rel="stylesheet" media="all">
In this kit, all icons are displayed using the unordered list format. The class used inside of the

determines the style applied to all of the icons. The use of Socially Iconic is triggered with the si
class. To prevent conflict, all style classes are prepended by si-
. See below for the list of available style classes.
The definition for each specific icon and it's branding color is defined by the corresponding class. The branding color is defined inside of the
tag where as the icon is defined with the
. To prevent conflict, each icon classes are prepended with iconic-
.
Each icon is also accompanied by a label. Labels are not required and are hidden by default. The labels will only show when si-showlabel
or si-slideout
styles are used.
Example:

Facebook

Twitter

Google+

LinkedIn

Dribbble


About Teklabs
At Teklabs we have a passion for finding ways to do things better. We enjoy solving problems and helping people. We crave personal growth and do so through various forms of education. We read a lot of books, listen to podcasts, and read articles. We believe we are here to encourage people to discover all technology has to offer. Part of how we live this out is through personal training, writing, and sharing online. We create solutions to problems. This can be through an iOS or Mac App or through web technologies. Whatever is best suited to achieve the goal at hand.
Personal Training
At Teklabs we love helping people discover technology. We believe technology should serve a purpose. We title this section personal for a very distinct reason. The training Teklabs delivers is done in a one-on-one setting often in comfort of a client’s home or business. We also title this section personal because we believe technology should be personal. It should serve an individuals needs, wants, and dreams. Teklabs exists to help people explore, discover, and learn about technology. We exist to remove the barriers between technology and people.
Software Development
We are at heart makers. At Teklabs, we write software because we love to create. We enjoy finding solutions to enrich our lives and the lives of others. Our Founder, Craig Booker, spent a good 5 years as a web developer building web sites and web-based solutions. Craig now focuses on finding ways to use code to solve problems. We enjoy iOS development and mobile devices of all kinds. Our computer programming experience lies in Ruby, Ruby on Rails, Javascript, JQuery, and HTML5.
Writing
We have never really considered ourselves writers. That is until we began to write for the love of writing. We are currently in beta as writers. Learning to be disciplined in our writing. We hope our articles provide information which captures our readers’ attention and adds value to their lives.


EasyMeal
Home
How it Works
Here are our Suggestions:
#1:
Loading...
Rating:
/5
Price:
Go Here!
#2:
Loading...
Rating:
/5
Price:
Go Here!
#3:
Loading...
Rating:
/5
Price:
Go Here!
Find Me Other Restaurants


Job Solution is one of the leading names in the education & employment domain. This company is the brainchild of Mr. Abhishek, the founder of the company. He has an extensive knowledge in the field of employment as well as education. He tries to bridge the gap between the opportunities and the eligible candidates. We are a team of the zealous individuals that are known for offering the superlative and affordable services in the various domains of employment. All employees of the company are dexterous and have toiled hard and helped the job aspirants achieve their goal. Due to their hard work, we have been able to establish ourselves sturdily in the market. We are a team of the zealous individuals that are known for offering the superlative and affordable services in the various domains of employment. All employees of the company are dexterous and have toiled hard and helped the job aspirants achieve their goal. Due to their hard work, we have been able to establish ourselves sturdily in the market. We offer the reasonable service of the placement consultant, HR /manpower, recruitment consultant, and visa/ passport consultant. Apart from these services, we have served in the industries like the insurance, BPO, finance, engineering, pharmaceuticals, export/import, IT/ ITES, education /training, civil engineering, automobile, and banking. Being a remarkable name, we have deployed the qualified professionals in each domain none of the parties get a chance to complain. Due to the commendable performance of our employees, we have an endless list of the clients. If you wish to avail any service from Job Tech Solution, feel free to ring us on the numbers that flash on our website.
XYZ solution Pvt Ltd
Skill(s) required : Python
who can apply:
1.Are available for the part time job/internship.
2.Can start the part time job/internship between 20th Jul'19 and 19th Aug'19.
3.Are available for duration of 3 months.
4.Have relevant skills and interests.
** Women willing to start/restart their career can also apply.
Wipro Solutions
Skill(s) required : Python,Django,Flask,Html,Css,JavaScript
who can apply:
1.Are available for the part time job/internship.
2.are available for duration of 4 months
3.are from Mumbai and neighboring cities
4.have relevant skills and interests
ITRUSBERRY SOLUTIONS PRIVATE LIMITED
Skill(s) required : Html,Css,Jquery,Java,MongoDB
who can apply:
1.Are available for the part time job/internship.
2.are available for duration of 8 months
3.are from chennai and neighboring cities
4.have relevant skills and interests
5555-555-55
<EMAIL_ADDRESS>Anna Nagar
Chennai,Tamilnadu
Monday: 9am-5pm
Saturday: 10am-4pm
Sunday: closed
Chennai,Tamilnadu
Bangalore,Karnataka
Hyderabad,Telanagana
Hyderabad,Andhra Pradesh


Sensor
sensor1: F_3_Z_6: Equipment Power
sensor2: F_3_Z_1 RETURN OUTLET CO2 Concentration
sensor3: F_3_Z_7 SUPPLY INLET Temperature
sensor4: F_3_Z_11B SUPPLY INLET Mass Flow Rate
sensor5: F_3_Z_10 VAV REHEAT Damper Position
sensor6: F_3_Z_11B: Thermostat Heating Setpoint
sensor7: F_3_Z_12 REHEAT COIL Power
sensor8: F_3_Z_5: Lights Power


Visit Barcelona!
- Beautiful Landscape
- Beautiful People
- A Wide Range of Activities and sights
Interesting places to go
- Camp Nou
- Las Ramblas
- City bitches
Come for the Incredible Nature, Stay for the Incredible People!
Trully a Once in a Lifetime Expirience!


| W/L | Fighter | Str | Td | Sub | Pass | Weight class | Method | Round | Time |
|---|---|---|---|---|---|---|---|---|---|
|
|
17 20 |
0 0 |
0 0 |
0 0 |
Featherweight |
KO/TKO Punch |
1 |
2:29 |
|
|
|
60 80 |
2 0 |
0 1 |
2 0 |
Women's Strawweight |
U-DEC
|
3 |
5:00 |
|
|
|
25 11 |
1 1 |
3 0 |
2 0 |
Lightweight |
SUB D'Arce Choke |
3 |
0:49 |
|
|
|
82 76 |
0 0 |
0 0 |
0 0 |
Light Heavyweight |
S-DEC
|
3 |
5:00 |
|
|
|
15 14 |
0 0 |
0 0 |
0 0 |
Heavyweight |
KO/TKO Punch |
1 |
3:10 |
|
|
|
131 89 |
2 0 |
0 0 |
0 0 |
Women's Strawweight |
U-DEC
|
3 |
5:00 |
|
|
1 25 |
0 8 |
0 0 |
0 1 |
Heavyweight |
Overturned
|
2 |
0:59 |
||
|
|
21 28 |
2 0 |
1 0 |
2 0 |
Featherweight |
SUB Rear Naked Choke |
2 |
2:01 |
|
|
|
45 28 |
0 2 |
1 0 |
3 1 |
Bantamweight |
U-DEC
|
3 |
5:00 |
|
|
|
81 37 |
1 1 |
0 0 |
2 0 |
Women's Strawweight |
U-DEC
|
3 |
5:00 |
|
|
45 23 |
0 0 |
0 0 |
0 0 |
Welterweight |
Overturned Punch |
2 |
5:00 |
||
|
|
3 0 |
0 0 |
0 0 |
0 0 |
Light Heavyweight |
KO/TKO Knees |
1 |
0:52 |


  I was in a knife fight once and lost; spent a week in the hospital. I blacked out all the time and woke up with new scars. I spent time in jails, rehabs, AA meetings, hospitals and every shitty bar around. I lost jobs, stole, started fights, broke things…you get the picture.
During this stressful time, I started using cannabis again after a long absence. With cannabis being the only mind-altering substance I used now, I fully appreciated the effects: enhanced perception, deeper appreciation of nature and art, decreased aggression and stress, multiple model thinking, back pain relief, enhanced empathy for others. When stoned, I would experience overwhelming guilt for the bad shit I had done to people, but the feelings of guilt would be followed by forgiveness, self - acceptance and the drive to change.  Two years later, I have a great life. Family, girlfriend, friends, house, career and a generally positive attitude.
When I smoke, I stand face to face with my values, unable to lie to myself or justify harm done to others. I think that personal issues are greatly amplified while stoned and harder to ignore. If I am acting unfavorably to myself and/or others on a regular basis, it will let me know. In this sense, I use pot as a catalyst for self-improvement.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Welcome to Go Job
Total Faculties
Male Faculties
Female Faculties
Total Departments
| S.No | Image | Name | Department | Date of Joining |
|---|---|---|---|---|
| 1 | Dr. Gopi Krishnan | CSE | 01-10-2019 | |
| 1 | July 28, april | ECE | July 28, april | |
| 1 | July 28, april | Maths | July 28, april | |
| 1 | July 28, april | Physics | July 28, april |


The Betting Window for November 22-24
by Luke Irwin
Here at Undercard Superstar, we’re in the business of your business! Just follow our sound betting advice, and you too can continue to alienate absolutely everyone around you including former supporters by refusing to fucking. go. away.
As usual, we’ll take a hundred dollars and divide it among five fights.
Let’s make some cashola.
- Brandon Figueroa -340 over Julio Ceja ($5)
- Callum Smith -2500 over John Ryder ($20)
- Luis Nery -500 over Emmnauel Rodriguez ($10)
- Luis Ortiz +425 over Deontay Wilder ($5)
- Leo Santa Cruz -10000 over Miguel Flores ($60)
For what Ortiz did to Wilder last time out, and clearly age isn’t a factor for Ortiz, in fantastic shape, by whatever means, that’s a juicy line to not at least throw some cash at.
BOY, I really, really hate putting money on such an obvious absurd favorite, but with Bovada, I waited as long as I could to offer another boxing line.
Last Week: $ +23.16
Year To Date: $ -101.75
-All lines courtesy of Bovada at time of wager.


You have registered to recieve notification on new projects.
The following new project has been created: http://dev.code4socialgood.org/project/view/
-
Project Name:
-
Full Name:
-
Applicant Email:
-
Applicant Title:
-
Applicant Slack Username:
-
Applicant Skills:
-
Applicant Overview:


To create the structure of your web pages
To create clean and beautiful page layouts
To build user interfaces with JavaScript
To manage and centralize your app's state and logic.
Front-End Developer with experience in both front-end and back-end technologies. I am currently working on UI features at USAA, and I serve on the core team for the Dallas chapter of PEAK (USAA’s African American Diversity & Inclusion Business Group). Prior to working at USAA, I interned at Text-Em-All, building UI features for their web app.
I get great satisfaction from writing and contributing to code that provides the world with efficiency and as well as entertainment. I have an equally strong passion for helping and mentoring others. In my free time, I regularly connect with others at tech events, write articles, and volunteer with organizations including ReactJS Dallas, React Podcast (Discord), and One Community Church. Beyond coding, I enjoy spending time with my family, NBA games, fitness, and gaming.
Immersing myself in the local tech scene and writing articles continue to provide new opportunities to increase my knowledge and build projects while connecting with and assisting others. But more importantly, my ping pong skills have ascended to another level so consider this a challenge!


Folders
<parent>
examples
serverless-starter
zip-example
api-gatew...xample
lambda-testing
upload-de...xample
Folders: 7


Creator · Designer · Coder
I'm Yooseok Seo, a Computer Scientist-in-training currently attending at the University of California, San Diego. I tackle complex problems in a field that's constantly evolving. I design, develop, and implement software. When not developing bigger and better things, I spend most of my time playing with my three-year-old son. I also put in miles training for marathons, try to travel to as many places as possible, learn about other people's stories, and obsess over typography. I look forward to sharing my creativity and dedication to quality. Let’s build something great together.


In Brazil, there is a very commonly used payment method used for online purchases called Boleto Bancário, or bank slip.
When a web-store issues a bank slip, they often display the document entirely (a full A4 page) for the customer to print and take to a bank or post office to be paid.
Over the past few years, technology has evolved to the point where we can now simply use our smartphones to scan the bank slip's barcode and pay it immediately. There is no longer the need to have the entire document on-screen. We could display the only thing that matters: the barcode.
This is where boleto.js comes in handy, generating barcodes using SVG
that provide maximum sharpness in screens of any resolution or pixel density.
Using package managers
npm install boleto.js --save
bower install boleto.js
Basic
Include the library in your code

Include the library in your code

And finally add the code to render the barcode

Alternative Usage
Instead of appending the SVG to the source code, you can store it in a variable. To do so, simply do not provide a CSS selector when generating the SVG:

Extra Features
boleto.js also provides a number of methods to help you display more information about the bank slip.
Bank slip number (raw):
boleto.number();
//<PHONE_NUMBER>0123320318964221470004584410000002000
Bank slip number (formatted):
boleto.prettyNumber();
// 34195.00008 01233.203189 64221.470004 5<PHONE_NUMBER>2000
Barcode number:
boleto.barcode();
//<PHONE_NUMBER>0000020005000001233203186422147000
Barcode checksum digit:
boleto.checksum();
// 5
Nominal amount:
boleto.amount();
// 20.00
Formatted amount:
boleto.prettyAmount();
// R$ 20,00
Bank name:
boleto.bank();
// Itaú
Currency:
boleto.currency();
// { code: 'BRL', symbol: 'R$', decimal: ',' }
Expiration date:
boleto.expirationDate();
// Sun Nov 15 2020 22:00:00 GMT-0200 (BRST)
| Number
| |
| Number (pretty)
| |
| Amount
| |
| Amount (pretty)
| |
| Expiration
| |
| Bank
| |
| Currency
| |
| Barcode
| |
| Checksum |
|


{% extends "registration/registration_base.html" %}
{% load i18n %}
{% block title %}{% trans "Register for an account" %}{% endblock %}
{% block content %}
{% endblock content %}
{% comment %}
**registration/registration_form.html**
Used to show the form users will fill out to register. By default, has
the following context:
``form``
The registration form. This will be an instance of some subclass
of ``django.forms.Form``; consult `Django's forms documentation
`_ for
information on how to display this in a template.
{% endcomment %}