Badges
Points System
You earn reputation when people Vote on your Post.
+2
Create a question
+5
Question is Upvoted
+5
Answer is Upvoted
+15
Answer is Accepted
Badge System
You earn title when people Vote on your Post.
Professor
1500Points Required
you can:
- Edit other people's questions
- Vote down (costs 1 point on answers and questions)
- Edit other people's answers
- Vote up
- Leave comments
Vice Professor
500Points Required
you can:
- Edit other people's questions
- Vote down (costs 1 point on answers and questions)
- Edit other people's answers
- Vote up
- Leave comments
Doctor
200Points Required
you can:
- Edit other people's questions
- Vote down (costs 1 point on answers and questions)
- Edit other people's answers
- Vote up
- Leave comments
Reviewer
150Points Required
you can:
- Edit other people's questions
- Vote down (costs 1 point on answers and questions)
- Edit other people's answers
- Vote up
- Leave comments
Supporter
100Points Required
you can:
- Edit other people's questions
- Vote down (costs 1 point on answers and questions)
- Edit other people's answers
- Vote up
- Leave comments
Train
10Points Required
you can:
- Edit other people's questions
- Vote down (costs 1 point on answers and questions)
- Edit other people's answers
- Vote up
- Leave comments


Summary
Returns an HTMLCollection object containing one or more HTMLEmbedElements or null which represent the <embed> elements in the current document.
For a list of installed plugins, use window.navigator.plugins instead.
Syntax
embedArrayObj = document.plugins
Specification
DOM Level 0. Not part of any standard.
See also
MSDN: plugins Collection


“I don’t think he knows about second breakfast” - Meriadoc ‘Merry’ Brandybuck
The C++ standard library introduced generic algorithms that operate on a sequences defined by begin-end iterator-pairs. These generic algorithms can be used to replace C-style for-loops over indices. They are thought to reduce common code bugs resulting from off-by-n indexing errors that can result in buffer overruns and other illogical behavior. Some have even suggested “no raw loops” as a rule. Applying the standard library algorithms is often straightforward for simple sequences bounded by iterators. When working with multidimensional data like matrices however, many authors revert to computing indices, either because it is more explicit and therefor easier to implement or because the multidimensional data structures do not offer pre-defined iterators.
The difficulty applying the standard library algorithms to multidimensional data stems from the fact that successive dimensions must follow leading dimensions and this necessitates skips when iterating. Solving this requires a strided iterator that skips over intermediate memory locations when incrementing or decrementing. Having myself often reverted to indices when implementing algorithms on multidimensional data, while simultaneously wishing for more consistency with the standard library, I decided to implement a strided pointer class and wrap it in the new R library strider. The header is installed with the package, so it can be used by other packages via the LinkingTo directive in the DESCRIPTION file. The header has no dependencies on R and so can be used in pure C++ projects.
As a prelude to using the strided_iterator class, I start out with an example of vector convolution because it is one of the original examples in the Rcpp documentation, which I have copied verbatim here. I have placed some definitions into a header file whose contents can be found in the RMarkdown source file used to generate this output. Otherwise, all compiler settings were left at their default values.
// [[Rcpp::depends(BH)]]
// [[Rcpp::depends(strider)]]
// [[Rcpp::plugins(cpp11)]]
#include <vignette.h>
// [[Rcpp::export]]
NumericVector
convolve_cpp(const NumericVector& a,
const NumericVector& b) {
// Declare loop counters, and vector sizes
int i, j,
na = a.size(), nb = b.size(),
nab = na + nb - 1;
// Create vector filled with 0
NumericVector ab(nab);
// Crux of the algorithm
for(i = 0; i < na; i++) {
for(j = 0; j < nb; j++) {
ab[i + j] += a[i] * b[j];
}
}
// Return result
return ab;
}
The next code block shows my translation using the standard library transform algorithm. This version eschews integer indexes for incrementing iterators along the input and output vectors.
// [[Rcpp::depends(BH)]]
// [[Rcpp::depends(strider)]]
// [[Rcpp::plugins(cpp11)]]
#include <vignette.h>
// [[Rcpp::export]]
NumericVector
stl_algo_convolve(const NumericVector& a,
const NumericVector& b) {
// Declare vector sizes
int
na = a.size(), nb = b.size(),
nab = na + nb - 1;
// Create vector filled with 0
NumericVector ab(nab);
// Crux of the algorithm
transform(begin(a), end(a),
begin(ab), begin(ab),
[&b](const double t, double& u) {
transform(begin(b), end(b), &u, &u,
[t](const double v, const double w) {
return w + t * v; });
return u; });
// Return result
return ab;
}
While the code is certainly more busy, replacing explicit loops with standard library algorithms is considered by some to be a best-practice that is less susceptible to indexing errors and buffer overruns.
C++11 introduced range-based for-loops that many of the advantages of the standard library algorithms in terms of avoiding indexing errors and are simpler and somewhat more natural to reason about.
// [[Rcpp::depends(BH)]]
// [[Rcpp::depends(strider)]]
// [[Rcpp::plugins(cpp11)]]
#include <vignette.h>
// [[Rcpp::export]]
NumericVector
range_loop_convolve(const NumericVector& a,
const NumericVector& b) {
// Declare vector sizes
int
na = a.size(), nb = b.size(),
nab = na + nb - 1;
// Create vector filled with 0
NumericVector ab(nab);
// Crux of the algorithm
auto t = &ab[0];
for (const auto u : a)
{
auto v = t++;
for (const auto w : b)
*v++ += u * w;
}
// Return result
return ab;
}
The main difference here is we have to manually increment the output iterator. That could be solved using a zip iterator adapter. (Convenient tuple syntax for this case is available in C++17.) Nonetheless, this example demonstrates how expressive range-based for-loops can be while avoiding explicit indices.
There is no particular performance advantage to avoiding indices, so the choice is largely a matter of taste. Modern compilers will produce similar if not the exact same instructions regardless of the type of loop. Benchmarking comparisons can however point out problems with a particular implementation. It is useful to recall that benchmark differences within \(\pm 10\%\) are likely meaningless and results will vary in different environments. Relative numbers below are therefore printed using digits = 1
to demphasize small differences. With two vectors of length \(10^4\), I get the following performances for the different loop implementations.
| expr | median | relative |
|---|---|---|
| range_loop_convolve(a, b) | 64.8 | 1 |
| convolve_cpp(a, b) | 64.4 | 1 |
| stl_algo_convolve(a, b) | 64.1 | 1 |
The workhorse class in the strider package is strided_iterator, which inherits from the Boost iterator adaptor class. It merely advances by a specified stride when incremented. It is currently possible to use negative strides, however this is not tested. The strided iterator will conform to the same iterator category and support the same expressions as the iterator that is adapted. A second class, strided_range exists solely to construct begin and end iterators over a strided range.
Users will generally only need to call one or both of two auxiliary functions with the following definitions:
template<typename T>
inline strided_iterator<T>
make_strided(T iter,
typename iterator_traits<T>::difference_type stride = 0,
typename iterator_traits<T>::difference_type strides = 0);
template<typename T>
inline strided_range<T>
make_strided_range(T iter,
typename iterator_traits<T>::difference_type stride,
typename iterator_traits<T>::difference_type strides);
The make_strided
function converts an ordinary iterator to a strided iterator. The stride length is determined by the stride
argument. As a convenience, the strides
argument can be used to advance the supplied iterator strides
\(\times\) stride
steps. This is useful in creating an end-sentinel iterator for a buffer that does not provide its own end
function. Examples of this usage can be found below.
The make_strided_range
function creates a strided_range
object with begin
and end
methods. Both stride
and strides
are required to define the spanned range.
As a minimal example, consider computing the column sums of a matrix. I provide three example implementations using indices, make_strided
and make_strided_range
.
// [[Rcpp::depends(BH)]]
// [[Rcpp::depends(strider)]]
// [[Rcpp::plugins(cpp11)]]
#include <vignette.h>
// [[Rcpp::export]]
NumericVector indx_col_sum(const NumericMatrix& x)
{
auto
nr = x.nrow(),
nc = x.ncol();
NumericVector res(nc, 0.0);
for (int c = 0; c != nc; ++c)
for (int r = 0; r != nr; ++r)
res[c] += x(r, c);
return res;
}
// [[Rcpp::export]]
NumericVector range_col_sum(const NumericMatrix& x)
{
auto
nr = x.nrow(),
nc = x.ncol();
NumericVector res(nc);
auto t = res.begin();
for (const auto& u : make_strided_range(begin(x), nr, nc))
{
for (auto v = &u; v != &u + nr; ++v) *t += *v;
++t;
}
return res;
}
// [[Rcpp::export]]
NumericVector strided_col_sum(const NumericMatrix& x)
{
auto nr = x.nrow();
NumericVector res(x.ncol());
transform(make_strided(begin(x), nr), make_strided(end(x)), begin(res),
[nr](const double& v){ return accumulate(&v, &v + nr, 0.0); });
return res;
}
In this case, owing to the column-major memory layout of R matrices, the STL transform
algorithm combined with make_strided
is the most compact in terms of code. Furthermore, the strided iterator is incremented in the outer loop meaning the scanning of the matrix is in the optimal order. The performance of these three implementations are equivalent, as is R’s built in colSumms
implemented in C.
| expr | median | relative |
|---|---|---|
| strided_col_sum(x) | 994.3 | 1 |
| colSums(x) | 964.3 | 1 |
| range_col_sum(x) | 959.7 | 1 |
| indx_col_sum(x) | 955.6 | 1 |
Summing over rows is more interesting because R matrices are stored in column-major format. That means that looping over a row will skip from column to column by-passing all the rows in between. This non-local memory access is a drag on performance. Four implementations of the row-summing algorithm are given below.
// [[Rcpp::depends(BH)]]
// [[Rcpp::depends(strider)]]
// [[Rcpp::plugins(cpp11)]]
#include <vignette.h>
// [[Rcpp::export]]
NumericVector indx_row_sum(const NumericMatrix& x)
{
auto
nr = x.nrow(),
nc = x.ncol();
NumericVector res(nr, 0.0);
for (int c = 0; c != nc; ++c)
for (int r = 0; r != nr; ++r)
res[r] += x(r, c);
return res;
}
// [[Rcpp::export]]
NumericVector range_row_sum(const NumericMatrix& x)
{
auto
nr = x.nrow(),
nc = x.ncol();
NumericVector res(nc);
for (const auto& u : make_strided_range(begin(x), nr, nc))
{
auto t = begin(res);
for (auto v = &u; v != &u + nr; ++v) *t++ += *v;
}
return res;
}
// [[Rcpp::export]]
NumericVector strided_row_sum(const NumericMatrix& x)
{
auto
nr = x.nrow(),
nc = x.ncol();
NumericVector res(nr);
transform(begin(x), begin(x) + nr, begin(res), [nr, nc](const double& v) {
return accumulate(make_strided(&v, nr), make_strided(&v, nr, nc), 0.0); });
return res;
}
// [[Rcpp::export]]
NumericVector strided_row_sum2(const NumericMatrix& x)
{
auto nr = x.nrow();
NumericVector res(nr, 0.0);
for_each(make_strided(begin(x), nr), make_strided(end(x)), [&res, nr](const double& y) {
transform(&y, &y + nr, begin(res), begin(res), plus<double>()); });
return res;
}
Again, the transform
with accumulate
implementation is compact, but here the strided iterator is in the inner loop causing poor memory locality. The alternative implementation uses for_each
with make_strided
to skip to the top of each column and then uses transform
to accumulate the values. The final range-based version is equivalent to the for_each
with transform
version.
The benchmark results show that indeed placing the strided iterator in the inner loop gives poor results. The index-based, range-based and for_each
-transform
version are all equivalent in efficiency. Interestingly, R’s built in rowSums
is several times slower, most likely indicating that the column index is incremented in the inner loop.
| expr | median | relative |
|---|---|---|
| range_row_sum(x) | 1840.2 | 1.0 |
| strided_row_sum2(x) | 1800.8 | 1.0 |
| indx_row_sum(x) | 1779.8 | 1.0 |
| rowSums(x) | 455.4 | 0.2 |
| strided_row_sum(x) | 117.4 | 0.1 |
A much better demonstration of the strided approach is to compute the 2-dimensional convolution. This requires four nested loops and much more expensive indexing calculations. Furthermore, because C++ does not provide a bivariate index operators, accessing 2D data structures requires defining a new method and the details of this method will strongly determine overhead. In the strided approach, we simply walk the output matrix by iteration, so no indexing is required.
// [[Rcpp::depends(BH)]]
// [[Rcpp::depends(strider)]]
// [[Rcpp::plugins(cpp11)]]
#include <vignette.h>
// [[Rcpp::export]]
NumericMatrix
convolve2_cpp(const NumericMatrix& a,
const NumericMatrix& b)
{
int
nra = a.nrow(), nca = a.ncol(),
nrb = b.nrow(), ncb = b.ncol();
NumericMatrix ab(nra + nrb - 1, nca + ncb - 1);
for(int i = 0; i != nca; ++i)
for (int j = 0; j != ncb; ++j)
for (int k = 0; k != nra; ++k)
for (int l = 0; l != nrb; ++l)
ab(k + l, i + j) += a(k, i) * b(l, j);
return ab;
}
// [[Rcpp::export]]
NumericMatrix
range_loop_convolve2(const NumericMatrix& a,
const NumericMatrix& b)
{
int
nra = a.nrow(), nca = a.ncol(),
nrb = b.nrow(), ncb = b.ncol(),
nrab = nra + nrb - 1,
ncab = nca + ncb - 1;
NumericMatrix ab(nrab, ncab);
auto iter1 = make_strided(begin(ab), nrab);
for (const auto& t : make_strided_range(begin(a), nra, nca)) {
auto iter2 = make_strided(&*iter1++, nrab);
for (const auto& u : make_strided_range(begin(b), nrb, ncb)) {
auto iter3 = &*iter2++;
for (const auto& v : make_strided_range(&t, 1, nra)) {
auto iter4 = iter3++;
for (const auto& w : make_strided_range(&u, 1, nrb)) {
*iter4++ += v * w; }}}}
return ab;
}
// [[Rcpp::export]]
NumericMatrix
stl_algo_convolve2(const NumericMatrix& a,
const NumericMatrix& b)
{
int
nra = a.nrow(), nca = a.ncol(),
nrb = b.nrow(), ncb = b.ncol(),
nrab = nra + nrb - 1,
ncab = nca + ncb - 1;
NumericMatrix ab(nrab, ncab);
transform(make_strided(begin(a), nra), make_strided(end(a)),
make_strided(begin(ab), nrab), make_strided(begin(ab), nrab),
[&](const double& t, double& u) {
transform(make_strided(begin(b), nrb), make_strided(end(b)),
make_strided(&u, nrab), make_strided(&u, nrab),
[&](const double& v, double& w) {
transform(&t, &t + nra, &w, &w,
[&](const double x, double& y) {
transform(&v, &v + nrb, &y, &y,
[&](const double z, const double zz) {
return zz + x * z; });
return y; });
return w; });
return u; });
return ab;
}
As a quick test, I check whether the convolution is invariant to the delta function as required.
a = matrix(c(1, 2, 3,
4, 5, 6), 2, 3, byrow = TRUE)
b = matrix(c(0, 0, 0,
0, 0, 0,
0, 1, 0,
0, 0, 0), 4, 3, byrow = TRUE)
stl_algo_convolve2(a, b)
## [,1] [,2] [,3] [,4] [,5]
## [1,] 0 0 0 0 0
## [2,] 0 0 0 0 0
## [3,] 0 1 2 3 0
## [4,] 0 4 5 6 0
## [5,] 0 0 0 0 0
The output is correct. Here are benchmark results for \(50\times50\) random matrices.
| expr | median | relative |
|---|---|---|
| stl_algo_convolve2(a, b) | 315.9 | 1.0 |
| range_loop_convolve2(a, b) | 292.9 | 0.9 |
| convolve2_cpp(a, b) | 259.2 | 0.8 |
The transform-based implementation appears to have a slight advantage, however these results may change on different systems. It is possible the index-offset calculations are making the indexed version slower. The importance of offset calculations should increase with the number of dimensions. It should be noted that these are not the fasted algorithms for performing convolution. If the kernel is separable, each dimension can be convolved individually. For large matrices, Fourier methods are faster still.
Note that Boost Range and the range v3 proposal have strided iterators. Of course, Herb Sutter has already thought of everything, and there is an implementaiton here. The xtensor library appears to be the heir-apparent for working with multidimensional data in C++ and perhaps R as well. I have not tried to implement a 2D covolution with these, however it would be an interesting experiment.
Experimenting with the C++ standard library algorithms demonstrates that they are often highly efficient and, in some cases, faster than corresponding native R algorithms. However using the standard library algorithms with multidimensional data is challenging and it is quite common for authors to resort to index-based for-loops, which can impede performance and risk indexing errors.
The strider package provides a lightweight iterator-adapter that makes using the standard library algorithms straightforward with multidimensional buffers accessible via a pointer or iterator. As long as one knows the dimensions and the memory layout of the data, then any dimension can be scanned by computing a stride and number of strides. When it is possible to scan the data sequentially, maximum performance is attained. Owning to the large number of legacy libraries whose APIs pass raw pointers to structured buffers, I expect that strider may find a wide range of applications while also improving code reliability and comprehension.


--- title: (BFAgent) login keywords: documentation theme, jekyll, technical writers, help authoring tools, hat replacements last_updated: July 3, 2016 tags: [getting_started] sidebar: matlab_docs_sidebar permalink: bfagent_login.html folder: mydoc ---
login Open a session using the Blackfynn Agent. STATUS = login(OBJ, 'token', 'secret') passes the API token and secret to the Blackfynn agent to open a session in the same environment as the Blackfynn Matlab client.
| Access | public |
| Sealed | false |
| Static | false |


| Number of Classes | Line Coverage | Mutation Coverage | Mutation Score |
|---|---|---|---|
| 9 | 79% | 66% | 75%
Killed: 21
Uncertain: 0
|
| Name | Line Coverage | Mutation Coverage | Mutation Score |
|---|---|---|---|
| ContentWithAttachmentsHandler.java | 100% |
50% |
100%
Killed: 1
Uncertain: 0
|
| FileResourceHandler.java | 69% |
67% |
100%
Killed: 1
Uncertain: 0
|
| MapAttachmentResourceHandler.java | 100% |
67% |
100%
Killed: 2
Uncertain: 0
|
| MultiContentHandler.java | 87% |
50% |
100%
Killed: 3
Uncertain: 0
|
| PriorizedContentHandler.java | 92% |
79% |
75%
Killed: 9
Uncertain: 0
|
| StreamResourceHandler.java | 70% |
13% |
25%
Killed: 1
Uncertain: 0
|
| StringContentHandler.java | 75% |
75% |
100%
Killed: 3
Uncertain: 0
|
| UpdatableUsernamePasswordAuthenticator.java | 0% |
0% |
0%
Killed: 0
Uncertain: 0
|
| UsernamePasswordAuthenticator.java | 100% |
50% |
100%
Killed: 1
Uncertain: 0
|


I am also open to collaborations on projects. drop me an email :)
email: mais-hatem[at]hotmail[.]com socials: linkedin • github • twitter • 500px


7 BILLION & YOU
August 6 | Barn Hall
National Institute of Technology Trichy
7 BILLION & YOU
Every second, millions of bytes of information are shared across more sophisticated
networks than have ever existed. Yet, the mismatch of a pixel has the
ability to bring down colossal systems: all it takes is a spark.
There are billions of us, but there's only one of you.
What are you doing today?
 Yet, the mismatch of a pixel has the ability to bring down colossal systems: all it takes is a spark.
There are billions of us, but there's only one of you.
What are you doing today?
SPEAKERS 2016
Lorem ipsumdolor
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In in velit egestas, pharetra orci id, volutpat odio. Maecenas placerat mollis urna. Aliquam tortor velit, posuere id odio et, egestas tempus nisl. Suspendisse semper pulvinar vulputate. Suspendisse potenti. Nullam sit amet nulla sit amet erat tempus tincidunt nec eget neque.
Lorem ipsumdolor
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In in velit egestas, pharetra orci id, volutpat odio. Maecenas placerat mollis urna. Aliquam tortor velit, posuere id odio et, egestas tempus nisl. Suspendisse semper pulvinar vulputate. Suspendisse potenti. Nullam sit amet nulla sit amet erat tempus tincidunt nec eget neque.
Lorem ipsumdolor
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In in velit egestas, pharetra orci id, volutpat odio. Maecenas placerat mollis urna. Aliquam tortor velit, posuere id odio et, egestas tempus nisl. Suspendisse semper pulvinar vulputate. Suspendisse potenti. Nullam sit amet nulla sit amet erat tempus tincidunt nec eget neque.
Lorem ipsumdolor
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In in velit egestas, pharetra orci id, volutpat odio. Maecenas placerat mollis urna. Aliquam tortor velit, posuere id odio et, egestas tempus nisl. Suspendisse semper pulvinar vulputate. Suspendisse potenti. Nullam sit amet nulla sit amet erat tempus tincidunt nec eget neque.
SPEAKERS 2016
A BILLION THANKS TO OUR SPONSORS FOR SUPPORTING US!
A BILLION THANKS TO OUR SPONSORS
FOR SUPPORTING US!
Benefactor Partners
Infoview is a Global IT Services organization with proven expertise in Application Maintenance Outsourcing, Infrastructure Management Services, Enterprise Applications, Product Life Cycle Management and Custom Software Development. Established in 2000 in Chennai (India), for over a decade, it provided consulting, development and maintenance of Enterprise Applications for major Japanese customers.
Patron Partners
Napier Healthcare is a provider of comprehensive healthcare IT solutions including Cloud-based and mobile applications that deliver high value for hospitals, clinics and clinic/hospital networks as well as providers across the long-term care spectrum including nursing homes, hospices, senior activity centres, as well as telehealth and home care service providers.
Friend Partners
In recent times, by happy chance we have had opportunities to explore sister domains in form of TED and TEDx events happening in India. We noticed the underfoot need of conglomeration shared by most organisers, and we resolved to do something about it TEDxNITTrichy style! The TEDxNITTrichy Blog is an effort to compile all our gaining on one platform, in a bid to provide back to the company which backed us when we needed it. It is a guide and it is a narration of everything we wish to convey in short, readable stories directly from the organisers.
www.tedxnittrichy.wordpress.com
In recent times, by happy chance we have had opportunities to explore sister domains in form of TED and TEDx events happening in India. We noticed the underfoot need of conglomeration shared by most organisers, and we resolved to do something about it TEDxNITTrichy style! The TEDxNITTrichy Blog is an effort to compile all our gaining on one platform, in a bid to provide back to the company which backed us when we needed it. It is a guide and it is a narration of everything we wish to convey in short, readable stories directly from the organisers.
www.tedxnittrichy.wordpress.com
WE INVITE YOU TO COME AND BE A PART OF THIS GLOBAL COMMUNITY!
ATTEND TEDxNITTrichy 2016Contact Us
We'd love to hear from you!
You can reach us at:
For speaker nominations and related queries:
Jason Rodrigues
Licensee & Head, Speakers' Team
<EMAIL_ADDRESS>+91 87543 34458
For corporate collaborations and sponsorships:
Sujith Selveraj
Head, Sponsorships
<EMAIL_ADDRESS>+91 85263 33889
For event collaborations and services:
Prajish Kumar
Program Director
<EMAIL_ADDRESS>+91 96003 48134
You can write to us at:
hello@tedxnittrichy.com


{% extends "base.html" %}
{% block title %} Public Status for {{ team_name }} {% endblock %}
{% block content %}
{% if pairing_exists %}
{% if bye %}
{{round.bye_team.name}} is on a bye this round.
{% else %}
{% if gov %}
{{round.gov_team.name}} will gov next round against
{{round.opp_team.name}} in {{round.room.name}}, judged by {{judges}}.
{% else %}
{{round.opp_team.name}} will opp next round against
{{round.gov_team.name}} in {{round.room.name}}, judged by {{judges}}.
{% endif %}
{% endif %}
{% else %}
Round {{round_number}} does not yet have a valid pairing. Please wait until
your tournament directors release a valid pairing before viewing this page.
{% endif %}
{% endblock %}


I invented coding, basically.
I was born in 1815 and died in 1852. I eventually went on to become the logo for Major League Hacking's 2016 Season.
During my life, I worked with Charles Babbage on the earliest computing devices and the predecessor to what you call software today.
Ada was an English mathematician and writer, chiefly known for her work on Charles Babbage's proposed mechanical general-purpose computer.
The Difference Engine is the first project I worked on with Charles Babbage.
From 1842-1843, I translated Luigi Menabrea's article on Babbage's proposed "Analytical Engine."
I am credited with writing the first ever published algorithm for computing. My work has been highlighted by many scientists! In 1990, Allan G. Bromley wrote about me in an article titled Difference and Analytical Engines. The programming language Ada, developed by the US government, is named after me.


Horak: How I'm betting Del Mar's Hollywood Derby
by Jarrod HorakSaturday's Hollywood Derby (G1) is a great betting race with Neptune’s Storm a tepid 9-2 favorite and six others at 6-1 or less on the morning line.
New York shippers have captured the last three editions. Chad Brown trained two of those winners, and he has entered a pair this year.
Before deciding how to bet Saturday’s eighth race at Del Mar, carded as Race 8 at 6:33 p.m. ET, let’s meet the field.
Favorite
#5 Neptune’s Storm (9-2) is a very consistent turf router with tactical speed. He drew well and owns two stakes wins at this distance.
Value Win Contenders
#4 Digital Age (6-1) won his first three starts at one mile and 8.5 furlongs, and dropped his last four at longer distances. He has had some uncomfortable trips but can compete with these on his best day. He runs well fresh and will try to get involved late for Javier Castellano and Brown.
#6 Nolde (6-1) was uncomfortable and never got involved in the Twilight Derby (G2) last time. I will draw a line through that race. His other four turf starts were stellar, including a victory in the Nov. 2 Del Mar Derby (G2) at this course/distance.
Live Longshots
#10 Moody Jim (6-1) rallied to win two of his last three turf routes in Southern California, and was only beaten a couple of lengths vs. some of these in the Del Mar Derby. Flavien Prat rides back.
#13 Succeedandsurpass (12-1) improved his numbers in all four turf routes in California. He rallied for the place in the Twilight Derby and will have to work out a trip from a tough post under Rafael Bejarano.
Remaining Entrants
#1 Mo Forza (5-1) exits back-to-back turf route wins at Santa Anita. Peter Miller’s improving colt owns fine tactical speed, and he made the grade from the outside post in the Twilight Derby.
#2 Kingly (20-1) figures to play catch me if you can. He went all the way in the local La Jolla (G3) on Aug. 4 but came up short in the stretch in his last three starts against this kind.
#3 Uncle Bull (20-1) exits back-to-back Woodbine wins versus lesser. He should be forwardly placed.
#7 Proud Pedro (30-1) lost a heartbreaker in the restricted Let It Ride on Nov. 9. He graduated at this distance and will try to get involved late in his toughest class test to date.
#8 Henley’s Joy (6-1) upset the Belmont Derby (G1) on July 6 but has been a bit flat in four starts since. He can stalk or close, and his new rider Drayden Van Dyke should have options.
#9 Standard Deviation (6-1) is the second Brown runner here. He captured a couple of non-graded turf races at 8.5 furlongs this year and exits a solid third in the Hill Prince (G2). He probably wants more ground and/or easier company.
#11 Mr Dumas (30-1) was victorious in his last two turf routes, including the Commonwealth Turf (G3) on Nov. 9 at Churchill Downs.
#12 Originaire (20-1) rallied to miss by a neck in the Del Mar Derby, but did not have the same late kick in his last pair. He is 0-for-4 at a mile and an eighth.
Wagers
#6 to win
Quinella 4-6
Exacta 4-6/10-13
Superfecta 4-6/4-5-6/ALL/4-5-6-10-13


Follow the adventures of Pale Male, a daring red-tailed hawk who manages to thrive in the urban world of New York City. A fearsome predator has been stalking Manhattan for years. But instead of calling the police, New Yorkers have put out the welcome mat and wished him the best of luck. Meet Pale Male — a red-tailed hawk who chose life in the Big Apple and founded a hawk dynasty on the ledge of a swanky high-rise overlooking Central Park.


id = initializeImpureRandom(seed;
Generates a hidden initial state vector for the Xorshift1024star random number generator (= xorshift1024* algorithm), from Integer input argument seed. Argument seed can be given any value (including zero or negative number). The function returns the dummy Integer number id. This number needs to be passed as input to function impureRandom, in order that the sorting order is correct (so that impureRandom is always called after initializeImpureRandom). The function stores a reasonable initial state vector in a C-static memory by using the Xorshift64star random number generator to fill the internal state vector with 64 bit random numbers.
parameter Integer seed; Real r; function random = impureRandom (final id=id); protected Integer id = initializeImpureRandom(seed); equation // Use the random number generator when sample(0,0.001) then r = random(); end when;
Utilities.impureRandom, Random.Generators
function initializeImpureRandom extends Modelica.Icons.Function; input Integer seed "The input seed to initialize the impure random number generator"; output Integer id "Identification number to be passed as input to function impureRandom, in order that sorting is correct"; end initializeImpureRandom;
| Date | Description | ||
|---|---|---|---|
| June 22, 2015 |
|


|
| Hi, due to yet another change in service providers, I was forced to once again change e-mail addresses so I finally decided to register a permanent name. Well when I did that, I got this free web space, so I figured, why not create a page. Please check back as I am still building the page. |
|
Guitar I enjoy playing guitar and have begun building a small collection of nice guitars. |
Phish I collect and trade live Phish shows, also interested in Trey Anastasio Band, Oysterhead, Vida Blue, Gov't Mule, others? |
Flying
I am a pilot and own Piper Warrior N9483C, a great little machine for punching holes in the sky |
|
Hockey
I used to play for the Warthogs hockey club in Hamilton, NJ. Currently I am not playing, but hopefully will be soon |
Soccer I used to play for Berkely Heights Soccer Club. Since moving to CT, I have not found a new team yet. I also play for the Cottages once a year at the US Hall of Fame Legends Tournament. We currently hold the championship both on the field and in the pub. We all look forward to next year |
Mountain Biking I love to mountain bike. |
|
Resume |
Links Just some places I think are worth checking out! |
Contact Me |


To create your project, start by creating a .cutedoc.yml file in a directory of your choice, usually
the in the root of your project. This is the general structure of a manifest file:
meta:
title: Cutedoc
author: NickTheDev
description: Cutedoc's documentation.
branding:
icon: docs/static/img/icon.png
logo: docs/static/img/logo.png
articles:
Introduction:
Intro: docs/sources/about.md
Meta
To describe basic characteristics of the project, you can define a meta section in the manifest
file. In this section you may define meta such as the title, author, and description and the
project branding.
# Project metadata.
meta:
# Html header metadata title. Default is blank.
title: Cutedoc
# Html header metadata author. Default is blank.
author: NickTheDev
# Html header metadata description. Default is blank.
description: Cool documentation.
# Project branding.
branding:
# Html header favicon, preferably 16 x 16. Default is null.
icon: path/to/icon.png
# Logo of the project, preferably 200 x 100. Default is null.
logo: path/to/logo.png
Build
To configure the build of your project, you can define a build section in the manifest file. In this section you may
specify the output directory of the build and whether to minify the production assets or not.
# Build config.
build:
# Output directory of the documentation. Default is 'docs'.
dir: docs
# Whether or not to minify the build assets (css, js). Default is true.
minify: true
Articles
To link markdown files in your project, you can define an articles section in the manifest file.
In this section you may define article groups, and then place the links in them.
# Project articles.
articles:
# Article group name.
Introduction:
# Path to article markdown file, may use github flavored markdown.
Intro: docs/sources/about.md
Theme
To configure the theme of your project, you can define a theme section in the manifest file.
You may specify the template name, the only one currently being the minimal theme (The
documentation you are reading right now uses the minimal theme). You can also
define the color scheme of the template, namely the primary, secondary, text, nav, and
background colors.
# Project theme.
theme:
# Theme template, currently the only supported template is 'minimal'. Default is 'minimal'.
template: minimal
# Template color scheme.
colors:
# Primary color used for headers and navigation group text colors. Default is 3e4669.
primary: 3e4669
# Secondary color used an accent in the navigation and the body headers. Default is c3c6de.
secondary: c3c6de
# Body text color used in the documentation. Default is 3e4669.
text: 3e4669
# Navigation background color. Default is fff.
nav: fff
# Background color. Default is f6f7fb.
background: f6f7fb


This is the parent class for the SQL stores, which contains the logic common to all of the SQL stores.
The table names used are determined by the class variables associations_table_name and nonces_table_name. To change the name of the tables used, pass new table names into the constructor.
To create the tables with the proper schema, see the createTables method.
This class shouldn't be used directly. Use one of its subclasses instead, as those contain the code necessary to use a specific database. If you're an OpenID integrator and you'd like to create an SQL-driven store that wraps an application's database abstraction, be sure to create a subclass of Auth_OpenID_DatabaseConnection that calls the application's database abstraction calls. Then, pass an instance of your new database connection class to your SQLStore subclass constructor.
All methods other than the constructor and createTables should be considered implementation details.
Located in /Auth/OpenID/SQLStore.php (line 67)
Auth_OpenID_OpenIDStore | --Auth_OpenID_SQLStore
| Class | Description |
|---|---|
| Auth_OpenID_PostgreSQLStore | An SQL store that uses PostgreSQL as its backend. |
| Auth_OpenID_MySQLStore | An SQL store that uses MySQL as its backend. |
| Auth_OpenID_SQLiteStore | An SQL store that uses SQLite as its backend. |
This creates a new SQLStore instance. It requires an established database connection be given to it, and it allows overriding the default table names.
Returns true if $value constitutes a database error; returns false otherwise.
Resets the store by removing all records from the store's tables.
Converts a query result to a boolean. If the result is a database error according to $this->isError(), this returns false; otherwise, this returns true.
This method should be overridden by subclasses. This method is called by the constructor to set values in $this->sql, which is an array keyed on sql name.
Inherited From Auth_OpenID_OpenIDStore
Auth_OpenID_OpenIDStore::cleanup()
Auth_OpenID_OpenIDStore::cleanupAssociations()
Auth_OpenID_OpenIDStore::cleanupNonces()
Auth_OpenID_OpenIDStore::getAssociation()
Auth_OpenID_OpenIDStore::removeAssociation()
Auth_OpenID_OpenIDStore::reset()
Auth_OpenID_OpenIDStore::storeAssociation()
Auth_OpenID_OpenIDStore::supportsCleanup()
Auth_OpenID_OpenIDStore::useNonce()
Documentation generated on Tue, 21 Apr 2009 11:31:33 -0700 by phpDocumentor 1.3.2


|
mlpack
1.0.12
|
This class implements Collaborative Filtering (CF). More...
Public Member Functions | |
| CF (arma::mat &data, const size_t numUsersForSimilarity=5, const size_t rank=0) | |
| Initialize the CF object. More... | |
| const arma::sp_mat & | CleanedData () const |
| Get the cleaned data matrix. More... | |
| const arma::mat & | Data () const |
| Get the data matrix. More... | |
| void | Factorizer (const FactorizerType &f) |
| Sets factorizer for NMF. More... | |
| void | GetRecommendations (const size_t numRecs, arma::Mat< size_t > &recommendations) |
| Generates the given number of recommendations for all users. More... | |
| void | GetRecommendations (const size_t numRecs, arma::Mat< size_t > &recommendations, arma::Col< size_t > &users) |
| Generates the given number of recommendations for the specified users. More... | |
| const arma::mat & | H () const |
| Get the Item Matrix. More... | |
| void | NumUsersForSimilarity (const size_t num) |
| Sets number of users for calculating similarity. More... | |
| size_t | NumUsersForSimilarity () const |
| Gets number of users for calculating similarity. More... | |
| void | Rank (const size_t rankValue) |
| Sets rank parameter for matrix factorization. More... | |
| size_t | Rank () const |
| Gets rank parameter for matrix factorization. More... | |
| const arma::mat & | Rating () const |
| Get the Rating Matrix. More... | |
| std::string | ToString () const |
| Returns a string representation of this object. More... | |
| const arma::mat & | W () const |
| Get the User Matrix. More... | |
Private Member Functions | |
| void | CleanData () |
| Converts the User, Item, Value Matrix to User-Item Table. More... | |
| void | InsertNeighbor (const size_t queryIndex, const size_t pos, const size_t neighbor, const double value, arma::Mat< size_t > &recommendations, arma::mat &values) const |
| Helper function to insert a point into the recommendation matrices. More... | |
Private Attributes | |
| arma::sp_mat | cleanedData |
| Cleaned data matrix. More... | |
| arma::mat | data |
| Initial data matrix. More... | |
| FactorizerType | factorizer |
| Instantiated factorizer object. More... | |
| arma::mat | h |
| Item matrix. More... | |
| size_t | numUsersForSimilarity |
| Number of users for similarity. More... | |
| size_t | rank |
| Rank used for matrix factorization. More... | |
| arma::mat | rating |
| Rating matrix. More... | |
| arma::mat | w |
| User matrix. More... | |
This class implements Collaborative Filtering (CF).
This implementation presently supports Alternating Least Squares (ALS) for collaborative filtering.
A simple example of how to run Collaborative Filtering is shown below.
The data matrix is a (user, item, rating) table. Each column in the matrix should have three rows. The first represents the user; the second represents the item; and the third represents the rating. The user and item, while they are in a matrix that holds doubles, should hold integer (or size_t) values. The user and item indices are assumed to start at 0.
| FactorizerType | The type of matrix factorization to use to decompose the rating matrix (a W and H matrix). This must implement the method Apply(arma::sp_mat& data, size_t rank, arma::mat& W, arma::mat& H). |
| mlpack::cf::CF< FactorizerType >::CF | ( | arma::mat & | data, |
| const size_t | numUsersForSimilarity = 5 , |
||
| const size_t | rank = 0 |
||
| ) |
Initialize the CF object.
Store a reference to the data that we will be using. There are parameters that can be set; default values are provided for each of them. If the rank is left unset (or is set to 0), a simple density-based heuristic will be used to choose a rank.
| data | Initial (user, item, rating) matrix. |
| numUsersForSimilarity | Size of the neighborhood. |
| rank | Rank parameter for matrix factorization. |
|
private |
Converts the User, Item, Value Matrix to User-Item Table.
|
inline |
Get the cleaned data matrix.
Definition at line 130 of file cf.hpp.
References mlpack::cf::CF< FactorizerType >::cleanedData.
|
inline |
Get the data matrix.
Definition at line 128 of file cf.hpp.
References mlpack::cf::CF< FactorizerType >::data.
|
inline |
Sets factorizer for NMF.
Definition at line 116 of file cf.hpp.
References mlpack::cf::CF< FactorizerType >::factorizer.
| void mlpack::cf::CF< FactorizerType >::GetRecommendations | ( | const size_t | numRecs, |
| arma::Mat< size_t > & | recommendations | ||
| ) |
Generates the given number of recommendations for all users.
| numRecs | Number of Recommendations |
| recommendations | Matrix to save recommendations into. |
| void mlpack::cf::CF< FactorizerType >::GetRecommendations | ( | const size_t | numRecs, |
| arma::Mat< size_t > & | recommendations, | ||
| arma::Col< size_t > & | users | ||
| ) |
Generates the given number of recommendations for the specified users.
| numRecs | Number of Recommendations |
| recommendations | Matrix to save recommendations |
| users | Users for which recommendations are to be generated |
|
inline |
Get the Item Matrix.
Definition at line 124 of file cf.hpp.
References mlpack::cf::CF< FactorizerType >::h.
|
private |
Helper function to insert a point into the recommendation matrices.
| queryIndex | Index of point whose recommendations we are inserting into. |
| pos | Position in list to insert into. |
| neighbor | Index of item being inserted as a recommendation. |
| value | Value of recommendation. |
|
inline |
Sets number of users for calculating similarity.
Definition at line 86 of file cf.hpp.
References mlpack::cf::CF< FactorizerType >::numUsersForSimilarity, and mlpack::Log::Warn.
|
inline |
Gets number of users for calculating similarity.
Definition at line 98 of file cf.hpp.
References mlpack::cf::CF< FactorizerType >::numUsersForSimilarity.
|
inline |
Sets rank parameter for matrix factorization.
Definition at line 104 of file cf.hpp.
References mlpack::cf::CF< FactorizerType >::rank.
|
inline |
Gets rank parameter for matrix factorization.
Definition at line 110 of file cf.hpp.
References mlpack::cf::CF< FactorizerType >::rank.
|
inline |
Get the Rating Matrix.
Definition at line 126 of file cf.hpp.
References mlpack::cf::CF< FactorizerType >::rating.
| std::string mlpack::cf::CF< FactorizerType >::ToString | ( | ) | const |
Returns a string representation of this object.
|
inline |
Get the User Matrix.
Definition at line 122 of file cf.hpp.
References mlpack::cf::CF< FactorizerType >::w.
|
private |
Cleaned data matrix.
Definition at line 173 of file cf.hpp.
Referenced by mlpack::cf::CF< FactorizerType >::CleanedData().
|
private |
Initial data matrix.
Definition at line 159 of file cf.hpp.
Referenced by mlpack::cf::CF< FactorizerType >::Data().
|
private |
Instantiated factorizer object.
Definition at line 165 of file cf.hpp.
Referenced by mlpack::cf::CF< FactorizerType >::Factorizer().
|
private |
Item matrix.
Definition at line 169 of file cf.hpp.
Referenced by mlpack::cf::CF< FactorizerType >::H().
|
private |
Number of users for similarity.
Definition at line 161 of file cf.hpp.
Referenced by mlpack::cf::CF< FactorizerType >::NumUsersForSimilarity().
|
private |
Rank used for matrix factorization.
Definition at line 163 of file cf.hpp.
Referenced by mlpack::cf::CF< FactorizerType >::Rank().
|
private |
Rating matrix.
Definition at line 171 of file cf.hpp.
Referenced by mlpack::cf::CF< FactorizerType >::Rating().
|
private |
User matrix.
Definition at line 167 of file cf.hpp.
Referenced by mlpack::cf::CF< FactorizerType >::W().


--- layout: post title: Where does JRun/CFMX store the compiled cfcs? tags: [] status: publish type: post published: true meta: {} ---
A while back I found out that CFMX compiles ColdFusion Components and I was curious as to where they were stored. I found two locations where they were kept:
<your drive>:\CFusionMX\wwwroot\WEB-INF\cfclasses
<your drive>:\CFusionMX\wwwroot\WEB-INF\cfc-skeletons
<your drive>:\JRun4\servers\<instance name>\cfusion-ear\cfusion-war\WEB-INF\cfclasses
<your drive>:\JRun4\servers\<instance name>\cfusion-ear\cfusion-war\WEB-INF\cfc-skeletons
I am not sure what the differences are between the two folders and usually I find the compiled components in cfclasses folder [only once so far have I found one im cfc-skeleton]. Once compiled the CFC seems to be compiled into a one generic class file and then another one for each function in the CFC.


Once upon a time, there was a llama. His name was Cuzco. He was a very rich llama, and ruled over all of the people in a small village in Equador. He loved munching on coffee beans and yelling at the peasants in his village. One day, an evil porcupine named Eezma came to the village to strike fear into the peasant's hearts. Cuzco was faced with a dilemma. He had to either protect his peasants, or he could let them face the wrath of Eezma.
Since he didn't care much about the peasants, but he cared very much about himself, the llama was then forced to protect his empire. Eezma took control of the village and had almost taken over completely as an empress. Cuzco was locked up and forced to only look at his peasants through his embellished window, as there were no mirrors in the room he was locked in. He didn't know what to do at this point, and wanted to develop a plan.
Unfortunately for himself, Cuzco was not the planning type. He spent the majority of four and half days crying and feeling bad for himself in a corner. It made all the subjects below who could hear his wailing a bit uncomfortable. But in a stroke of luck, one of those uncomfortable subjects happened to be his only friend, Pacha. The man, clothing as green as ever, instantly recognized the sobs of the former emperor (an all too familiar sound). "Why the long face, pal?" he called up to the window.
Pacha was a kind and loving person. He would always come help out Cuzco whenever he was in distress. Pacha was like a dad to Cuzco. Pacha loved who Cuzco was as a person. The only thing that Pacha hated about Cuzco was the coffee beans. Cuzco swore to himself that he would never drink coffee because he was scared of dying again.
While Pacha was working on helping Cuzco escape, Cuzco thought to himself, "This is easy, I can just avoid any coffee shops, or coffee farms! However while Cuzco was locked in, evil Eezma started her own coffee business by slaving the villagers and built coffeeshops in every single block and corner of the village.
Pacha lept through the window after scaling the tower's wall, somehow remaining unnoticed. Cuzco, who was sobbing in bed until he tuckered himself out, jumped up and started hysterically shrieking for help. Once he realized it was just Pacha, he slapped him with his hoof for scaring him so much. On their daring escape, Pacha had brought clothes for Cuzco to slip into, to disguise that he was a llama and not Pacha's simple wife. Upon Cuzco's appearance into the blinding daylight, he started hysterically screeching again. Coffee beans. COFFEE BEANS EVERYWHERE. Everywhere Cuzco turned, the almighty bean was staring at him straight in the face. Collapsing in a heap, Cuzco started fading in and out of consciousness.
Fortunatelly for Pacha, he did not know CPR, but one of the coffee shop's owners did, Kronk. While Kronk was bringing Cuzco back to life, Pacha was regretting helping Cuzco, why did this always happen to him.  Not this emperor. Pacha thanked him, and apologised, but ended up having to blindfold Cuzco and cover his nose otherwise his ears would have fallen off from Cuzco's yelling.
Leaving poor Kronk slapped silly, Pacha picked up Cuzco and made a run for the edge of the village, away from most of the coffe shops. "What is going on?!" he asked, taking off the the covers off of the llama's head. Cuzco explained how Eezma was trying to take everything from his AGAIN and it was really hurting his self esteem. Pacha promised he would do his best to help save the village--and restore Cuzco's ego.
After spending days living in a small camp in isolation, Cuzco suddenly came up with the idea of opening his own coffee chain. Cuzco believed that this would be the only way to compete and slowly take back what Eezma had taken from him. Knowing how much this meant for Cuzco, Pacha willingly accepted the idea although he knew what his fate would be if he were to accept this idea. Pacha did not want to fail what he promised with Cuzco and so they began their own coffee empire called Starbucks.
In the first few months, Starbucks was a massive hit with the locals. One thing lead to another, and Pacha and Cuzco were able to turn their humble cafe into a global chain. Cuzco's ego mattered no more, as he had something only a few llamas would ever dream of; a best friend and business partner that supported his dreams.
- THE END-


Home
Register
About
Theme
Speakers
Team
Terms & Conditions
Contact
Team
Visit Ted Profile
Aravind T
Organizer/ President
Visit Ted Profile
Abishek Velavan D
Co-Organizer/ Vice President
Visit Ted Profile
Brindha S
Faculty Coordinator
Visit Ted Profile
Mouneshwara G
Executive Producer
Visit Ted Profile
Naresh Kumar A
Event Manager
Visit Ted Profile
Varsha J
Sponsorships and Budgets Manager
Visit Ted Profile
Sruthi R
Designer
Visit Ted Profile
Rohini C S
Communications Editorial and Marketing Director
Visit Ted Profile
Divya S P
Website Manager
Visit Ted Profile
Lekshmi Priya S
Video and production Lead
Visit Ted Profile
Gokul B
Curator
Visit Ted Profile
Brindha V
Curator
Visit Ted Profile
Priyadharshini V
Curator
Visit Ted Profile
Aravind Karti S
Curator
Visit Ted Profile
Charuni S A
Curator
Visit Ted Profile
Aaditi M
Curator
Visit Ted Profile
Harish K
Backup Volunteer
Visit Ted Profile
Arunagiri M
Backup Volunteer
Visit Ted Profile
Anusuya J S
Backup Volunteer
Visit Ted Profile
Sriya B
Backup Volunteer
Visit Ted Profile
Shwetha A K
Backup Volunteer
Visit Ted Profile
Nigill J K
Backup Volunteer
Visit Ted Profile
Kaviyashree R P
Backup Volunteer
Visit Ted Profile
Pranava Darisan S V
Backup Volunteer
Visit Ted Profile
Premkumar V
Backup Volunteer
Visit Ted Profile
Indiera M
Backup Volunteer


--- author: alunny categories: app date: '2010-01-20 00:00:00' link: http://blogs.nitobi.com/andrew/2010/11/28/introducing-sleight permalink: /2010/01/20/introducing-sleight/ slug: introducing-sleight status: publish title: Introducing Sleight type: post format: html ---
Some time in October I threw together Sleight - a tiny little node.js server for use in developing PhoneGap apps (it's not coupled with PhoneGap, but PhoneGap's the ideal use case).
Sleight is basically just an if statement: for each request to the server, if the resource is a file on the server, then serve it as the response. If it's not there, proxy a response back from some remote server. This lets you develop as though you're working on a PhoneGap app (on the file://
protocol, where cross-origin XHRs are allowed) from an HTTP server. You can then run your app from a server locally and open it in a mobile browser, while keeping the cross-origin requests working.
Let's get a quick demo going. Create a sleight-demo
directory, and create an index.html
file with this text:

Open that in Safari or the like from your hard drive; ensure the file is run from the file://
protocol. Good.
Now, assuming you've installed Sleight, enter the following command in your sleight-demo
directory:
$ sleight target=search.twitter.com
Listening on port 8088 @ ${insert your current timestamp here}
Now navigate to http://localhost:8088/
in Safari. The tweet should still be present (or maybe there'll be a new tweet by this point). And check your Sleight log:
Static file served from: / @ timestamp
Remote request to search.twitter.com:80/search.json?q=phonegap @ timestamp
Remote request to search.twitter.com:80/favicon.ico @ timestamp
Much success and joy ensues. And since you're now running an HTTP server, you can easily access the page form your mobile device, so all of you PhoneGap testing can be done without any installation, or re-installation.
Right now this is all Sleight does, but there are some other, PhoneGap-specific features we'd like to add in the future - hooks for logging, debugging, and testing in particular.
Oh yeah, and you can get the Sleight source code at Github, as ever.
p.s. If you were hoping Sleight, in reference to sleight of hand, meant there would be any magic, I sincerely apologize. Here is the best I can manage:


Module "pl.stringio"
reading and writing strings using Lua IO.
Functions
| stringio.create () | create a file object which can be used to construct a string. |
| stringio.open (s) | create a file object for reading from a given string. |
Functions
- stringio.create ()
-
create a file object which can be used to construct a string.
The resulting file object will have an extra value() method for
retrieving the string value.
Usage:
f = create(); f:write('hello, dolly\n'); print(f:value()) - stringio.open (s)
-
create a file object for reading from a given string.
Parameters:
- s: The input string.


glow on
glow off
stack glow on
stack glow off
report
English
Dutch
Catalan
Czech
Danish
Finnish
French
German
Greek
Hebrew
Hungarian
Indonesian
Irish Gaelic
Italian
Japanese
Japanese(Hira)
Maori
Norwegian (Bokmal)
Portuguese
Portuguese (Brazil)
Scottish Gaelic
Serbian
Slovenian
Spanish
Spanish (Latin America)
Swedish
Turkish
Ukranian
Vietnamese
Welsh
Chinese (China)
Chinese (TW)
translate
to blocks!
example
generate text


An overview of the order management process
During the order management process, Voyageone will perform multiple actions that involve orders. Our system will first request a list of orders with the status "ReleasedForShipment", which will then be imported into our system. For each order that is imported, Voyageone will send an order acknowledgement to the partner, indicating a successful import. Next, the process will send shipment updates per order to the partner for all orders the Seller has marked as "shipped" in Voyageone. The final part of the process will send either refund or cancellation requests for orders that the Seller has marked as such in Voyageone. This process executes on a schedule, which can be customized based on the partner's preference.


The Republic of the Carambola Islands is a sovereign island community for the priviledged few of our great nation, the United States of America, who desire a quiet life, free from regulation and relentless taxation. We are strong beleivers in the free market and the American Dream™.
Learn about the government, legal system, and borders of the Walnut Islands.
Learn about the government, legal system, and borders of the Walnut Islands.
Learn about the government, legal system, and borders of the Walnut Islands.
Learn about the government, legal system, and borders of the Walnut Islands.
Learn about the government, legal system, and borders of the Walnut Islands.


An API token is necessary in order to create Jenkins build jobs during the project bootstrap process.
How To Retrieve the API TokenThe API token can be retrieved when being logged in in Jenkins with the respective user account. Click in the top left corner on the username of the currently logged in user. On the new page, select Configure in the left navigation bar. The loaded page will provide you with the ability to change your name, email address and various other user specific data - among others, you can also click on Show API Token... (or similar). Copy this token into the input field above.


Clients and Servers
Computers connecter to the Web and called clients and servers.
- Clients are the typical Web users Internet-connected devices (for example, your computer connected to your Wi-Fi, or you phone connected to your mobile network) and Web-accessing software available on those devices (usually a web browser like Firefox or Chrome).
- Servers are computers that store webpages, sites, or apps. When a client device wants to access a webpage, a copy of the webpage is downloaded from the server onto the client machine to be displayed in the user's web browser.
So What Actually Happens?
- The browser goes to the DNS servers and finds the real address of the server that the website lives on.
- The browser sends an HTTP request message to the server asking it to send a copy of the website to the client.
- If the server approces the client's request, the server sends the client a "200 OK" message, which means "Permission granted! Here you go!", and then starts sending the website's files to the browser as a series of small chunks.
- The browser assembles the small chunks into a complete website and displays it to you!


|
BL3 SDK
0.0.1
Borderlands 3 Class Documentation
|
#include <BL3_Engine_classes.hpp>
Public Member Functions | |
| struct FTransform | GetBoneTransform (const struct FName &BoneName) |
| Public Member Functions inherited from UAnimSequenceBase | |
| float | GetPlayLength () |
| Public Member Functions inherited from UObject | |
| std::string | GetName () const |
| std::string | GetFullName () const |
| bool | IsA (UClass *cmp) const |
| void | ProcessEvent (class UFunction *function, void *parms) |
| void | ExecuteUbergraph (int EntryPoint) |
Static Public Member Functions | |
| static UClass * | StaticClass () |
| Static Public Member Functions inherited from UAnimSequenceBase | |
| static UClass * | StaticClass () |
| Static Public Member Functions inherited from UAnimationAsset | |
| static UClass * | StaticClass () |
| Static Public Member Functions inherited from UObject | |
| static FChunkedFixedUObjectArray & | GetGlobalObjects () |
| template<typename T > | |
| static T * | FindObject (const std::string &name) |
| static UClass * | FindClass (const std::string &name) |
| template<typename T > | |
| static T * | GetObjectCasted (std::size_t index) |
| static UClass * | StaticClass () |
Additional Inherited Members | |
| Static Public Attributes inherited from UObject | |
| static FUObjectArray * | GObjects |
| struct FTransform GetBoneTransform | ( | const struct FName & | BoneName | ) |
|
inlinestatic |
| TEnumAsByte<EAdditiveAnimationType> AdditiveAnimType |
| TArray<struct FAnimSyncMarker> AuthoredSyncMarkers |
| bool bEnableGbxRootMotionSync |
| bool bEnableRootMotion |
| bool bForceRootLock |
| bool bKeepAnimatedScale |
| struct FAnimSyncMarker BlendStartMarker |
| bool bRootMotionSettingsCopiedFromMontage |
| float CachedRootSpeed |
| int EncodingPkgVersion |
| EAnimInterpolationType Interpolation |
| int NumFrames |
| int RefFrameIndex |
| class UAnimSequence* RefPoseSeq |
| TEnumAsByte<EAdditiveBasePoseType> RefPoseType |
| struct FName RetargetSource |
| TEnumAsByte<ERootMotionRootLock> RootMotionRootLock |
| TArray<struct FTrackToSkeletonMap> TrackToSkeletonMapTable |
| unsigned char UnknownData00[0x4] |
| unsigned char UnknownData01[0xAC] |
| unsigned char UnknownData02[0x2] |
| unsigned char UnknownData03[0x3] |
| unsigned char UnknownData04[0x12] |
| unsigned char UnknownData05[0x5] |
| unsigned char UnknownData06[0x3] |


A video game is an electronic game that involves interaction with a user interface to generate visual feedback on a two- or three-dimensional video display device such as a TV screen, virtual reality headset or computer monitor. Since the 1980s, video games have become an increasingly important part of the entertainment industry, and whether they are also a form of art is a matter of dispute.
The electronic systems used to play video games are called platforms. Video games are developed and released for one or several platforms and may not be available on others. Specialized platforms such as arcade games, which present the game in a large, typically coin-operated chassis, were common in the 1980s in video arcades, but declined in popularity as other, more affordable platforms became available. These include dedicated devices such as video game consoles, as well as general-purpose computers like a laptop, desktop or handheld computing devices.
The input device used for games, the game controller, varies across platforms. Common controllers include gamepads, joysticks, mouse devices, keyboards, the touchscreens of mobile devices, or even a person's body, using a Kinect sensor. Players view the game on a display device such as a television or computer monitor or sometimes on virtual reality head-mounted display goggles. There are often game sound effects, music and voice actor lines which come from loudspeakers or headphones. Some games in the 2000s include haptic, vibration-creating effects, force feedback peripherals and virtual reality headsets.
In the 2010s, the commercial importance of the video game industry is increasing. The emerging Asian markets and mobile games on smartphones in particular are driving the growth of the industry. As of 2018, video games generated sales of US$134.9 billion annually worldwide, and were the third-largest segment in the U.S. entertainment market, behind broadcast and cable TV.
References/Notes
- "Newzoo Key Numbers". Newzoo. Archived from the original on 9 May 2019. Retrieved 20 May 2019.
- U.S. Patent 2,455,992
- "Welcome to Pong-Story – Introduction". PONG-Story.com. Archived from the original on 27 August 2010. Retrieved 24 October 2007.
- "Welcome to... NIMROD!". Archived from the original on 23 July 2011. Retrieved 24 October 2007.
- Winter, David. "A.S.Douglas' 1952 Noughts and Crosses game". PONG-Story. Archived from the original on 23 December 2015. Retrieved 3 July 2009.
- Rabin, Steve (2005) [14 June 2005]. Introduction to Game Development. Massachusetts: Charles River Media. ISBN 978-1-58450-377-4.
- Marvin Yagoda (2008). "1972 Nutting Associates Computer Space". Archived from the original on 28 December 2008.
- Orlando, Greg (15 May 2007). "Console Portraits: A 40-Year Pictorial History of Gaming". Wired News. Archived from the original on 16 May 2008. Retrieved 24 October 2007.
- "History of Gaming – Interactive Timeline of Game History". PBS. Archived from the original on 18 February 2006. Retrieved 25 October 2007.
- Miller, Michael (1 April 2005). "A History of Home Video Game Consoles". InformIT. Archived from the original on 12 October 2007. Retrieved 25 October 2007.
Tennis for Two, an early analog computer game that used an oscilloscope for a display


Why is it STILL about the fight between designer and developers? Its 2013, we all want to get the best result, right? #uxmunich— Alexander Ridler (@pixelrockr) March 14, 2013
Why is it STILL about the fight between designer and developers? Its 2013, we all want to get the best result, right? #uxmunich
Be Friends With Your Designer And Style Guides • UX Munich 2013 • Hans Chr. Reinl / @drublic


--- layout: post title: assert_raises_kind_of with Module error tagging date: 2007-06-24 21:44:00.000000000 +02:00 type: post published: true status: publish categories: - coding - fun - ruby - whatever tags: [] meta: _publicize_job_id: '14401150792' original_post_id: '122' _wp_old_slug: '122' author: login: joesixpack email<EMAIL_ADDRESS>display_name: dirk lüsebrink first_name: '' last_name: '' ---
this sunny sunday afternoon i was putting together some utility code(stupid me!) to do some remote blogging from the shell or the cosy inside of my vim editing session. This for some later time, but while i was going on with my test-driven/test first development i hit the problem of missing a test to check for the base class of my errors. I wanted to:
assert_raise(StandardError) { @blog.find_post(:postid => 123456789) }
to generally check for any kind of trouble bubbling up but it was not working as expected. Instead i got nasty Failure reports:
1) Failure:
test_find_post(XMLRPCTest) [mylib.rb:83]:
<StandardError> exception expected but was
Class: <XMLRPC::FaultException>
Message: <"Sorry, no such post.">
I suspected XMLRPCTest::FaultException
to maybe not beeing derived from StandardError, but that was not the case. A look in the ruby documentation and the ruby-talk thread confirmed:
assert_raise(*args) {|| ...}
is checking for the EXCACT exception type only!
On the ruby-talk mailing list there was a little discussion about this topic and i pretty much agree with all the +1 sayers on the list. Edwin Fine propsed adding his own assert_raise_s
method the Assertions class. You easily get into muddy waters with opening standard ruby classes for some duck-typing but reverting to:
assert_raise(XMLRPC::FaultException) { @blog.find_post(:postid => 123456789) }
was not an option. This would expose way to much implementation detail to this very high level coding of the very first tests so early in the project. So I was using the source, as yoda said and found another solution for me.
assert_raises
After i read Edwin’s post i checked the source for def
and learned that this method is actually checking for some kind of exception base class. The argument to
assert_raiseassert_raise
is an array of exception types. assert_raise
does partition this types into Class
and Module
.
The assertion_raise
checks for Class
types is exact, but the Module
is not(can’t be). They are checked with an is_a?
condition - there can’t be no object instance of module type or course.
My original test therefor simply fails because StandardError
is not a Module
but a class. The XMLRPC::FaultException
implementation is not mine but it is bubbling through my lib which i’m testing and this is precisly the condition i want to write tests for.
assert_raises_kind_of
First i wrote an empty tagging module for lib to tag all Errors and exceptions coming from my lib:
module MyLib
module Error; end
end
Now i can tag all exception from some deeper laying code with my Error module:
begin
...
rescue => e # errors bubbling from the underworld
# tag it
class << e; include MyLib::Error; end
# throw it
raise e
end
Voila, and now i can write:
assert_raise(BlogMist::Error) { @blog.find_post(:postid => 123456789) }
and finally got what i wanted but you’re milage may vary. Basically this gives me a way to create some kind of folksonomy of errors coming from my library. Don’t know yet where this might lead me, but hey, ruby is the best for protoyping and playing around!
Testing for error base classes instead of pricise error handling is not to make you lazy! As discussed on the forum thread it is to start with tests early on and being able to refine error condition testing over time.
Technorati tag: ruby, ducktyping, assert_raise, test-first,


“ The mind of calmness and clarity you experience while sitting in mindfulness meditation is very nice, but it only becomes life changing when you can bring up that mind on demand, in day-to-day life. ” Excerpt From: Tan, Chade-Meng. “Search Inside Yourself: The Unexpected Path to Achieving Success, Happiness (and World Peace).” iBooks.
I will suggest walk Meditation, mindful walking to be restful for the mind, and a relaxed mind is conducive to creative thinking.


Upgrade Passive
Profit/second
1
Total Bitcoins
0
Upgrade Click:
1
btc
Profit/click
1
Welcome to
Click-a-Brick
Click the brick to get more Bitcoins
Start new game
Resume
Current total:
1
Buy Shapes
Profit per second:
1
❌
Buy a triangle to increase passive income
0
/
40
100
Buy a square to increase passive income
0
/
40
400
Buy a circle to increase passive income
0
/
40
800
Buy a hexagon to increase passive income
0
/
40
1600


| Csnippet {pomp} | R Documentation |
Accelerating computations through inline snippets of C code
Csnippet(text)
text |
character; text written in the C language |
pomp provides a facility whereby users can define their model's components using inline C code.
C snippets are written to a C file, by default located in the R session's temporary directory, which is then compiled (via R CMD SHLIB
) into a dynamically loadable shared object file.
This is then loaded as needed.
By default, your R installation may not support R CMD SHLIB
.
The package website contains installation instructions that explain how to enable this powerful feature of R.
In writing a C snippet one must bear in mind both the goal of the snippet, i.e., what computation it is intended to perform, and the context in which it will be executed. These are explained here in the form of general rules. Additional specific rules apply according to the function of the particular C snippet. Illustrative examples are given in the tutorials on the package website.
C snippets must be valid C.
They will embedded verbatim in a template file which will then be compiled by a call to R CMD SHLIB
.
If the resulting file does not compile, an error message will be generated.
Compiler messages will be displayed, but no attempt will be made by pomp to interpret them.
Typically, compilation errors are due to either invalid C syntax or undeclared variables.
State variables, parameters, observables, and covariates must be left undeclared within the snippet.
State variables and parameters are declared via the statenames
or paramnames
arguments to pomp
, respectively.
Compiler errors that complain about undeclared state variables or parameters are usually due to failure to declare these in statenames
or paramnames
, as appropriate.
A C snippet can declare local variables. Be careful not to use names that match those of state variables, observables, or parameters. One must never declare state variables, observables, covariates, or parameters within a C snippet.
Names of observables must match the names given given in the data.
They must be referred to in measurement model C snippets (rmeasure
and dmeasure
) by those names.
If the ‘pomp’ object contains a table of covariates (see above), then the variables in the covariate table will be available, by their names, in the context within which the C snippet is executed.
Because the dot ‘.’ has syntactic meaning in C, R variables with names containing dots (‘.’) are replaced in the C codes by variable names in which all dots have been replaced by underscores (‘_’).
The headers ‘R.h’ and ‘Rmath.h’, provided with R, will be included in the generated C file, making all of the R C API available for use in the C snippet. This makes a great many useful functions available, including all of R's statistical distribution functions.
The header ‘pomp.h’, provided with pomp, will also be included, making all of the pomp C API available for use in every C snippet.
Snippets of C code passed to the globals
argument of pomp
will be included at the head of the generated C file.
This can be used to declare global variables, define useful functions, and include arbitrary header files.
It is straightforward to link C snippets with precompiled C libraries.
To do so, one must make sure the library's header files are included;
the globals
argument can be used for this purpose.
The shlib.args
argument can then be used to specify additional arguments to be passed to R CMD SHLIB
.
FAQ 3.7 gives an example.
To prevent collisions in parallel computations, a ‘pomp’ object built using C snippets is “salted” with the current time and a random number. A result is that two ‘pomp’ objects, built on identical codes and data, will not be identical as R objects, though they will be functionally identical in every respect.
Some Windows users report problems when using C snippets in parallel computations.
These appear to arise when the temporary files created during the C snippet compilation process are not handled properly by the operating system.
To circumvent this problem, use the cdir
and cfile
options to cause the C snippets to be written to a file of your choice, thus avoiding the use of temporary files altogether.
spy
More on implementing POMP models:
accumvars
,
basic_components
,
betabinomial
,
covariates
,
dinit_spec
,
dmeasure_spec
,
dprocess_spec
,
emeasure_spec
,
eulermultinom
,
parameter_trans()
,
pomp-package
,
pomp_constructor
,
prior_spec
,
rinit_spec
,
rmeasure_spec
,
rprocess_spec
,
skeleton_spec
,
transformations
,
userdata
,
vmeasure_spec


Basic functionality, you will love it anyway!
Show your love to your friend by getting premium features. (COMING SOON)


--- title: inference.export keywords: fastai sidebar: home_sidebar summary: "This module contains the main functionality for extracting the transform parameters from DataLoaders" description: "This module contains the main functionality for extracting the transform parameters from DataLoaders" ---
For an example we will look at the pets dataset. We will define a series of transforms in our Pipelines, and we will attempt to extract them.
path = untar_data(URLs.PETS)
fnames = get_image_files(path/'images')
pat = r'(.+)_\d+.jpg$'
batch_tfms = [*aug_transforms(), Normalize.from_stats(*imagenet_stats)]
item_tfms = RandomResizedCrop(460, min_scale=0.75, ratio=(1.,1.))
bs=64
dls = ImageDataLoaders.from_name_re(path, fnames, pat, batch_tfms=batch_tfms,
item_tfms=item_tfms, bs=bs)
def to_list(b):
"Recursively make any `L()` or CategoryMap to list"
def _inner(o):
if isinstance(o,L) or isinstance(o, CategoryMap):
return list(o)
elif isinstance(o, Tensor):
return np.array(to_detach(o))
else: return o
for k in b.keys():
b[k] = apply(_inner,b[k])
return b
dls.after_batch[2].fs[1].__dict__
_make_tfm_dict(dls.after_item)
dls.after_batch[2].fs[1].__dict__
my_d = dls.after_batch[2].fs[0].__dict__.copy()
my_d.pop('change')
from fastai.vision.augment import _BrightnessLogit
RandTransform??
def extract_logits(tfm):
name = tfm.__class__.name
t_d = tfm.__dict__
t
dls.after_batch[2].fs[0].__class__.__name__
ab_dict = {}
for tfm in dls.after_batch:
if isinstance(tfm, AffineCoordTfm) or isinstance(tfm, LightingTfm):
if hasattr(tfm, 'aff_fs'):
for t in tfm.aff_fs:
ab_dict[t.func.__name__] = t.keywords
elif hasattr(tfm, 'coord_fs'):
for t in tfm.coord_fs:
t_d,n = _gen_dict(t)
ab_dict[n] = t_d
elif hasattr(tfm, 'fs'):
for t in tfm.fs:
t_d,n = _gen_dict()
tfm_info = get_information(dls)
For vision it will contain tfms
, after_item
, and after_batch
First, our type
transforms:
tfm_info['tfms']
Then the item
transforms:
tfm_info['after_item']
And finally our batch transforms:
tfm_info['after_batch']
path = untar_data(URLs.ADULT_SAMPLE)
df = pd.read_csv(path/'adult.csv')
splits = RandomSplitter()(range_of(df))
cat_names = ['workclass', 'education', 'marital-status', 'occupation', 'relationship', 'race']
cont_names = ['age', 'fnlwgt', 'education-num']
procs = [Categorify, FillMissing, Normalize]
y_names = 'salary'
to = TabularPandas(df, procs=procs, cat_names=cat_names, cont_names=cont_names,
y_names=y_names, splits=splits)
dls = to.dataloaders()
dls.normalize
The usage is the exact same:
tfm_dicts = get_information(dls)
However our keys are different. By default it will have normalize
, fill_missing
, and categorify
, and then depending on what is available it will store either categorize
or regression_setup
to tell us about our outputs.
Here is an example from Normalize
:
tfm_dicts['Normalize']
FillMissing
:
tfm_dicts['FillMissing']
And Categorify
:
tfm_dicts['Categorify']['classes'].keys()
Before finally categorize
(since we have a classification problem):
tfm_dicts['Categorize']
To export, a new to_fastinference
function has been made
doc(Learner.to_fastinference)
Params:
data_fname
: Filename to save our extracted DataLoader
information, default is data
model_fname
: Filename to save our current model, default is model
path
: Path to save our model and data to, default is .
Exported files will have the extension .pkl
learn = tabular_learner(dls, [200,100], metrics=[accuracy])
learn.to_fastinference(path='../../')
Simply call learn.to_fastinference
and it will export everything needed for fastinference_pytorch
or fastinference_onnx
learn.to_fastinference(data_fname = 'data', model_fname = 'model', path = Path('.'))


| make_blocking {diffobj} | R Documentation |
Wraps fun
in a function that runs fun
and then issues a
readline
prompt to prevent further R code evaluation until user
presses a key.
make_blocking(fun, msg = "Press ENTER to continue...", invisible.res = TRUE)
fun |
a function |
msg |
character(1L) a message to use as the |
invisible.res |
whether to return the result of |
fun
, wrapped in a function that does the blocking.
make_blocking(sum, invisible.res=FALSE)(1:10)


Point Forward -> Word Cloud Generator
Key in the desired job title and the algorithm will scour the Internet for job descriptions and generate a word cloud for it!
Job Title:
{% if cloud %}
{% endif %}


{# #}
Unfortunately, the NoodlesBones public api has not been released yet but should be available in the next few weeks.


'br}
'br}
{\
rename - renames multiple files
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
f(CW*(C`rename*(C' renames the filenames supplied according to the rule specified as the first argument. The perlexpr argument is a Perl expression which is expected to modify the f(CW$_ string in Perl for at least some of the filenames specified. If a given filename is not modified by the expression, it will not be renamed. If no filenames are given on the command line, filenames will be read via standard input.
For example, to rename all files matching f(CW*(C`*.bak*(C' to strip the extension, you might say
rename *(Aqs/e.bak$//*(Aq *.bak
To translate uppercase names to lower, you'd use
rename *(Aqy/A-Z/a-z/*(Aq *
Verbose: print names of files successfully renamed.
No Action: show what files would have been renamed.
Force: overwrite existing files.
No environment variables are used.

The original f(CW*(C`rename*(C' did not check for the existence of target filenames, so had to be used with care. I hope I've fixed that (Robin Barker).


I'm hoping to use the skills in this course to get an internship / job in the web development or software development space. At the moment I just want to try things and see if I enjoy them, so I am hoping this course will give me the chance to experience what it is like to work as a web developer. I think that my biggest strengths in bootcamp will be setting goals and being able to work towards them, I also have some experience with programming so I think this will be helpful as well.
My limitations I would say will be setting my expecations of myself too high and perhaps being a bit of a perfectionist with my work which might hold me back a bit. My biggest non technical challenge will probably be keeping focused for the entire 9 weeks, and not letting myself get complacent or lazy during this time. I think the human skills I want to see developed would definitely be leadership, under the branch of emotional intelligence. I hope that I can develop my ability to be a strong member of a group in that I can not only do my portion of the work but ensure everybody works together smoothly and that others don't get stuck and that everyone understands their role and purpose well.
To me support from the bootcamp team looks like being there to guide me if I get lost and give good feedback on my work, not only on the work itself but whether I could be allocating too much time to one thing and more generally the relative importance of different tasks that we are doing. I think the best type of support is usually hands off in the beginning but always being there to go to in case I have questions, so that I have a chance to figure things out for myself first and develop a stronger problem solving mindset.
For myself at bootcamp I expect to be organised, disciplined and I also expect myself to ask for help whenever I need it. One of my biggest problems in the past has been refusing to ask for help so I hope to remedy this by ensuring that I don't let myself get stuck on things and not find a way to get help with them.
I will manage my workload by using the pomodorro technique which has been helpful for me over the course of foundations. Usually I do my best work alone as I am pretty notorious for being too chatty and distracting around other people. Obviously this isn't always possible so in group work scenarios I want to be focused and goal oriented in my communication so as not to distract other people but communicate in the most helpful way I can. When I need help I want to try and formulate a question that gives me the answers I need to break through the wall or plateau that I am stuck on.
My long term goal is to be able to get a job working in the web development / front-end development space, just to get a feel for what this type of work is about and see if it is something I want to pursue moving forward.
My strengths would be my mindset, rational thinking and setting / achieving goals and milestones. My limitations are sometimes setting standards too high, being impatient and overly critical of myself.
I would like to see my leadership skills developed at EDA, and be more confident in being able to communicate my ideas with a group and help to align people towards a common goal.
I will manage my workload in this program by using the pomodorro technique where I work in 25 minute increments with 5 minute breaks in between. I will manage my time by using timeboxing and tracking the time I spend on different components of the course with Toggl. When I get stuck I will force myself to ask for help as this is something I need to work on. I will ask either the foundations channel on Slack or one of the facillitators if needed when I cannot help myself by first searching Google etc. When things are building up and starting to get to me I will try to let one of the facilitators know and hopefully forumulate with them a way for me to prioritise and chunk out the work ahead of me into a more manageable structure.
I would say what I would expect from the facilitation team would just be to be good listeners and maybe not neccessarily give me answers but more so give me clarity and a direction to move in if I get stuck. I also would expect they could bring a good overarching perspective and help me prioritise parts of the course that are really important over those that are less so. Lastly I would expect that they would be able to give me some insights from their experiences as programmers that might help me gain some perspective that I would not get as somebody just starting out.
Scheduling wise I pretty much have the whole day free, I spend 1 hour at the gym 3 days a week and train / work at a muay thai gym probably 4-5 times a week at around 5-6pm so past this time I would allocate to other things like muay thai, gym, cooking etc.


This page contains some WebGL smaples I made during my learning of WebGL. You can click each link to try each sample directly. You can also browse the source code of each sample at source code.
Those samples are rewritten WebGL versions of Direct3D11Tutorials. Very basic and easy to learn.
Those samples are written during my learning of some rendering effects. One sample corresponds to one certain effect.


--- title: Home ---
I'm David Noursi, a second year student at UChicago. I made this site to record some things I've been working on, and hopefully keep myself productive.
My blog posts can be found below: $partial("templates/post-list.html")$
or at the Archive up top


Hoeness era ends at Bayern Munich as turnover tops €750m
MUNICH, Nov 16 — Uli Hoeness, Bayern Munich's president who revolutionised German football management but was also jailed for tax evasion, stepped down yesterday, handing over the reins of the country's most successful club to former Adidas CEO Herbert Hainer.
With a record turnover topping €750 million (RM3.4 billion) for 2018/19, Hoeness is leaving the club in stellar financial health, having taken over a struggling club in 1979 as general manager and turning it to a global brand.
His departure marks the end of an era for Bayern with the former world champion and European Cup winner having been involved as player, manager or president since 1970.
"It worked well here. I won almost everything that could be won." he told a packed indoor arena after a minutes-long standing ovation.
"For me the club always had to have people at the centre and that is what I tried to do," he said. "It was a wonderful time. That's it. I am done and thank you."
Bayern's annual turnover for 2018-19 topped €750 million, up from €657.4 million the previous fiscal year.
EBITDA rose to €146.1 million, up from €136.5 million the previous season.
The 1974 World Cup winner, Hoeness, served the club as a player from 1970-1979 and took over as general manager, and later president, immediately after his playing career was cut short by injuries.
Outspoken and blunt, Hoeness did not only make friends as he helped Bayern become the richest and most successful club in the country and a powerhouse in Europe that has won five continental crowns.
Hoeness, 67, was reelected in 2016 after being jailed for multi-million euro tax evasion, a crime he admitted to German judges.
He was convicted in March 2014 for evading €28.5 million in taxes through a Swiss bank account, and with his reputation in tatters, the once mighty manager started his jail term in June 2014.
He served half of his 3-1/2-year term before being released and returning to win re-election in 2016. — Reuters