Free Microsoft Azure account for Students

Good news for global students!  If you are a student (current active student having a .edu email account), you can get a FREE Azure cloud computing account from Microsoft today!   The free account includes:

  • Free Azure Web App Service
  • Free MySQL Database from ClearDB
  • Free App Insights
  • Free VS Online Service

With these, you can build and host a web site using MySQL (e.g. host a WordPress web site) with NO cost!

image

For more details visit http://scottge.net/2015/06/30/get-free-microsoft-azure-account-if-you-are-a-student/.

Transpose of a Matrix

The transpose of a matrix A is another matrix image.   The general formula for a matrix transposition is

image

For example,

200px-Matrix_transpose

A square matrix whose transpose is equal to itself is called a symmetric matrix; that is, A is symmetric if

image

Here is the C++ implementation of matrix transposition.  The complete source code of CMatrix can be downloaded from here.

template
CMatrix
CMatrix::transpose() const
{
    CMatrix mat(_columns, _rows);
    for (int i = 0; i < _rows; i++)
        for (int j = 0; j < _columns; j++)
            mat.get(j, i) = get(i, j);

    return mat;
}

Matrix – Matrix Multiplication

Assume two matrices A (a n x m matrix) and B (a m x p matrix) are to be multiplied

image

the matrix product AB is defined to be the n x p matrix:

image

where

image

  • The number of columns in A (m) has to equal the number of rows in B (m).
  • The number of rows in A (n) determines the number of rows in the result AB.
  • The number of columns in B (p) determines the number of columns in the result AB.

For example,

image

Here is the C++ implementation of matrix – matrix multiplication.  The complete source code of CMatrix can be downloaded from here.

template
CMatrix CMatrix::operator*(const CMatrix & v) const
{
    assert(_columns == v._rows);

    T * data = new T[_rows*v._columns];
    if (data == NULL)
    {
        printf("error\n");
        exit(1);
    }

    for (int i = 0; i < _rows; i++)
        for (int j = 0; j < v._columns; j++)
        {
            T & val = data[i + j*_rows];
            val = 0;

            for (int k = 0; k < _columns; k++)
                val += get(i, k)*v.get(k, j);
        }

    return CMatrix(_rows, v._columns, data, true);
}

Matrix – Vector Multiplication

The general formula for a matrix-vector product is image

  • The number of columns in A (n) has to equal the number of components in the vector x (n).
  • The number of rows in A (m) determines the number of components in the result Ax.

For example,

image

Here is the C++ implementation of matrix – vector multiplication.  The complete source code of CMatrix and CVector can be downloaded from here.

template
CVector
CMatrix::operator*(const CVector & v) const
{
    assert(v.Length() == _columns);

    T * data = new T[_rows];
    if (data == NULL)
    {
        printf("error\n");
        exit(1);
    }

    for (int i = 0; i < _rows; i++)
    {
        data[i] = 0;
        for (int j = 0; j < _columns; j++)
            data[i] += get(i, j)*v[j];
    }

    return CVector(_rows, data, true);
}

A Complete List of Data Science Online Classes

The blog is now migrated to http://scottge.net/2015/06/08/complete-list-of-data-science-online-classes/

You can consider online classes from Coursera for self-study.  Coursera provides online classes (most of them are free) offered by university professors, typically attended worldwide by thousands of students and working professionals. In particular, consider the Data Science Specialization from John Hopkins University, which offers a guaranteed certificate demonstrating your ability.

Coursera Courses

Additional online class resources

Acknowledgement

Please share in the comments if you discover any new online courses about Data Science.  I will update the blog post and add your name to the “Acknowledgement”.

Lifesaving tip: Everyone should set up an email delay rule in Microsoft Outlook to avoid regrets

The blog is now migrated to http://scottge.net/2015/06/08/lifesaving-tip-everyone-should-set-up-an-email-delay-rule-in-microsoft-outlook-to-avoid-regrets/

Have you ever sent an email then wished you hadn’t?  Or thought “whoops”, just spotted a mistake?

It’s easy to set Outlook to give you a safety net, where emails sit in your Outbox for a few minutes before being sent – you can fish them back out, make changes and resend if necessary.

image

In Outlook, go into the Manage Rules & Alerts settings (in Outlook 2013, it’s on the HOME ribbon),

image

, and

1. Create a new rule

image

2. Select “Start from a blank rule” / “Apply on messages I send”

image

3. Select “Next” to apply the rule to every message sent (on the “Which condition(s) do you want to check” tab)

image

4. On the “what do you want to do with this message” page, select the “Defer delivery” option and choose the number of minutes

image

Change the theme of Office 2013

Tired of the default theme color of Office 2013?  

You can change the theme in Office by clicking the File->Account page in any Office products with the exception of Outlook.  In Outlook, click File->Office Account to change the theme.

image

 

There are three themes available in Office 2013:

  • White – Default
  • Light Gray
  • Dark Gray