A/B testing is one of the most popular controlled experiments used to optimize web marketing strategies. It allows decision makers to choose the best design for a website by looking at the analytics results obtained with two possible alternatives A and B.
In this article we'll see how different statistical methods can be used to make A/B testing successful. I recommend you to also have a look at this notebook where you can play with the examples discussed in this article.
To understand what A/B testing is about, let's consider two alternative designs A and B. Visitors of a website are randomly served with one of the two. Then, data about their activity is collected by web analytics. Given this data, one can apply statistical tests to determine whether one of the two designs has better efficacy.
Now, different kinds of metrics can be used to measure a website efficacy. With discrete metrics, also called binomial metrics, only the two values 0 and 1 are possible. The following are examples of popular discrete metrics.
With continuous metrics, also called non-binomial metrics,, the metric may take continuous values that are not limited to a set two discrete states. The following are examples of popular continuous metrics.
We are going to see in detail how discrete and continuous metrics require different statistical test. But first, let's quickly review some fundamental concepts of statistics.
With the data we collected from the activity of users of our website, we can compare the efficacy of the two designs A and B. Simply comparing mean values wouldn't be very meaningful, as we would fail to assess the statistical significance of our observations. It is indeed fundamental to determine how likely it is that the observed discrepancy between the two samples originates from chance.
In order to do that, we will use a two-sample hypothesis test. Our null hypothesis H0 is that the two designs A and B have the same efficacy, i.e. that they produce an equivalent click-through rate, or average revenue per user, etc. The statistical significance is then measured by the p-value, i.e. the probability of observing a discrepancy between our samples at least as strong as the one that we actually observed.
Now, some care has to be applied to properly choose the alternative hypothesis Ha. This choice corresponds to the choice between one- and two- tailed tests .
A two-tailed test is preferable in our case, since we have no reason to know a priori whether the discrepancy between the results of A and B will be in favor of A or B. This means that we consider the alternative hypothesis Ha the hypothesis that A and B have different efficacy.
The p-value is therefore computed as the area under the the two tails of the probability density function p(x) of a chosen test statistic on all x' s.t. p(x') <= p(our observation). The computation of such p-value clearly depends on the data distribution. So we will first see how to compute it for discrete metrics, and then for continuous metrics.
Let's first consider a discrete metric such as the click-though rate. We randomly show visitors one of two possible designs of an advertisement, and we keep track of how many of them click on it.
Let's say that from we collected the following information.
At a first glance, it looks like version B was more effective, but how statistically significant is this discrepancy?
Using the 2x2 contingency table shown above we can use Fisher's exact test to compute an exact p-value and test our hypothesis. To understand how this test works, let us start by noticing that if we fix the margins of the tables (i.e. the four sums of each row and column), then only few different outcomes are possible.
Now, the key observation is that, under the null hypothesis H0 that A and B have same efficacy, the probability of observing any of these possible outcomes is given by the hypergeometric distribution .
Using this formula we obtain that:
So Fisher's exact test gives p-value ≈ 7.5%.
Fisher's exact test has the important advantage of computing exact p-values. But if we have a large sample size, it may be computationally inefficient. In this case, we can use Pearson's chi-squared test to compute an approximate p-value.
Let us call Oij the observed value of the contingency table at row i and column j. Under the null hypothesis of independence of rows and columns, i.e. assuming that A and B have same efficacy, we can easily compute corresponding expected values Eij. Moreover, if the observations are normally distributed, then the χ2 statistic follows exactly a chi-square distribution with 1 degree of freedom.
In fact, this test can also be used with non-normal observations if the sample size is large enough, thanks to the central limit theorem.
In our example, using Pearson's chi-square test we obtain χ2 ≈ 3.825, which gives p-value ≈ 5.1%.
Let's now consider the case of a continuous metric such as the average revenue per user. We randomly show visitors one of two possible layouts of our website, and based on how much revenue each user generates in a month we want to determine if one of the two layouts is more efficient.
Let's consider the following case.
Again, at a first glance, it looks like version B was more effective. But how statistically significant is this discrepancy?
The Z-test can be applied under the following assumptions.
Under the above assumptions, the Z-test exploits the fact that the following Z statistic has a standard normal distribution.
Unfortunately in most real applications the standard deviations are unknown and must be estimated, so a t-test is preferable, as we will see later. Anyway, if in our case we knew the true value of σX=100 and σX=90, then we would obtain z ≈ -1.697, which corresponds to a p-value ≈ 9%.
In most cases, the variances of the sampling distributions are unknown, so that we need to estimate them. Student's t-test can then be applied under the following assumptions.
Under the above assumptions, Student's t-test relies on the observation that the following t statistic has a Student's t distribution.
Here SP is the pooled variance obtained from the sample variances SX and S Y, which are computed using the unbiased formula that applies Bessel's correction ).
In our example, using Student's t-test we obtain t ≈ -1.789 and ν = 29, which give p-value ≈ 8.4%.
In most cases Student's t test can be effectively applied with good results. However, it may rarely happen that its second assumption (similar variance of the sampling distributions) is violated. In that case, we cannot compute a pooled variance and rather than Student's t test we should use Welch's t-test.
This test operates under the same assumptions of Student's t-test but removes the requirement on the similar variances. Then, we can use a slightly different t statistic, which also has a Student's t distribution, but with a different number of degrees of freedom ν.
The complex formula for ν comes from Welch–Satterthwaite equation .
In our example, using Welch's t-test we obtain t ≈ -1.848 and ν ≈ 28.51, which give p-value ≈ 7.5%.
In the previous section on continuous metrics, we assumed that our observations came from normal distributions. But non-normal distributions are extremely common when dealing with per-user monthly revenues etc. There are several ways in which normality is often violated:
However, if we have enough samples, tests derived under normality assumptions like Z-test, Student's t-test, and Welch's t-test can still be applied for observations that signficantly deviate from normality. Indeed, thanks to the central limit theorem, the distribution of the test statistics tends to normality as the sample size increases. In the zero-inflated and multimodal example we are considering, even a sample size of 40 produces a distribution that is well approximated by a normal distribution.
But if the sample size is still too small to assume normality, we have no other choice than using a non-parametric approach such as the Mann-Whitney U test.
This test makes no assumption on the nature of the sampling distributions, so it is fully nonparametric. The idea of Mann-Whitney U test is to compute the following U statistic.
The values of this test statistic are tabulated, as the distribution can be computed under the null hypothesis that, for random samples X and Y from the two populations, the probability P(X < Y) is the same as P(X > Y).
In our example, using Mann-Whitney U test we obtain u = 76 which gives p-value ≈ 8.0%.
In this article we have seen that different kinds of metrics, sample size, and sampling distributions require different kinds of statistical tests for computing the the significance of A/B tests. We can summarize all these possibilities in the form of a decision tree.
If you want to know more, you can start by playing with this notebook where you can see all the examples discussed in this article.


class YAML::DBM
YAML + DBM = YDBM
YAML::DBM provides the same interface as ::DBM.
However, while DBM only allows strings for both keys and values, this library allows one to use most Ruby objects for values by first converting them to YAML. Keys must be strings.
Conversion to and from YAML is performed automatically.
See the documentation for ::DBM and ::YAML for more information.
Public Instance Methods
Return value associated with key
from database.
Returns nil
if there is no such key
.
See fetch for more information.
# File lib/yaml/dbm.rb, line 28 def []( key ) fetch( key ) end
Deletes value from database associated with key
.
Returns value or nil
.
# File lib/yaml/dbm.rb, line 101 def delete( key ) v = super( key ) if String === v v = YAML.load( v ) end v end
Calls the given block once for each key
, value
pair in the database. Deletes all entries for which the block returns true.
Returns self
.
# File lib/yaml/dbm.rb, line 116 def delete_if # :yields: [key, value] del_keys = keys.dup del_keys.delete_if { |k| yield( k, fetch( k ) ) == false } del_keys.each { |k| delete( k ) } self end
Calls the given block once for each key
, value
pair in the database.
Returns self
.
# File lib/yaml/dbm.rb, line 139 def each_pair # :yields: [key, value] keys.each { |k| yield k, fetch( k ) } self end
Calls the given block for each value in database.
Returns self
.
# File lib/yaml/dbm.rb, line 150 def each_value # :yields: value super { |v| yield YAML.load( v ) } self end
Return value associated with key
.
If there is no value for key
and no block is given, returns
ifnone
.
Otherwise, calls block passing in the given key
.
See DBM#fetch for more information.
# File lib/yaml/dbm.rb, line 55 def fetch( keystr, ifnone = nil ) begin val = super( keystr ) return YAML.load( val ) if String === val rescue IndexError end if block_given? yield keystr else ifnone end end
Returns true if specified value
is found in the database.
# File lib/yaml/dbm.rb, line 167 def has_value?( val ) each_value { |v| return true if v == val } return false end
Returns a Hash (not a DBM database) created by using each value in the database as a key, with the corresponding key as its value.
Note that all values in the hash will be Strings, but the keys will be actual objects.
# File lib/yaml/dbm.rb, line 180 def invert h = {} keys.each { |k| h[ self.fetch( k ) ] = k } h end
Returns the key for the specified value.
# File lib/yaml/dbm.rb, line 83 def key( keystr ) invert[keystr] end
Converts the contents of the database to an in-memory Hash, then calls Hash#reject with the specified code block, returning a new Hash.
# File lib/yaml/dbm.rb, line 128 def reject hsh = self.to_hash hsh.reject { |k,v| yield k, v } end
Replaces the contents of the database with the contents of the specified object. Takes any object which implements the #each_pair method, including Hash and DBM objects.
# File lib/yaml/dbm.rb, line 192 def replace( hsh ) clear update( hsh ) end
If a block is provided, returns a new array containing [key, value] pairs for which the block returns true.
Otherwise, same as values_at
# File lib/yaml/dbm.rb, line 218 def select( *keys ) if block_given? self.keys.collect { |k| v = self[k]; [k, v] if yield k, v }.compact else values_at( *keys ) end end
Removes a [key, value] pair from the database, and returns it. If the
database is empty, returns nil
.
The order in which values are removed/returned is not guaranteed.
# File lib/yaml/dbm.rb, line 204 def shift a = super a[1] = YAML.load( a[1] ) if a a end
Stores value
in database with key
as the index.
value
is converted to YAML before being stored.
Returns value
# File lib/yaml/dbm.rb, line 233 def store( key, val ) super( key, val.to_yaml ) val end
Converts the contents of the database to an array of [key, value] arrays, and returns it.
# File lib/yaml/dbm.rb, line 258 def to_a a = [] keys.each { |k| a.push [ k, self.fetch( k ) ] } a end
Converts the contents of the database to an in-memory Hash object, and returns it.
# File lib/yaml/dbm.rb, line 270 def to_hash h = {} keys.each { |k| h[ k ] = self.fetch( k ) } h end
Updates the database with multiple values from the specified object. Takes any object which implements the #each_pair method, including Hash and DBM objects.
Returns self
.
# File lib/yaml/dbm.rb, line 246 def update( hsh ) hsh.each_pair do |k,v| self.store( k, v ) end self end
Returns an array of values from the database.
# File lib/yaml/dbm.rb, line 159 def values super.collect { |v| YAML.load( v ) } end
Returns an array containing the values associated with the given keys.
# File lib/yaml/dbm.rb, line 91 def values_at( *keys ) keys.collect { |k| fetch( k ) } end


[Placeholder] Home Page
Now Playing
Song Queue
| Points | Title | Artist | URL | Poster | |
|---|---|---|---|---|---|
| 0 | Never Gonna Give You Up | Risk Astley | https://youtu.be/dQw4w9WgXcQ | --- |
| Points | Title | Artist | URL | Poster | |
|---|---|---|---|---|---|
| 0 | Never Gonna Give You Up | Risk Astley | https://youtu.be/dQw4w9WgXcQ | --- |


# [![Jade - template engine ](http://i.imgur.com/5zf2aVt.png)](http://jade-lang.com/)
Full documentation is at [jade-lang.com](http://jade-lang.com/)
Jade is a high performance template engine heavily influenced by [Haml](http://haml-lang.com) and implemented with JavaScript for [node](http://nodejs.org). For discussion join the [Google Group](http://groups.google.com/group/jadejs).
You can test drive Jade online [here](http://naltatis.github.com/jade-syntax-docs).
[![Build Status](https://travis-ci.org/visionmedia/jade.png?branch=master)](https://travis-ci.org/visionmedia/jade) [![Dependency Status](https://gemnasium.com/visionmedia/jade.png)](https://gemnasium.com/visionmedia/jade) [![NPM version](https://badge.fury.io/js/jade.png)](http://badge.fury.io/js/jade)
## Announcements
Deprecation of implicit script/style text-only:
Jade version 0.31.0 deprecated implicit text only support for scripts and styles. To fix this all you need to do is add a . character after the script or style tag.
It is hoped that this change will make Jade easier for newcomers to learn without affecting the power of the language or leading to excessive verboseness.
If you have a lot of Jade files that need fixing you can use [fix-jade](https://github.com/ForbesLindesay/fix-jade) to attempt to automate the process.
Command line option change:
since v0.31.0, -o is preferred for –out where we used -O before.
## Installation
via npm:
`bash
$ npm install jade
`
## Syntax
Jade is a clean, whitespace sensitive syntax for writing html. Here is a simple example:
```jade doctype html html(lang=”en”)
- head
title= pageTitle script(type=’text/javascript’).
if (foo) bar(1 + 5)- body
h1 Jade - node template engine #container.col
- if youAreUsingJade
- p You are amazing
- else
- p Get on it!
- Jade is a terse and simple templating language with a strong focus on performance and powerful features.
becomes
```html <!DOCTYPE html>
-
<title>Jade</title>

Jade - node template engine

You are amazing

Jade is a terse and simple templating language with a strong focus on performance and powerful features.

The official [jade tutorial](http://jade-lang.com/tutorial/) is a great place to start. While that (and the syntax documentation) is being finished, you can view some of the old documentation [here](https://github.com/visionmedia/jade/blob/master/jade.md) and [here](https://github.com/visionmedia/jade/blob/master/jade-language.md)
## API
For full API, see [jade-lang.com/api](http://jade-lang.com/api/)
```js var jade = require(‘jade’);
// compile var fn = jade.compile(‘string of jade’, options); var html = fn(locals);
// render var html = jade.render(‘string of jade’, merge(options, locals));
// renderFile var html = jade.renderFile(‘filename.jade’, merge(options, locals)); ```
### Options
- filename Used in exceptions, and required when using includes
- compileDebug When false no debug instrumentation is compiled
- pretty Add pretty-indentation whitespace to output _(false by default)_
## Browser Support
The latest version of jade can be download for the browser in standalone form from [here](https://github.com/visionmedia/jade/raw/master/jade.js). It only supports the very latest browsers though, and is a large file. It is recommended that you pre-compile your jade templates to JavaScript and then just use the [runtime.js](https://github.com/visionmedia/jade/raw/master/runtime.js) library on the client.
To compile a template for use on the client using the command line, do:
`console
$ jade --client --no-debug filename.jade
`
which will produce filename.js containing the compiled template.
## Command Line
After installing the latest version of [node](http://nodejs.org/), install with:
`console
$ npm install jade -g
`
and run with
`console
$ jade --help
`
## Additional Resources
Tutorials:
- cssdeck interactive [Jade syntax tutorial](http://cssdeck.com/labs/learning-the-jade-templating-engine-syntax)
- cssdeck interactive [Jade logic tutorial](http://cssdeck.com/labs/jade-templating-tutorial-codecast-part-2)
- in [Japanese](http://blog.craftgear.net/4f501e97c1347ec934000001/title/10%E5%88%86%E3%81%A7%E3%82%8F%E3%81%8B%E3%82%8Bjade%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%B3)
Implementations in other languages:
Other:
- [Emacs Mode](https://github.com/brianc/jade-mode)
- [Vim Syntax](https://github.com/digitaltoad/vim-jade)
- [TextMate Bundle](http://github.com/miksago/jade-tmbundle)
- [Coda/SubEtha syntax Mode](https://github.com/aaronmccall/jade.mode)
- [Screencasts](http://tjholowaychuk.com/post/1004255394/jade-screencast-template-engine-for-nodejs)
- [html2jade](https://github.com/donpark/html2jade) converter
## License
MIT


Beta This is a test version of the layout of this page. Take the survey to help us improve it
FOI release
Ofsted pre-registration advice notes for free schools that opened in 2012.
PDF , 83.6KB , 6 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 81KB , 6 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 74.1KB , 6 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 69.9KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 74.3KB , 6 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 77.3KB , 6 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 75.5KB , 7 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 72KB , 6 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 63.4KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 78.4KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 79.4KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 70.6KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 72.5KB , 6 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 68.8KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 67.7KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 81.4KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 69.6KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 90.7KB , 6 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 70.7KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 73.3KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 65.4KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 68.5KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 72.7KB , 6 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 70.7KB , 6 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 69.9KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 69.4KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 69.5KB , 6 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 66.3KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 72.9KB , 6 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 64.5KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 94.3KB , 6 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 74.9KB , 6 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 75.4KB , 6 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 64.1KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 69.8KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 70.8KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 78.9KB , 7 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 85.5KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 69.2KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 65.7KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 64KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 67.3KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 52.9KB , 4 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 72KB , 6 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 77.3KB , 6 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 82.9KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 63.5KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 84.5KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 60KB , 6 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 65.2KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 64.1KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 69.5KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 70.2KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 63.7KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 77.6KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 70.5KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 72KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 72.2KB , 6 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 69.3KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 65.1KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 83.8KB , 8 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 78.9KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 63.5KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 69.6KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 77.3KB , 6 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 69.1KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
Following a Freedom of Information request for an Ofsted pre-registration advice note we are publishing the advice notes for all 2012 openers.
Under the Education and Skills Act 2008, an Ofsted pre-registration inspection is required to inform the Secretary of State’s decision whether to register an institution as an independent school.
Following the pre-registration inspection, the Ofsted inspector produces an advice note for the department. In the interests of transparency the department is publishing the Ofsted Advice Notes for the free schools that opened in 2012. They are available to download from this page.
No new school is allowed to open unless it is completely ready to provide a high-quality education, in a safe environment.
Ofsted was clear that all of the free schools it inspected in the weeks prior to opening were ready, subject to a few conditions in some cases. The department made sure that all of the conditions were fully met by the schools before they opened in September.


RMI Compiler Settings
The Compiler Types node has the following
subnodes for compiling RMI stub files:
- RMI Stub Compiler
- RMI Stub Compiler (IIOP)
The RMI Stub Compiler node represents a mode for running the rmic
compiler and generating RMI stubs and skeletons. When you generate an
RMI implementation class with the RMI templates, the
stub compiler is assigned by default. You can see the compiler that
has been assigned for an implementation class by looking at the
property sheet for the class. (The property sheet's Execution tab has
a Compiler property.)
To customize the stub compiler setting:
- Choose Tools Options
from the main window.
- Expand the node for Building.
- Expand the node for Compiler Types and select an RMI compiler type.
The Properties tab contains the following properties:
- Error Expression.
The string used in error messages to identify
the source of messages issued when compiling RMI classes.
- External Compiler.
The command line executable that is
used to compile an RMI class for stub and skeletons.
This property defaults to a local copy of the rmic
compiler. The format can contain symbolic names that are replaced
according to the RMI Stub Compiler configuration.
- Identifying Name.
An instance of the RMI Stub Compiler that is defined with these
property settings. The default value is RMI Stub Compiler. When this
name appears in a class's property sheet, the IDE uses the compilation
mode defined by this node.
- IIOP.
If true, turns on IIOP over RMI compilation. The default
setting is False.
- Keep Generated.
If true, stub source files are not deleted. The default
setting is False.
- Target.
The directory for generated classes. Can either reflect Java
Compiler Settings or can be specified in the Expert properties.
- Version.
Specifies the version of the JDK used to generate stubs. The default
version is JDK 1.2.
The Expert tab contains the following properties:
- Target.
The output directory for the generated classes.
The Info tab contains the following properties:
- Name.
Name of the stub compiler.
-
Template.
If true, uses this object as a template.
Legal Notices


Copyright © saket kunwar march 2009 Created:May 13, 2009 Description: TODO: Add description to node_server
Authors: saket kunwar.
| addnode/1 | |
| addnode/2 | add node to the network ,takes V as NodeId and N is the num of finger entry. |
| bulkadd/2 | add nodes to the network in bulk. |
| cfindNode/2 | find the right node for {Key,val} starting from FromNode. |
| curry/2 | |
| getpid/1 | store {Key,Val} to node NodeID. |
| handle/2 | |
| init/0 | |
| joinNetwork/2 | update the finger entry of NodeA via Boot node. |
| keyHash/1 | generate hash frm a Key. |
| lookupkey/2 | lookup key originating from node FromNode. |
| nodelist/0 | get all the nodes in the current network. |
| parsenodelist/2 | parse the nodelist containing {NodeId,Pid} to NodeId. |
| randomId/0 | generate randomId wit eigt digits containing (0 to 3). |
| remove/1 | |
| sleep/1 | |
| storekey/2 | store key originating from node FromNode. |
| test/2 |
addnode(V) -> any()
addnode(V, N) -> any()
add node to the network ,takes V as NodeId and N is the num of finger entry
bulkadd(T, N) -> any()
add nodes to the network in bulk.
cfindNode(FromNode, Key) -> any()
find the right node for {Key,val} starting from FromNode.
curry(Cmd, Dat) -> any()
getpid(Node) -> any()
store {Key,Val} to node NodeID.
handle(X1, L) -> any()
init() -> any()
joinNetwork(Boot, NodeA) -> any()
update the finger entry of NodeA via Boot node.
keyHash(Key::string()) -> Hash::integer()
generate hash frm a Key.
lookupkey(FromNode, Key) -> any()
lookup key originating from node FromNode
nodelist() -> any()
get all the nodes in the current network.
parsenodelist(T, N) -> any()
parse the nodelist containing {NodeId,Pid} to NodeId.
randomId() -> any()
generate randomId wit eigt digits containing (0 to 3). spec randmId()->Val::integer()
remove(Node) -> any()
sleep(T) -> any()
storekey(FromNode, X2) -> any()
store key originating from node FromNode
test(C, D) -> any()
Generated by EDoc, Jul 29 2009, 17:40:17.


Days of the week
Date picker
User input
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
Date
Month
Year
Run


Class overview
The Slate is structured as a set of classes in the ::tycho namespace. It runs with either vanilla Tcl (8.0) or [incr Tcl] (3.0). The Slate was originally written for [incr Tcl], so all of the code is written in an object-oriented style. To run in vanilla Tcl, the Slate uses a small object-oriented layer that simulates objects (see the installation notes).
The two main classes in this package are IncrCanvas and Slate. IncrCanvas is the basic widget that extends the Tk canvas to work with complex items. The Slate is a subclass of IncrCanvas that adds the more advanced features. Generally, you will just create an instance of Slate.
There are three main tress in the rest of the support classes. The tree rooted by ComplexItem contains all of the complex item classes (a.k.a the user-defined items). The Shape tree contains the objects that handle information related to the shape of items. Finally, the Interactor tree contains the interactor classes.


Hello
Here I make custom software along with installers. For easy installation of software which might be tricky to install normally.
Available Softwares :
PSpice One Click Installer Size:22 MB Server: MediaFire
This work is licensed under a Creative Commons Attribution 4.0 International License.


|
Fig. 1
|
Photoluminescence enhancement by PEACl and YCl 3 incorporati ... |
|
Fig. 2
|
Efficiency and stability of sky-blue PeLEDs with YCl 3. a De ... |
|
Fig. 3
|
Phase composition study of CsPbBr 3:PEACl (1:1) film and the ... |
|
Fig. 4
|
Mechanism of PLQE enhancement by YCl 3. a ICP measurement re ... |


Here you can find information on the maps such as traffic accidents, local weather, and a link to a crime spotter web page in Shreveport.
We want to make sure you have a good time but make sure your safe as well so you can return again another day!


Introduction This tutorial will show you how to create a simple theme in Hugo. I assume that you are familiar with HTML, the bash command line, and that you are comfortable using Markdown to format content. I’ll explain how Hugo uses templates and how you can organize your templates to create a theme. I won’t cover using CSS to style your theme. We’ll start with creating a new site with a very basic template.
Move static content to static Jekyll has a rule that any directory not starting with _ will be copied as-is to the _site output. Hugo keeps all static content under static. You should therefore move it all there. With Jekyll, something that looked like ▾ <root>/ ▾ images/ logo.png should become ▾ <root>/ ▾ static/ ▾ images/ logo.png Additionally, you’ll want any files that should reside at the root (such as CNAME) to be moved to static.
Hello Intro Commodo commodo ut ex deserunt nisi laborum. Exercitation incididunt nulla minim est nisi elit ut. Exercitation sint nulla consectetur ex. Mollit sit sunt anim sunt duis dolor Lorem occaecat aliqua laboris dolor deserunt eiusmod consectetur. Do dolore incididunt in proident minim voluptate eu mollit qui ullamco ex. Exercitation laborum incididunt velit commodo ea quis mollit irure esse magna. Velit ad aliquip exercitation id cupidatat laboris.
Hugo uses the excellent go html/template library for its template engine. It is an extremely lightweight engine that provides a very small amount of logic. In our experience that it is just the right amount of logic to be able to create a good static website. If you have used other template systems from different languages or frameworks you will find a lot of similarities in go templates. This document is a brief primer on using go templates.
Step 1. Install Hugo Goto hugo releases and download the appropriate version for your os and architecture. Save it somewhere specific as we will be using it in the next step. More complete instructions are available at installing hugo Step 2. Build the Docs Hugo has its own example site which happens to also be the documentation site you are reading right now. Follow the following steps: Clone the hugo repository Go into the repo Run hugo in server mode and build the docs Open your browser to http://localhost:1313 Corresponding pseudo commands:


Risks
Risk Factors
{{risk.risk_text}}.
Notes
EMR
{{appointment_info.Patientname}}
{{appointment_info.age}}
{{appointment_info.incidentsname_c}}
Allergies
{{emr_snapshot.allergies.join()}}.
No information provided.
Past Diseases
{{emr_snapshot.past_diseases.join()}}.
No information provided.
Major Illness and Treatment History
{{emr_snapshot.past_illness.join()}}.
No information provided.
Surgical Procedures
{{emr_snapshot.past_surgeries.join()}}.
No information provided.
View Summary
End Consultation


Match Play. Double Match Point. How should Red play 31?
pips Red=122 White=57
(CorrectAnswer= 0/0, ErrorScore= 0)
A highly complex position and one that worthy of a longer article.
The one thing that Red must not do is to hit the White checker on his 12-pt.
Red’s tactic is to let White reach home with that checker and then force him off his 22-pt anchor. Once those two checkers are separated Red can attack and (hopefully) close out all three white blots.
The correct play is a toss-up between 22/18 and 15/11. Only a computer can separate those two plays and XG gives the nod to 15/11 but for all practical purposes the two plays are equal. Interestingly Red’s winning chances are 70% which is higher than you might think but playing with three checkers against fifteen checkers is nigh on impossible.
The one thing that Red must not do is to hit the White checker on his 12-pt.
Red’s tactic is to let White reach home with that checker and then force him off his 22-pt anchor. Once those two checkers are separated Red can attack and (hopefully) close out all three white blots.
The correct play is a toss-up between 22/18 and 15/11. Only a computer can separate those two plays and XG gives the nod to 15/11 but for all practical purposes the two plays are equal. Interestingly Red’s winning chances are 70% which is higher than you might think but playing with three checkers against fifteen checkers is nigh on impossible.
1. Cubeful 2-ply 22/19 8/7 Eq.: +0.296 0.648 0.000 0.000 - 0.352 0.088 0.037 2. Cubeful 2-ply 22/18 Eq.: +0.294 (-0.002) 0.647 0.000 0.000 - 0.353 0.080 0.028 3. Cubeful 2-ply 15/11 Eq.: +0.294 (-0.003) 0.647 0.000 0.000 - 0.353 0.079 0.031 4. Cubeful 2-ply 22/19 15/14 Eq.: +0.284 (-0.012) 0.642 0.000 0.000 - 0.358 0.082 0.033 5. Cubeful 2-ply 24/23 22/19 Eq.: +0.282 (-0.014) 0.641 0.000 0.000 - 0.359 0.086 0.029


projects.exe
skills.js
let skills = {
- 'JavaScript'
- 'HTML'
- 'CSS'
- 'SASS'
- 'GIT'
- 'jQuery'
- 'Webpack'
- 'Ajax'
}|
education.js
/*Lake Washington Technical College*/September 2011-2016
`Took classes such as Technical Writing, C++, JavaScript and programming fundamentals along with multiple web development courses. Created projects demonstrating knowledge of HTML, CSS, JavaScript, version control and API handling.`
/*Udemy Online Courses*/September 2017-2018
`Courses taken:
-The Complete JavaScript Course
2018
-Build
Responsive Real World Websites with HTML5 and CSS3
-The Web Developer Bootcamp`


labs.
kreativgebiet.com
Open Source Laboratory by Kreativgebiet
style-paths
Automatically add the paths include specific files into your includePaths for sass.
node.js
server-side
Taskana
Unofficial client for the new (2015) interface of Asana.
electron
gulp-es6-boilerplate
Automatically add the paths include specific files into your includePaths for sass.
frontend
boilerplate
LoremFiller
Simple menubar application for generating dummy text.
electron
Rich
Rich is an opinionated implementation of CKEditor for Rails 3.2 and up.
ruby


[[style.html]]
The GL disbursement failed for the electronic journal voucher batch. Please contact the ministry to get the correct GL and update in the BC Registries application. The error report is attached with further details.


--- layout: layout title: Antonio Mallia's Blog ---
Abstract: Do you really know how search engines work? In this talk I will walk you through the most popular approaches, algorithms, data structures, techniques, and tools. Moreover, search is not just about queries and ranked results, but there are many other features such as auto-complete suggestions, alerts, geo-search... This talk is not meant to be only about theory, but we will see how to practically approach and build a search engine. Attending this talk won't make you a search engine engineer, but you will end up having the basic knowledge of a real search engine.
Codemotion Rome 2019Abstract: Do you really think to know C++? Then you probably want to participate in this talk, you will discover the most surprising, weird, strange or really “WTF” language features you could encounter. There are so many obscure corners of the language that seem to go against common programming intuition. The freedom that C++ gives the programmer may be a double-edged sword; while the user can do many things that have been abstracted away in other languages, it’s very easy to shoot ourselves in the foot. From unintended private member access to unexpected function definitions, in this talk, we will walk you through the quirks that still exist in the language today, and the motivations behind them.
Meeting C++ 2017 Topconf Duesseldorf 2017Abstract: We believe that every Android developer should be able to write a simple but powerful backend without having to maintain a massive boilerplate codebase. So, what’s better than a Java framework and a NoSQL database for storing your data? Moreover, the client code can become really hard to maintain when dealing with common tasks such as RESTful requests or user authentication. In spending time trying to reinvent the wheel, you will lose your focus on what’s really important: your users. In this talk we will learn how to develop a full stack project, from the backend, through the protocol to the Android application.
Droidcon Turin 2016


No seeds were found.
{{ hashItem }} {{ seed.seed }}
{{ seed.createdDate | date:'MMMM d y - h:mm a' }}


Follow this tutorial to have a basic understanding of the Genit framework.
Learn Genit from A to Z.
genit The main command
cc Shortcut for the compile command
compile Compile a project
create Create a project


|
NeuralSharp
1.0
NeuralSharp is a FOSS C# library for neural networks.
|
Represents a layer in a learner. More...
Public Member Functions | |
| int | CountParameters (List< object > siameseIDs) |
| Counts the amount of parameters of the layer. More... | |
| void | Feed (bool learning=false) |
| Feeds the layer forward. More... | |
| void | UpdateWeights (float rate, float momentum=0.0F) |
| Updates the weights of the layer. More... | |
| void | BackPropagate (TOut outputError, TIn inputError, bool learning) |
| Backpropagates the given error trough the layer. More... | |
| void | SetInputAndOutput (TIn input, TOut output) |
| Sets the input object and the output object of the layer. More... | |
| TOut | SetInputGetOutput (TIn input) |
| Sets the input object of the layer and creates and sets the output object. More... | |
| ILayer< TIn, TOut > | CreateSiamese () |
| Creates a siamese of the layer. More... | |
| ILayer< TIn, TOut > | Clone () |
| Clones the layer. More... | |
Properties | |
| TIn | Input [get] |
| The input object of the layer. More... | |
| TOut | Output [get] |
| The output object. More... | |
| int | Parameters [get] |
| The amount of parameters of the layer. More... | |
| object | SiameseID [get] |
| The siamese identifier of the layer. More... | |
Represents a layer in a learner.
| TIn | The input type of the layer. |
| TOut | The output type of the layer. |
| TIn | : | class | |
| TOut | : | class |
| void NeuralSharp.ILayer< TIn, TOut >.BackPropagate | ( | TOut | outputError, |
| TIn | inputError, | ||
| bool | learning | ||
| ) |
Backpropagates the given error trough the layer.
| outputError | The output error to be backpropagated. |
| inputError | The object to be written the input error into. |
| learning | Whether the layer is being used in a training session. |
| ILayer<TIn, TOut> NeuralSharp.ILayer< TIn, TOut >.Clone | ( | ) |
Clones the layer.
| int NeuralSharp.ILayer< TIn, TOut >.CountParameters | ( | List< object > | siameseIDs | ) |
Counts the amount of parameters of the layer.
| siameseIDs | The siamese identifiers to be excluded. |
| ILayer<TIn, TOut> NeuralSharp.ILayer< TIn, TOut >.CreateSiamese | ( | ) |
Creates a siamese of the layer.
| void NeuralSharp.ILayer< TIn, TOut >.Feed | ( | bool | learning = false | ) |
Feeds the layer forward.
| learning | Whether the layer is being used in a training session. |
| void NeuralSharp.ILayer< TIn, TOut >.SetInputAndOutput | ( | TIn | input, |
| TOut | output | ||
| ) |
Sets the input object and the output object of the layer.
| input | The input object to be set. |
| output | The output object to be set. |
| TOut NeuralSharp.ILayer< TIn, TOut >.SetInputGetOutput | ( | TIn | input | ) |
Sets the input object of the layer and creates and sets the output object.
| input | The input object to be set. |
| void NeuralSharp.ILayer< TIn, TOut >.UpdateWeights | ( | float | rate, |
| float | momentum = 0.0F |
||
| ) |
Updates the weights of the layer.
| rate | The learning rate to be used. |
| momentum | The momentum to be used. |
|
get |
The input object of the layer.
|
get |
The output object.
|
get |
The amount of parameters of the layer.
|
get |
The siamese identifier of the layer.


About Me
Enthusiastic web developer with strong programming fundamentals. I take pride in writing concise, readable, and scalable code that solves problems, and I enjoy searching improving my workflow and knowledge related to my current project and the tech wold more generally. I’m interested in positions where I can contribute substantially as part of a team, and grow as a result.
Technologies
- Languages: Javascript(ES5/ES6), Python, C/C++, Ruby, SQL, Bash
- Front End: CSS3, SCSS, HTML5, React, jQuery, Webpack
- Middleware: NodeJS, Ruby On Rails
- Testing: RSpec, Mocha, Jest, Capybara
- Database: PostgreSQL, MongoDB
- DevOps: Git, Docker, Vagrant, Linux
Projects
The democratic experience, in youtube video form.
Watch videos together with a group of people online, and vote on the next video to be played. Features video synchronization, and a drag and drop ordering interface used for preference-order-based voting. stack: SCSS, React, Ruby on Rails, PostgreSQL
Discord Bot
Serves data on the internals of one of my favorite games via a set of simple fuzzy-searched commands. Includes gifs/images, and interfaces with google sheets as a data source. Written in Python.
Real-time web chatroom
Features the typical suite of features expected of a chatroom, including colored names, user anonymization, and user status notifications. Written as an intro to React and Websockets.
stack: Nodejs, Express, ws, React, SCSS
Education
Lighthouse Labs(Vancouver)
https://www.lighthouselabs.ca/Certificate in Web Development
April 2019 - Present
Coding Bootcamp with immersive, up-to-date project-based learning.
Along with the many technologies covered in the curriculum, Lighthouse Labs familiarized me with these essential areas of software development:
- Testing (unit, integration)
- Version control in team settings
- Relational Database schema design and implementation
- RESTful API design
- Effective planning for software projects
- Working with and meeting business requirements
independent Study
Summer 2017 - Present
I’m a self-motivated learner, and as a result much of my dev experience thus far has been self-directed, building small self-contained projects, and learning as much as I can from the internet about software development. I’ve used too many resources to list here, but here are a few of the more substantive pieces of content that I’ve learned from.
Books:
- The C Programming Language - K&R
- From Mathematics to Generic Programming - Alexander A. Stepanov, Daniel E. Rose
- Clean Code - Robert C. Martin
- Code Complete - Steve McConnell
- You Don’t Know JS - Kyle Simpson
- Don’t Make Me Think - Steve Krug
- Effective Python - Brett Slatkin
- The Road to Learn React - Robin Wiruch
Courses:
- Neural Networks and Deep Learning (Coursera, Andrew Ng)
- Advanced Python (Pluralsight)
Websites:
- HackerRank
- CodeSignal
- Dev.to


In my project, I'm working on a system which can motivate people to dump their wastages on garbage bin instead of throwing it everywhere. People will get points on using this dust-bins which will be stored in their RFID
card or tag
which will be given by the shopkeeper.
Shopkeeper owns the smart bin. Points will be depend on the type ( WET / DRY ) and Amount of the garbage. Those pints can be use for getting discount in respective shop.
Smart bin system can also be used in
marketing
purpose as it contains speaker in controller which address people towards respective shop. Some Students also tried same concept about this situation.The key idea is to Reward people for making people use
Dust-bin.
Rough Sketches
Views of Main controller
Views of Dustbin controller
Shopkeeper trying to sell RFID card to consumer
Concept sketch of main controller and Dustbin
Ultrasonic sensor detecting Dump
Controller configuring RFID card
Shopkeeper asks for RFId card for discount
Flow-chart of System. It describing how individual process will occur oen by one
Dustbin stand
Front-view
Main controller 3D view
Here Ultrasonic sensor will be placed(inside Dustbin).
Top-view of Dustbin
Side-view of Dustbin
Back-view of Dustbin
| Resources | Use of resources | Type |
|---|---|---|
| Milling Machine | Frame work | Machine |
| 3D Printer | Controller case & Dustbin | Machine |
| Nails | Frame work | Joining parts |
| Hammer | Frame work | Tool |
| Wooden shits | Frame work | Material |
| Mending plates | Frame work | Joining parts |
| Servo motors | Dust Bin | Motor |
| Hinges | Dustbin/Frame | Joining parts |
| PCB Milling machine | Circuit Design | Machine |
| Arduino / Ultra sonic sensor / infrared sensor / Transceiver circuitry / Micro controller-8051 or Atmega / LCD |
Circuit Design | Electronic components & circuitry |
| Laser Cutter | Case for Bin's Sub systems & laser printing | Machine |
| Vynyl Cutter | Logo making | Machine |
| Elements | Cost (Approx) |
|---|---|
| Arduino | Rs.1500 per piece |
| Transceivers (2) | Rs.300 per piece | Servo (2) | Rs.300 per piece |
| Ultrasonic sensor / infraredsensor (4) | Rs.300 per piece |
| Speaker | RS.300 per piece |
| LCD | Rs.200 per piece |
| RFID (2) | Rs.300 per piece |
| TOTAL | Rs.3500 - 4500 |
*Transceivers, Servo, Ultrasonic sensor, Speaker, Lcd are components which i'm thinking about purchasing.


Yabasic runs within the text-console (windows and linux), but may also create a window for drawing simple graphics. This can be seen in the Screenshots below, which are taken from the demo of yabasic.
Screenshots taken under Windows 10.
Screenshots taken under fedora 24.


| extract {pbdDMAT} | R Documentation |
Operators to extract or replace parts of a distributed matrix.
## S4 method for signature 'ddmatrix' x[i, j, ICTXT]
x |
numeric distributed matrix. |
i, j |
indices specifying elements to extract or replace. Indices can
be |
ICTXT |
optional BLACS context number for output |
... |
additional arguments. |
[
can be used to extract/replace for a distributed matrix exactly as
you would with an ordinary matrix.
The functions rely on reblocking across different BLACS contexts. If
i
is not empty, then the input distributed matrix will be
redistributed along context 1, where extracting/deleting rows does not
destroy block-cyclicality. Likewise, if j
is not empty, then the
input distributed matrix will be redistributed along context 2. When
extraction is complete, the matrix will be redistributed across its input
context.
Returns a distributed matrix.
## Not run: # Save code in a file "demo.r" and run with 2 processors by # > mpiexec -np 2 Rscript demo.r library(pbdDMAT, quiet = TRUE) init.grid() x <- ddmatrix(1:9, 3, bldim=2) y <- x[, -1] y <- head(y, 2) y finalize() ## End(Not run)


Rolihlahla Mandela was born into the Madiba clan in the village of
Mvezo, in the Eastern Cape, on 18 July 1918. His mother was
Nonqaphi Nosekeni and his father was Nkosi Mphakanyiswa Gadla
Mandela, principal counsellor to the Acting King of the Thembu
people, Jongintaba Dalindyebo. In 1930, when he was 12 years old,
his father died and the young Rolihlahla became a ward of
Jongintaba at the Great Place in Mqhekezweni1.
additional information


|
lubyk
0.5
|
Friction joint definition. More...
#include <b2FrictionJoint.h>
Inherits b2JointDef.
Public Member Functions | |
| b2FrictionJointDef () | |
| void | Initialize (b2Body *bodyA, b2Body *bodyB, const b2Vec2 &anchor) |
Public Attributes | |
| b2Vec2 | localAnchorA |
| The local anchor point relative to bodyA's origin. | |
| b2Vec2 | localAnchorB |
| The local anchor point relative to bodyB's origin. | |
| float32 | maxForce |
| The maximum friction force in N. | |
| float32 | maxTorque |
| The maximum friction torque in N-m. |
Friction joint definition.
Definition at line 25 of file b2FrictionJoint.h.
| b2FrictionJointDef::b2FrictionJointDef | ( | ) | [inline] |
Definition at line 27 of file b2FrictionJoint.h.
References e_frictionJoint, localAnchorA, localAnchorB, maxForce, maxTorque, b2Vec2::SetZero(), and b2JointDef::type.
Initialize the bodies, anchors, axis, and reference angle using the world anchor and world axis.
The local anchor point relative to bodyA's origin.
Definition at line 41 of file b2FrictionJoint.h.
Referenced by b2FrictionJointDef().
The local anchor point relative to bodyB's origin.
Definition at line 44 of file b2FrictionJoint.h.
Referenced by b2FrictionJointDef().
The maximum friction force in N.
Definition at line 47 of file b2FrictionJoint.h.
Referenced by b2FrictionJointDef().
The maximum friction torque in N-m.
Definition at line 50 of file b2FrictionJoint.h.
Referenced by b2FrictionJointDef().


This inspection reports any @net.jcip.annotations.GuardedBy annotations on instance fields or methods,
where
the guard is a static field. Guarding a non-static by a static may result in excessive lock contention,
as access to each locked field in any object instance will prevent simultaneous access to that field in
every object
instance.
New in 9


{% extends "base.html" %}
{% load static %}
{% block title %}
Palsbet.com - Vip Tips
{% endblock %}
{% block content %}
In our vip we give 3 to 5 odds daily.You need to register an account and make payment through any of the payment methods provided.Our winning rate is an average of 26 days a month.
We give free tips on our platform.In those free tips you are suppose to pick utmost 5 games. You can either have them in one or two groups. Our free tips winning rate is over 80%. Apart from that we also have vip of 3 to 5 odds daily. For you to join vip we charge a little value on it


principles and practices, project management
Week 1
principles and practices, project management
Tasks
work through a git tutorial
build a personal site in the class archive describing you and your final project
Plan and sketch a potential final project
SOFTWARE: Dreamweaver, GITHUB, Gitshell, Photoshop, Ganttview, Ekiga, Cisco Spark, Logitech Software center, Brackets,
Ekiga
First of all, here at the fablab, we had to operationalize our videoconference system and connect sucessfully at the MCU. After reading some tutorials and try some of the softwares in windows OS, i decided to install Ubuntu, followed an online tutorial and installed EKIGA, but at the end, my LAN couldn't send the video sign through H264 codecs, the audio and the video in were ok, but my camera couldn't connect. I tried to reach it a few times with no success, when i found through a class email that a free web app was available, Cisco Spark, and it worked amazing!
I also had to mirror our video capture for the letters in our videoconference room could be read. I did it with Logitech software.
References - Fabwiki , Ekiga tutorial , Humans That Make
Web Design
I'm used to webdesign at my workplace, and i do some freelancing in this area too. It's a familiar theme so it was helpfull for me and my colleagues. I understand HTML coding and CSS styles. I tried to search for a nice template and when i did it, i started to scratch and design and create content.
I tested brackets, and downloaded some bootstrap templates, tested them in the editor, but i'm very familiar with Adobe Dreamweaver and it's dificult to let go :) . I edited and created my images in Photoshop always optimizing my pictures size according to the site visualization. Always with 72dpi, wich is a good size for the web, with jpg format or png if i needed tranparent background. I documented all my tasks with pictures and started to organize my working method for the course. Team work was very useful, and our videoconferences with our remote intructor and portuguese coleagues helped a lot, because people shared their ideas and ways of doing things.
References - W3schools , Bootstrap ,
GIT
I'm a bit familiar with digital repositorys, and i worked in Fabacademy 2012 with mercurial. This year we made some changes and started to work with GITHUB. Our portuguese students group are auploading weekly our page to a Git repository, for our instructor reviews, and only after valdating the pages are uploaded do Fabacademy repository, weekly. I followed a tutorial made by our instructor and very clear to understand.
I've already had an account, so all we had to do was to create a repository for portuguese fablabs where each student had its own folder to upload the files. I used git shell in windows OS, and it worked out perfect. The git mantra was easy to remember:
cd ~/Desktop/"yourdirname"/"yourgithubdirname"
git pull
git add .
git status
git commit -m "short description of the changes you made"
git push
A Screen of GIT under windows environment:
References - Humansthatmake , GIT Tutorial ,
Web Design
I started this week, after Neil's lesson to discuss with our coleagues from Portugal Fabacademy about our final project. A few ideas appeared, such as an automatic table to the lasercutter, that changes the used and finished boards with new ones. After that i thought about creating a prototype to identify poisonous mushrooms, because its ingestion causes the death to lots of people in my area. But it was abandoned because there is not a cientific way to do it. Then i thought better...
Read More


@Named public class FactomdClientImpl extends java.lang.Object implements FactomdClient
| Modifier and Type | Field and Description |
|---|---|
protected EncodeOperations |
encodeOperations |
| Constructor and Description |
|---|
FactomdClientImpl() |
| Modifier and Type | Method and Description |
|---|---|
java.util.concurrent.CompletableFuture<FactomResponse<EntryTransactionResponse>> |
ackEntryTransactions(java.lang.String hash)
Requesting an entry requires you to specify if the hash you provide is a commit or an entry hash.
|
java.util.concurrent.CompletableFuture<FactomResponse<FactoidTransactionsResponse>> |
ackFactoidTransactions(java.lang.String txId)
The hash field for a factoid transaction is equivalent to txid.
|
<T> java.util.concurrent.CompletableFuture<FactomResponse<T>> |
ackTransactions(java.lang.String hash,
java.lang.String chainId,
java.lang.Class<T> rpcResultClass)
This api call is used to find the status of a transaction, whether it be a factoid, reveal entry, or commit entry.
|
java.util.concurrent.CompletableFuture<FactomResponse<AdminBlockResponse>> |
adminBlockByHeight(long height)
Retrieve administrative blocks for any given height.
|
java.util.concurrent.CompletableFuture<FactomResponse<AdminBlockResponse>> |
adminBlockByKeyMerkleRoot(java.lang.String keyMR)
Retrieve a specified admin block given its merkle root key.
|
java.util.concurrent.CompletableFuture<FactomResponse<ChainHeadResponse>> |
chainHead(java.lang.String chainId)
Return the keymr of the head of the chain for a chain ID (the unique hash created when the chain was created).
|
java.util.concurrent.CompletableFuture<FactomResponse<CommitChainResponse>> |
commitChain(java.lang.String message)
Send a Chain Commit Message to factomd to create a new Chain.
|
java.util.concurrent.CompletableFuture<FactomResponse<CommitEntryResponse>> |
commitEntry(java.lang.String message)
Send an Entry Commit Message to factom to create a new Entry.
|
java.util.concurrent.CompletableFuture<FactomResponse<CurrentMinuteResponse>> |
currentMinute()
The current-minute API call returns:
- leaderheight returns the current block height.
|
java.util.concurrent.CompletableFuture<FactomResponse<DirectoryBlockHeightResponse>> |
directoryBlockByHeight(long height)
Retrieve a directory block given only its height.
|
java.util.concurrent.CompletableFuture<FactomResponse<DirectoryBlockResponse>> |
directoryBlockByKeyMerkleRoot(java.lang.String keyMR)
Every directory block has a KeyMR (Key Merkle Root), which can be used to retrieve it.
|
java.util.concurrent.CompletableFuture<FactomResponse<DirectoryBlockHeadResponse>> |
directoryBlockHead()
The directory block head is the last known directory block by factom, or in other words, the most recently recorded block.
|
java.util.concurrent.CompletableFuture<FactomResponse<EntryResponse>> |
entry(java.lang.String entryHash)
Get an Entry from factomd specified by the Entry Hash.
|
java.util.concurrent.CompletableFuture<FactomResponse<EntryBlockResponse>> |
entryBlockByKeyMerkleRoot(java.lang.String keyMR)
Retrieve a specified entry block given its merkle root key.
|
java.util.concurrent.CompletableFuture<FactomResponse<EntryCreditBalanceResponse>> |
entryCreditBalance(Address entryCreditAddress)
Return its current balance for a specific entry credit address.
|
java.util.concurrent.CompletableFuture<FactomResponse<EntryCreditBlockResponse>> |
entryCreditBlock(java.lang.String keymr)
Retrieve a specified entrycredit block given its merkle root key.
|
java.util.concurrent.CompletableFuture<FactomResponse<EntryCreditBlockResponse>> |
entryCreditBlockByHeight(int height)
Retrieve the entry credit block for any given height.
|
java.util.concurrent.CompletableFuture<FactomResponse<EntryCreditRateResponse>> |
entryCreditRate()
Returns the number of Factoshis (Factoids *10^-8) that purchase a single Entry Credit.
|
<RpcResult> |
exchange(FactomRequest factomRequest,
java.lang.Class<RpcResult> rpcResultClass)
Performs the exchange that happens when submitting a request to factomd/walletd.
|
<RpcResult> |
exchange(RpcRequest.Builder rpcRequestBuilder,
java.lang.Class<RpcResult> rpcResultClass)
Performs the exchange that happens when submitting a request to factomd/walletd.
|
<RpcResult> |
exchange(RpcRequest rpcRequest,
java.lang.Class<RpcResult> rpcResultClass)
Performs the exchange that happens when submitting a request to factomd/walletd.
|
java.util.concurrent.CompletableFuture<FactomResponse<FactoidBalanceResponse>> |
factoidBalance(Address factoidAddress)
This call returns the number of Factoshis (Factoids *10^-8) that are currently available at the address specified.
|
java.util.concurrent.CompletableFuture<FactomResponse<FactoidBlockResponse>> |
factoidBlock(java.lang.String keymr)
Retrieve a specified factoid block given its merkle root key.
|
java.util.concurrent.CompletableFuture<FactomResponse<FactoidBlockResponse>> |
factoidBlockByHeight(int height)
Retrieve the factoid block for any given height.
|
java.util.concurrent.CompletableFuture<FactomResponse<FactoidSubmitResponse>> |
factoidSubmit(java.lang.String factoidTransaction)
Submit a factoid transaction.
|
java.util.concurrent.ExecutorService |
getExecutorService()
Get the executor service for the async parts.
|
RpcSettings |
getSettings()
Gets the Rpc setting for this client.
|
java.net.URL |
getUrl()
Gets the URL this client connects to.
|
java.util.concurrent.CompletableFuture<FactomResponse<HeightsResponse>> |
heights()
Returns various heights that allows you to view the state of the blockchain.
|
LowLevelClient |
lowLevelClient() |
java.util.concurrent.CompletableFuture<FactomResponse<PendingEntriesResponse>> |
pendingEntries(int height)
Returns an array of the entries that have been submitted but have not been recorded into the blockchain.
|
java.util.concurrent.CompletableFuture<FactomResponse<PendingTransactionsResponse>> |
pendingTransactions(int height)
Returns an array of factoid transactions that have not yet been recorded in the blockchain, but are known to the system.
|
java.util.concurrent.CompletableFuture<FactomResponse<PropertiesResponse>> |
properties()
Retrieve current properties of the Factom system, including the software and the API versions.
|
java.util.concurrent.CompletableFuture<FactomResponse<RawDataResponse>> |
rawData(java.lang.String hash)
Retrieve an entry or transaction in raw format, the data is a hex encoded string.
|
java.util.concurrent.CompletableFuture<FactomResponse<ReceiptResponse>> |
receipt(java.lang.String hash)
Retrieve a receipt providing cryptographically verifiable proof that information was recorded in the factom blockchain and that this was subsequently anchored in the bitcoin
blockchain.
|
java.util.concurrent.CompletableFuture<FactomResponse<RevealResponse>> |
revealChain(java.lang.String entry)
Reveal the First Entry in a Chain to factomd after the Commit to complete the Chain creation.
|
java.util.concurrent.CompletableFuture<FactomResponse<RevealResponse>> |
revealEntry(java.lang.String entry)
Reveal an Entry to factomd after the Commit to complete the Entry creation.
|
java.util.concurrent.CompletableFuture<FactomResponse<SendRawMessageResponse>> |
sendRawMessage(java.lang.String message)
Send a raw hex encoded binary message to the Factom network.
|
LowLevelClient |
setExecutorService(java.util.concurrent.ExecutorService executorService)
Set the executor service for the async parts.
|
LowLevelClient |
setSettings(RpcSettings settings)
Sets the Rpc settings for this client.
|
LowLevelClient |
setUrl(java.net.URL url)
Sets the URL this client connects to (factomd/walletd).
|
protected static java.util.concurrent.ThreadFactory |
threadFactory(java.lang.String name,
boolean daemon) |
java.util.concurrent.CompletableFuture<FactomResponse<TransactionResponse>> |
transaction(java.lang.String hash)
Retrieve details of a factoid transaction using a transaction’s hash (or corresponding transaction id).
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
lowLevelClient
protected EncodeOperations encodeOperations
public java.util.concurrent.CompletableFuture<FactomResponse<AdminBlockResponse>> adminBlockByHeight(long height)
FactomdClient
The admin block contains data related to the identities within the factom system and the decisions the system makes as it builds the block chain. The ‘abentries’ (admin block entries) in the JSON response can be of various types, the most common is a directory block signature (DBSig). A majority of the federated servers sign every directory block, meaning every block after m5 will contain 5 DBSigs in each admin block.
adminBlockByHeight
in interface FactomdClient
height
- The height at which you want to retrieve the adminblock bypublic java.util.concurrent.CompletableFuture<FactomResponse<AdminBlockResponse>> adminBlockByKeyMerkleRoot(java.lang.String keyMR)
FactomdClient
The admin block contains data related to the identities within the factom system and the decisions the system makes as it builds the block chain. The ‘abentries’ (admin block entries) in the JSON response can be of various types, the most common is a directory block signature (DBSig). A majority of the federated servers sign every directory block, meaning every block after m5 will contain 5 DBSigs in each admin block.
adminBlockByKeyMerkleRoot
in interface FactomdClient
keyMR
- the Merkle Root Keypublic <T> java.util.concurrent.CompletableFuture<FactomResponse<T>> ackTransactions(java.lang.String hash, java.lang.String chainId, java.lang.Class<T> rpcResultClass)
FactomdClient
- f for factoid transactions - c for entry credit transactions (commit entry/chain) - ################################################################ for reveal entry/chain Where # is the ChainID of the entry
The status types returned are as follows: "Unknown" : Not found anywhere "NotConfirmed" : Found on local node, but not in network (Holding Map) "TransactionACK" : Found in network, but not written to the blockchain yet (ProcessList) "DBlockConfirmed" : Found in Blockchain You may also provide the full marshaled transaction, instead of a hash, and it will be hashed for you.
The responses vary based on the typeThe hash field for a factoid transaction is equivalent to txid. To indicate the hash is a factoid transaction, put f in the chainid field and the txid in the hash field. The response will look different than entry related ack calls. Extra notes: Why f? It is short for<PHONE_NUMBER>00000000000000000000000000000000000000000000000000000f, which is the chainid for all factoid blocks. All factoid transactions are placed in the factoid (assuming they are valid)
Requesting an entry requires you to specify if the hash you provide is a commit or an entry hash. The chainid field is used to specify this. If you are searching for a commit, put c as the chainid field, otherwise, put the chainid that the entry belongs too. For commit/reveal acks, the response has 2 sections, one for the commit, one for the reveal. If you provide the entryhash and chainid, both will be filled (if found). If you only provide the commit txid and c as the chainid, then only the commitdata is guaranteed to come back with data. The committxid and entryhash fields correspond to the commitdata and entrydata objects. Extra notes: Why c? It is short for<PHONE_NUMBER>00000000000000000000000000000000000000000000000000000c, which is the chainid for all entry credit blocks. All commits are placed in the entry credit block (assuming they are valid and are properly paid for)
ackTransactions
in interface FactomdClient
hash
- txid for factoid trans, entryhash in other caseschainId
- f for factoid trans, c for entry credit trans, chain Id for reveal entry/chainrpcResultClass
- The result class depending on the transactiontypepublic java.util.concurrent.CompletableFuture<FactomResponse<FactoidTransactionsResponse>> ackFactoidTransactions(java.lang.String txId)
FactomdClient
The status types returned are as follows: "Unknown" : Not found anywhere "NotConfirmed" : Found on local node, but not in network (Holding Map) "TransactionACK" : Found in network, but not written to the blockchain yet (ProcessList) "DBlockConfirmed" : Found in Blockchain You may also provide the full marshaled transaction, instead of a hash, and it will be hashed for you.
The responses vary based on the typeackFactoidTransactions
in interface FactomdClient
txId
- txid for factoid transpublic java.util.concurrent.CompletableFuture<FactomResponse<EntryTransactionResponse>> ackEntryTransactions(java.lang.String hash)
FactomdClient
ackEntryTransactions
in interface FactomdClient
public java.util.concurrent.CompletableFuture<FactomResponse<ChainHeadResponse>> chainHead(java.lang.String chainId)
FactomdClient
chainHead
in interface FactomdClient
public java.util.concurrent.CompletableFuture<FactomResponse<CommitChainResponse>> commitChain(java.lang.String message)
FactomdClient
Notes: It is possible to be unable to send a commit, if the commit already exists (if you try to send it twice). This is a mechanism to prevent you from double spending. If you encounter this error, just skip to the reveal-chain. The error format can be found here: repeated-commit
commitChain
in interface FactomdClient
message
- The Chain Commit Messagepublic java.util.concurrent.CompletableFuture<FactomResponse<CommitEntryResponse>> commitEntry(java.lang.String message)
FactomdClient
Notes: It is possible to be unable to send a commit, if the commit already exists (if you try to send it twice). This is a mechanism to prevent you from double spending. If you encounter this error, just skip to the reveal-entry. The error format can be found here: repeated-commit
commitEntry
in interface FactomdClient
message
- The entry commit messagepublic java.util.concurrent.CompletableFuture<FactomResponse<CurrentMinuteResponse>> currentMinute()
FactomdClient
currentMinute
in interface FactomdClient
public java.util.concurrent.CompletableFuture<FactomResponse<DirectoryBlockHeightResponse>> directoryBlockByHeight(long height)
FactomdClient
directoryBlockByHeight
in interface FactomdClient
height
- The height of the blockchain to rertieve the directory block forpublic java.util.concurrent.CompletableFuture<FactomResponse<DirectoryBlockResponse>> directoryBlockByKeyMerkleRoot(java.lang.String keyMR)
FactomdClient
directoryBlockByKeyMerkleRoot
in interface FactomdClient
keyMR
- Key Merkle Rootpublic java.util.concurrent.CompletableFuture<FactomResponse<DirectoryBlockHeadResponse>> directoryBlockHead()
FactomdClient
directoryBlockHead
in interface FactomdClient
public java.util.concurrent.CompletableFuture<FactomResponse<EntryCreditBlockResponse>> entryCreditBlockByHeight(int height)
FactomdClient
entryCreditBlockByHeight
in interface FactomdClient
height
- The blockchain height to retrieve the entry credit block forpublic java.util.concurrent.CompletableFuture<FactomResponse<EntryResponse>> entry(java.lang.String entryHash)
FactomdClient
entry
in interface FactomdClient
entryHash
- The entry Hashpublic java.util.concurrent.CompletableFuture<FactomResponse<EntryBlockResponse>> entryBlockByKeyMerkleRoot(java.lang.String keyMR)
FactomdClient
entryBlockByKeyMerkleRoot
in interface FactomdClient
keyMR
- Key Merkle Rootpublic java.util.concurrent.CompletableFuture<FactomResponse<EntryCreditBalanceResponse>> entryCreditBalance(Address entryCreditAddress)
FactomdClient
entryCreditBalance
in interface FactomdClient
entryCreditAddress
- The entry credit addresspublic java.util.concurrent.CompletableFuture<FactomResponse<EntryCreditBlockResponse>> entryCreditBlock(java.lang.String keymr)
FactomdClient
entryCreditBlock
in interface FactomdClient
keymr
- Key merkle rootpublic java.util.concurrent.CompletableFuture<FactomResponse<EntryCreditRateResponse>> entryCreditRate()
FactomdClient
entryCreditRate
in interface FactomdClient
public java.util.concurrent.CompletableFuture<FactomResponse<FactoidBalanceResponse>> factoidBalance(Address factoidAddress)
FactomdClient
factoidBalance
in interface FactomdClient
factoidAddress
- The factoidAddresspublic java.util.concurrent.CompletableFuture<FactomResponse<FactoidBlockResponse>> factoidBlock(java.lang.String keymr)
FactomdClient
factoidBlock
in interface FactomdClient
keymr
- key merkle rootpublic java.util.concurrent.CompletableFuture<FactomResponse<FactoidSubmitResponse>> factoidSubmit(java.lang.String factoidTransaction)
FactomdClient
factoidSubmit
in interface FactomdClient
factoidTransaction
- The factoid transactionpublic java.util.concurrent.CompletableFuture<FactomResponse<FactoidBlockResponse>> factoidBlockByHeight(int height)
FactomdClient
factoidBlockByHeight
in interface FactomdClient
height
- The height to retrieve the factoid block atpublic java.util.concurrent.CompletableFuture<FactomResponse<HeightsResponse>> heights()
FactomdClient
directoryblockheight : The current directory block height of the local factomd node. leaderheight : The current block being worked on by the leaders in the network. This block is not yet complete, but all transactions submitted will go into this block (depending on network conditions, the transaction may be delayed into the next block) entryblockheight : The height at which the factomd node has all the entry blocks. Directory blocks are obtained first, entry blocks could be lagging behind the directory block when syncing. entryheight : The height at which the local factomd node has all the entries. If you added entries at a block height above this, they will not be able to be retrieved by the local factomd until it syncs further. A fully synced node should show the same number for all, (except between minute 0 and 1, when leaderheight will be 1 block ahead.)
heights
in interface FactomdClient
public java.util.concurrent.CompletableFuture<FactomResponse<PendingEntriesResponse>> pendingEntries(int height)
FactomdClient
pendingEntries
in interface FactomdClient
height
- The height to retrieve the pending entries atpublic java.util.concurrent.CompletableFuture<FactomResponse<PendingTransactionsResponse>> pendingTransactions(int height)
FactomdClient
pendingTransactions
in interface FactomdClient
height
- The height to retrieve the pending entries atpublic java.util.concurrent.CompletableFuture<FactomResponse<PropertiesResponse>> properties()
FactomdClient
properties
in interface FactomdClient
public java.util.concurrent.CompletableFuture<FactomResponse<RawDataResponse>> rawData(java.lang.String hash)
FactomdClient
rawData
in interface FactomdClient
public java.util.concurrent.CompletableFuture<FactomResponse<ReceiptResponse>> receipt(java.lang.String hash)
FactomdClient
receipt
in interface FactomdClient
public java.util.concurrent.CompletableFuture<FactomResponse<RevealResponse>> revealChain(java.lang.String entry)
FactomdClient
revealChain
in interface FactomdClient
public java.util.concurrent.CompletableFuture<FactomResponse<RevealResponse>> revealEntry(java.lang.String entry)
FactomdClient
revealEntry
in interface FactomdClient
public java.util.concurrent.CompletableFuture<FactomResponse<SendRawMessageResponse>> sendRawMessage(java.lang.String message)
FactomdClient
To Check Commit Chain Example Example Commit Chain Request
{ "jsonrpc": "2.0", "id": 0, "method": "send-raw-message", "params": { "message": "00015fc6dbeaccfab82063af4a2890f89c243a9a3db2cce041e9352a1df32731d302917c38b229985e890c7d0d4c76e84a283011ba165ccee3524dd91fb417c2550c6d1c42d3bd23af5f7c05a89c0097eed7378c60b8bcc89a284094a81da85fb8faab7b2972470cb64dfb9c542844a0724222d53b86c85baa6fe49cc01fb5e8d26e08ce4690b0e3933bf1f6c5c15b28a33eb504f87c07f7bb51691b90cb3326d62b4b97802db3c6dccc9b0108f2c06cac0b7968e9f1f6aabb126f9aa58bc8eae21f2383729cb703" } } Example Commit Chain Response
{ "jsonrpc": "2.0", "id": 0, "result": { "message": "Successfully sent the message" } } Entry Hash : 23af5f7c05a89c0097eed7378c60b8bcc89a284094a81da85fb8faab7b297247
sendRawMessage
in interface FactomdClient
public java.util.concurrent.CompletableFuture<FactomResponse<TransactionResponse>> transaction(java.lang.String hash)
FactomdClient
The "blockheight" parameter in the response will always be 0 when using this call, refer to "includedindirectoryblockheight" if you need the height.
Note: This call will also accept an entry hash as input, in which case the returned data concerns the entry. The returned fields and their format are shown in the 2nd Example Response at right. Note: If the input hash is non-existent, the returned fields will be as follows:
"includedintransactionblock":"" "includedindirectoryblock":"" "includedindirectoryblockheight":-1transaction
in interface FactomdClient
protected static java.util.concurrent.ThreadFactory threadFactory(java.lang.String name, boolean daemon)
public LowLevelClient lowLevelClient()
public RpcSettings getSettings()
LowLevelClient
getSettings
in interface LowLevelClient
public LowLevelClient setSettings(RpcSettings settings)
LowLevelClient
setSettings
in interface LowLevelClient
settings
- The Rpc settingspublic java.net.URL getUrl()
LowLevelClient
getUrl
in interface LowLevelClient
public LowLevelClient setUrl(java.net.URL url)
LowLevelClient
setUrl
in interface LowLevelClient
url
- The url of factomd/walletd.public <RpcResult> java.util.concurrent.CompletableFuture<FactomResponse<RpcResult>> exchange(FactomRequest factomRequest, java.lang.Class<RpcResult> rpcResultClass)
LowLevelClient
exchange
in interface LowLevelClient
RpcResult
- The type of result to expect (response).factomRequest
- The request to sendrpcResultClass
- The result class of the response.public <RpcResult> java.util.concurrent.CompletableFuture<FactomResponse<RpcResult>> exchange(RpcRequest.Builder rpcRequestBuilder, java.lang.Class<RpcResult> rpcResultClass)
LowLevelClient
exchange
in interface LowLevelClient
RpcResult
- The type of result to expect (response).rpcRequestBuilder
- The request builder that will be build into a request to sendrpcResultClass
- The result class of the response.public <RpcResult> java.util.concurrent.CompletableFuture<FactomResponse<RpcResult>> exchange(RpcRequest rpcRequest, java.lang.Class<RpcResult> rpcResultClass)
LowLevelClient
exchange
in interface LowLevelClient
RpcResult
- The type of result to expect (response).rpcRequest
- The Rpc request to sendrpcResultClass
- The result class of the response.public LowLevelClient setExecutorService(java.util.concurrent.ExecutorService executorService)
LowLevelClient
setExecutorService
in interface LowLevelClient
executorService
- The executor service.public java.util.concurrent.ExecutorService getExecutorService()
LowLevelClient
getExecutorService
in interface LowLevelClient


{% include head.html %}
Hello, I am Aditya! I am a Grade 12 student studying the IBDP at Singapore International School, Mumbai. I am an economics enthusiast, researcher, analyst and idealist.
Worked with the research department at CARE Ratings and wrote a paper analyzing the implications of the new economic reforms by the Modi Government.
Examined a medical outreach program in Bihar that aided over 250,000 people per month using telemedecine, and wrote a report analyzing its weaknesses and providing recommendations to greater its impact.


2 writes to AnalyticChannel
System.Management.Automation (2)
utils\PowerShellETWTracer.cs (2)
949
AnalyticChannel
= new PowerShellChannelWriter(PowerShellTraceChannel.Analytic,
960
AnalyticChannel
= NullWriter.Instance;
1 reference to AnalyticChannel
System.Management.Automation (1)
utils\PowerShellETWTracer.cs (1)
976
AnalyticChannel
.Dispose();


Document-Topic Distributions
Each document consists to a certain extent of each topic, which is one of the theoretical assumptions of topic models. Although some values are too small to be visualized here (and have therefore been rounded to zero), they are actually greater than zero. Just export the data in the menu bar and take a look at the document-topic matrix.
Visualizing the document-topic proportions in a heatmap displays the kind of information that is probably most useful. Going beyond pure exploration, it can be used to show thematic developments over a set of texts, akin to a dynamic topic model.