The 7 Steps of Machine Learning

Machine learning simply, nothing complicated. Yufeng explains…

Visit the whole playlist too:



OpenCV 3.4.1 with Visual Studio 2017

  1. Download the prebuilt libraries and extract it (
  2. Create a Visual C++ Console Project by using Visual Studio 2017
  3. Open the project properties by right-clicking the project and clicking Properties
  4. Select x64 from Platform
  5. Under C/C++ go to General > Additional Include Directories, Edit and add directory: YOUR_OPENCV_FOLDER\build\include
  6. Under Linker go to General > Additional Library Directories, Edit and add the directory: YOUR_OPENCV_FOLDER\build\x64\vc15\lib
  7. Under Linker go to Input, Aditional Dependencies add the name of the lib file opencv_world341d.lib which is under the folder build\x64\vc15\lib
  8. Write the code to read an image and display it
  9. Build the project
  10. In the directory of your solution, there is a folder named x64 and sub-folder Debug. Put your image in that folder and run yourProject.exe that you see in the same folder.

Read an image and display it.

include "stdafx.h"
include <opencv2/core/core.hpp>
include <opencv2/highgui/highgui.hpp>
include <iostream>
using namespace cv; using namespace std;

int main(int argc, char** argv) {

Mat image;

image = imread("MehmetImage.jpg", IMREAD_COLOR);

if (! // Check for invalid input
    cout << "Could not open or find the image" << std::endl;
    return -1;

namedWindow("Display window", WINDOW_AUTOSIZE); // Create a window for display.
imshow("Display window", image); // Show our image inside it.

waitKey(0); // Wait for a keystroke in the window
return 0;

#opencv #opencvwithvisualstudio2018 #computervision

Microsoft Build 2018

So many videos and not enough time for all, here is Build 2018
I will share the ones I watch and note them here.

O(1): random access to an…

O(1): random access to an element in a collection, dependent on indexing

O(n): list iterations

O(n^2): nested loops on the same collection

O(log n): divide and conquer

O(n log n): iterations that use divide and conquer

O(n!): adding a nested loop for every input you have

Resource: @DynamicWebPaige

#bigo #big-o

Configuration in .NET Core

#netcore #configuration

Simple self-join with LINQ and SQL

Let’s say we have a table in which we store the various test results of a persons.

PersonId TestId Result
1 IELTS 10
2 TOEFL 10

And assuming that it has been queried and stored in a list of objects.

results= db.Query<PersonResult>(SELECT * FROM Results).ToList();

(This is a Dapper query)

To get the result of one person in one row, we can do a self-join with LINQ as following:

var modifiedList = from r1 in theList.Where(x => x.TestId == "IELTS").ToList()
                   join r2 in theList.Where(x => x.TestId == "TOEFL").ToList()
                   r1.PersonId equals r2.PersonId 
                   select new Person
                                   PersonId= r1.PersonId
                                   TestId = r1.TestId,
                                   ResultToefl= r2.Result
                                   ResultIelts = r1.Resul

Or another way, I think better is to do is with SQL in the server:

t1.PersonId, t1.Result as TOEFLResult, t2.Items AS IELTSResult
FROM Results t1, Results t2
WHERE t1.PersonId= t2.PersonId
AND t1.TestId = 'TOEFL' and t2.TestID='IELTS'
ORDER BY t1.CompletionDate DESC

#linq #sql #self-join #combine-two-rows-sql #merge-two-row-sql-linq #merge-rows

.NET Core and .NET Standard

A nice article from MSDN Magazine:
.NET Standard – Demystifying .NET Core and .NET Standard
And a great video series about .NET Standard from the same author: