Thursday, October 26, 2017

What are top 10 lessons to write a coding blog?

 Oct. 26, 2017

What are the top 10 lessons to write a coding blog?


I like to introduce myself first. I started to write a coding blog from January 2015 just after I failed an algorithm interview in the city of Vancouver, Canada.  As usual, I felt disappointed to myself, but this time I decided to write down my journey. I set up a goal too high for me to reach it. If I cannot be a top player, maybe I should at least try to be the coach for top players one day. Write down my struggle and failure, make it valuable to others.  

As a first time blogger, a coding blog blogger, the first 6 months to 12 months, I was afraid to write down my thoughts as well, and I do not have a lot of ideas to write. But I start to learn how to organize a blog, how to design a blog, how to write in 5 minutes and have a good blog to entertain myself every time I feel down. After 24 months, I have written more than 1000 blogs.

There are millions programmer jobs these days. But do you find that it is hard for you and me to get a desirable job and advance your career successfully? Is it difficult to find a popular name to relate to good and real story about hard work as a software programmer.

In terms of coding blog, do we have a good brand household brand everyone can relate to? Just be brave, dare to be number one, you should start to write your own coding blog starting today. You may be the one who inspire million programmers.

How about a two year old coding blog called Julia coding blog? That is my coding blog: http://juliachencoding.blogspot.ca/.


Top 10 lessons for a coding blog


1.       Coding blog can be very short. Do one thing a time. Work on one algorithm a time. I used to write a blog to review over thirty computer algorithms, it is hard to organize so many algorithms in one blog. 
2.       Write down your coding practice. Stay focus on coding practice. Write down how you feel, do not make it like a textbook, or journal paper, or a conference paper. Include some statistics to help track progress later on.
3.       Be creative. It is your time, you are the author. Think more about serving yourself very well. How can you learn from a coding blog?  You are teaching data structure and algorithm for the future yourself.      
7.       Have some humor. Every time I like to write down something, I notice that I need to practice coding first, or play a contest on HackerRank, or set up a mock interview. No matter how busy I am, I have to find time to write code. Sometimes, it is embarrassing because the ranking of contest, the poor performance I have on the last contest.

8.       Set up a high goal is always a good practice. Learn to be a coach. 
I do have a nephew who just graduated from computer science bachelor degree one year ago. I like to coach him one day to be a top programmer. I need to prepare early, I am more motivated to work for my coding blog.  


  . Discipline yourself. I often try to choose a topic for my blog to make it more outstanding. Once a while, I will choose a bible verse as my blog title. I like to write something with facts, arguments, and also something inspiration. Avoid risky topic to bring controversy.
5.       Make it casual. I also wrote some blogs about tennis sports, top 10 success rules, and other research I do daily.

6.       Read a lot of your own blogs, and rewrite. I got complaints from my friends about grammar errors etc., instead I learn to write and use a new word in each blog, improve and expand my vocabulary.

More about coding blog



Let me explain how I manage my coding blog as a designer, product manager, a thinker and also a code writer and a Hackerrank contest player.  

Coding blog is more controllable 


1     Write a lot, produce a lot of content. I pursuit a lot of goals but failed to achieve, things are not under my control. But a coding blog published using Google blogger, it is very easy to start and manage these days.  

Blog is my product, and I am the product manager of my blog, also I need to do marketing and invest a lot of time to the coding blog product.

Sports training


2     The past 24 months, I played a lot of tennis sports. I train myself to follow professional tennis player, and use the sports to train myself. I like to train myself in a few areas, sports techniques, new school of entertainment, mental toughness, and how coach educate young players, drills of sports, tournaments, rankings. I need a place for me as a sports fan to document the journey as well, share my stories.

     Long term work 


3      Learn how to get more organized and stay connected to my past work experience. I like to write down my thoughts so that I can analyze my thought process later, sometimes an advanced algorithm and data structure takes months and years to master, like union find, regular expression algorithm, dynamic programming.

     Easy to access


4      It is easy for me to write a blog compared to get connected to a person through meetup or other activities.  Also I like to demonstrate how good a person can be to work on a project. How hard it is to work on a goal, like solving an algorithm problem, how many submissions to succeed to solve a problem on Hackerrank.

    Writing Principles



5     I do not have a mentor to help me to write blogs. I need to find out the principles to help me to write, and also help me to think clearly and logically.

    Bad habits 


6     I have a lot of bad habits to get rid of, like impulse shopping, peer pressure, unhealthy diet, and lack of sports training, competitive sports training. One solution is to build a new good habit, write a good coding blog every day.

7     I worked on my computer science Ph.D. program from 2001 to 2011, but those 10 years I did not build a good habit to write programs for data structure and algorithms daily, research daily. Coding blog will force me to stay on the track to work on my crafting skills, a good thinker of algorithm and data structure.

    Community 


8     I like to figure out how I can get more involved in the community I live, I like to be an educator, engineer, counsellor. Coding blog is not a bad choice.

    Less Democratic


9     I read a lot of blogs, and I know that blogging is cheap and efficient way to publish. Although it is not so popular, it is safe and sandbox to get more experience without worrying about down votes.

What are top 10 questions to ask yourself as a software programmer?

Oct. 26, 2017

Plan to write a blog and answer the question on quora.com. The question is "What are top 10 questions to ask yourself as a software programmer?". The link is here.


Oct. 27, 2017

It is the fact that I stay at current job over 7 years. Last 3 years, I work day and night, and try to work on data structure and algorithm, work on solving leetcode algorithms. I finally can say that I can write much more efficient code, wish that I can write a better product for the business.

I ask myself a lot of questions. Let me put down a list first and then sort out by the categories.

New roles 

Can I be a good project manager?
Can I be a product manager to manage myself?

When I document my experience through coding blog, do I demonnstrate good skills as a product manager or project manager?


Hackerrank contests


Do I have more time to play hackerrank contests and win more medals?
Do I regain the passion to play hackerrank contest after I won my first gold medal?
Do I still work hard to study lead board of hackerrank contest and then try to figure out something new to learn?

Do I have freedom to rewrite the whole website using some fancy technology I learn recently?

How long should I choose to work on programming job?
When do I notice that I need constantly review what I have done and then code review, rewrite the code?

Simplify the engineering 



How is the review of cache design in the website?

should I continue to do some research on website cache design issue?


Training 


What percentage is to train myself coding?
When to train myself?
What to train myself?

How to bring people to my working relationships? How to form a circle?


Goals


What is my 6 month goal?
What is my 12 month goal?
How many hours to spend on pluralsight.com to learn some new tecnologies?

What are top 10 surprise to write a coding blog?

Oct. 26, 2017

Plan to write a blog and answer the question I ask on quora.com. Here is the question link.

Oct. 27, 2017

Top 10 surprise:


Most my favorite algorithm is Leetcode 10, regular expression.
Most my favorite time is to practice mock interview
Most my tough time is to try to break into an advanced algorithm on hackerrank contest


I like to write other topics as well. One day I noticed that I wrote down the topic called face paralysis.

Wednesday, October 25, 2017

Code review follow up

Oct. 25, 2017



Introduction


It is a good habit to read code review again and see how many things I should work on to improve my csharp code skills. Today I spent 20 minutes to review the algorithm and wrote the csharp code based on code review.


Follow up


Originally I asked the question on code review community 27 days ago, the experience is documented here called

Thanksgiving campaign No. 1


Oct. 25, 2017

Code review C# code is here. I will look into those changes later. 



Actionable Items


I like to figure out how to market the question on quora.com, therefore, I may have to ask a question and then try to target those undergraduate students who are working on C# course or object-oriented programming. 




Sorting an Array of Values Based on an Array of Keys

Oct. 25, 2017

Introduction



One apple a day, keep doctor away. One program a day, also keep programmer awake. Today a small program keeps me awake to look into a few things, ...

I like to share my practice using C# 2000 things, item 136: Sorting an Array of Values Based on an Array of Keys.

Here is the C# code.

Read the code and enjoy the workout.


Sorting an array using an independent Comparer method

Oct. 25, 2017

Introduction


One apple a day, keep doctor away. One program a day, also keep programmer awake. Today a small program keeps me awake to look into a few things, IComparer vs IComparable. 

I like to share my practice using C# 2000 things, item 137: Sorting an array using an independent Comparer method.

Here is the C# code.

Read the code and enjoy the workout.

Implementing IComparable to Allow Sorting a Custom Type

Oct. 25, 2017

Introduction


One apple a day, keep doctor away. One program a day, also keep programmer awake. Today a small program keeps me awake to look into a few things, IComparer vs IComparable, throw new ArgumentExcecption on line 44. 

I like to share my practice using C# 2000 things, item 135: Implement IComparable to allow sorting a custom type.

Here is the C# code.


Tuesday, October 24, 2017

Hackerrank: Women's CodeSprint 4

Oct. 24, 2017

Introduction


It is the time to play another codesprint this Friday. I thought about yesterday and decided to join until this Thursday, because I need to discipline myself to work on the contest. It is not an easy task because of the busy schedule.

Here is my last two contests on Hackerrank.


I documented the university codesprint 3 contest here. I just could not believe that after the contest, I wrote the blog to celebrate my piece of puzzle to solve NIM game. It is just another contest, and not so good performance. Surprisingly, I got some feedback through a phone call, unbelievable story in the city of Vancouver. 


CodeSprint strategies 


I spent extra 20 minutes to look up bible verse for my contest. Here is bible version Proverb 13:4 for my woman codesprint 4.

Statistics


The blog was written from 6:00 am to 6:20 am, Oct. 24, 2017. I just came back from China and went back to work starting from Oct. 23, 2017. I need to get rid of jet lag, I came back on Oct. 20, and this is the fourth morning with jet lag, I went to bed around 8:00 PM, and woke up around 3:00 AM, and then read wechat to 5:00 am, and got up at 5:30 am.  



Leetcode: binary tree upside down (II)

Oct. 24, 2017

Introduction


It only takes around 20 minutes to read a recursive solution on the panel of Leetcode discussion. I read the solution this morning around 3:00 am. Now it is 5:43 am, I got up and started to work on my computer and blog this algorithm.

Code study 


It is better for me to choose one of discussion, and check in the code, and then plan to write C# solution later. 

Here is the discussion link.

Analysis 


Most important is to read yfcheng's analysis. Plan to spend 20 minutes to read and also review the drawings. And then I will write down my own words, and make a drawing as well.

Java code 



Recursive solution in Java code:

Iterative solution in Java code:


Actionable Item


I finished the blog at 6:00 AM, only 15 minutes. Will come back to work on the algorithm based on the discussion. 

Monday, October 23, 2017

What one tip changed your writing forever?

Oct. 23, 2017

Introduction

It is now 7:48 am, I finished my morning work from 5:00 am to 7:50 am, last 5 minutes I wrote an answer on quora. Here is the link: What one tip changed your writing forever?

Finally I need to take some time off and prepare for my breakfast and lunch and go to work.


IIS administration

Oct. 23, 2017

Introduction


It is time for me to get back to work on Internet Information Server (IIS) administration after the vacation. I delayed the project because of my China vacation.

Plan to watch a few of Microsoft IIS administration videos first.


Outco research

Oct. 23, 2017

Introduction


It is Monday morning, 6:14 am. I plan to spend next 30 minutes to do research about outco through yelp. The link is here.

Word of mouth marketing is the best one and I could not pass this one. I got an invitation for a mock interview practice "upside down binary tree" last Saturday, and then at the end of practice the peer shared her experience with outco career counseling.


The research


Plan to read all recommendations on yelp.com first.

Read this answer on quora.com, the link is here.

Actionable Item


Think about providing career counseling service as well. Need to figure out who is the competitor, and most valuable content in the teaching material.

Good morning Vancouver!

Oct. 23, 2017

Introduction


It is the first day to go back to work for MP Lighting after 2 weeks vacation. I got up around 4:30 am, and then I have chance to work on some preparation before I leave the home.

Now it is 5:06 am. Although the jet lag is hard to play with, I feel that it will be a wonderful day.




Yichun university study

Oct. 23, 2017

Introduction


I like to do some research on Yichun university, and see if I should put something into my daily routine.

I had chance to meet my high school classmate during October vacation back to China. My classmate started to work for the university starting from 2016. He got a EE ph.d. degree from USA and then he plans to work for the university for a few years. I did have chance to talk to my other classmates who are professors in the university working there over 20 years as well.



Sunday, October 22, 2017

Leetcode: binary tree upside down

Oct. 22, 2017

Introduction


It is so nice to get a friend's help to offer me to mock interview the algorithm "binary tree upside down". I spent around 100 minutes to work on this algorithm.

Here is the C# code I wrote in the mock interview on Oct. 21, 2017 from 8:00 pm - 9: 53 pm.


Follow up 


Plan to read the leetcode discussion on the algorithm, the link is here.




Yichun to Shanghai train trip

Oct. 22, 2017

Introduction


It is less than 5 hours trip from Yichun to Shanghai. I gave myself an assignment while I experienced the travel by taking the high speed train with over 200KM/ hour. The assignment is to evaluate an algorithm lecture note: 2.2 MergeSort by Robert Sedgewick | Kevin Wayne, 5 hours is long enough for me to work on something involving some reading and also not so stressful.

Of course, I like to write a blog to document my review and then help myself to master the algorithm and also it is fun to challenge the best lecture note in the world.

Ticket Study


One thing I noticed on the ticket is the advertisement information. How good it is for the business to thrive in current date. The advertisement is specific for me or for all the customers, interesting to read.

Before the travel back to China, I spent over one hour to study on youtube.com how to travel safely with tips, how to pack clothes and how to organize the trips.

Also based on my last year experience, I sponsored one of sisters to travel to Beijing and toured the city with me. Bible verse I used to guide me for the planning is Ecclesiasters 4:10 For if either of them falls, the one will lift up his companion. but woe to the one who falls when there is not another to lift him up.

Here is the ticket snapshot:

I am learning design principles and art of design, so it is one of my hobby to evaluate how the ticket is organized with so many information. I like to check the layout, and the fonts and then other things later. 


Algorithm lecture note review


It was so much fun to go over lecture notes while I was travelling on the train. But now it is Oct. 22, 2017, 11:44 PM, I need to write down some review notes to help me to master the algorithm.


Page 1 lecture note review


Page 1, five topics for merge sort, can I name all five topics:

1. mergesort
2. bottom-up mergesort
3. sorting complexity
4. comparators
5. stability

Review note: Google "bottom-up mergesort" and see if there is anything interesting on the topic.

Watch 3 minutes video here. Lecture video 23 minutes is here. Stackoverflow question is here. Quora answer is here.

Vocabulary to master:

1. Proposition
2. Proof sketch
3. Recurrence

Saturday, October 21, 2017

Subway to Shanghai pudong airport

Oct. 21, 2017


Introduction


It is a good idea to document things I did in the city of Shanghai, I have to take time to allow myself experience various public transit. One thing I did is to take public transit to Shanghai PuDong airport costing $8 Chinese Yuan compared to take a taxi over $200. From my hotel in west area of city to east side of city, it takes more 20 KM and over 100 minutes to take the subway.

User experience 


A few years ago, my college classmate of Shanghai Jiaotong university class 70141 shared the tip to me. It is better to travel to China in October, usually the summer is the time for parents to take their kids to travel to China for summer break. My classmate is a Ph.D. of university of California, and a principal scientist of broadcom. I took her advice and started to travel every year October starting from 2015. 

I downloaded a map from baidu.com map to show how to transfer from subway line 9 to line 2 and then continue to transfer two times to Pudong airport.

Here is the offline route for the travel. I like to highlight a few things very good for first time user to use this guide, and see how good the design is.




Actionable Item


Evaluate how good badiu.com make a map and direction. Highlight three things I like and the information are helpful for me to travel.

Plan to show the selfie I took when taking the subway. It was so comfortable and I was so relax.






Instagram - new playground for the weekend

Oct. 21, 2017

Introduction


It is the long recovery process to go over the jet lag. I had tough time to adjust the time and then I played so many videos this morning from 3:00 am to 7:00 am, one of my favorites is to go over tennis WTA/ ATP player instagram account.

It is hard for me to work with privacy of friends, family and relatives. The vacation I took from Oct. 5 to Oct. 20, I met so many people and those people help me to shape my view of Beijing, Yichun, Shanghai, and help me to relax and enjoy the vacation. I may break some privacy and post the photos I do not have permissions to share.

I will try and see who are those people to read Instagram and what to post in order to show my appreciation to those hard working people I met, and the country I love and great experience I had.


My playground 



Plan to go over those Instagram account  I follows, 99% are WTA/ ATP players. I will study how they share and write for their post first, and then accordingly, I will write 20 - 30 posts for my vacation from Oct. 5 - Oct. 20, 2017.

My instagram is here.


Friday, October 20, 2017

Leetcode: Edit Distance - 30 minutes talk

Oct. 20, 2017

Introduction


It is very interesting to spend time with my relative, a 22 year old in the city of Yichun. He is a computer science graduate from top universities in 2016, and he plans to take graduate admission test for a computer science master degree at the end of 2017.

30 minutes talk 


I am very open to the new idea. What I have to do is to continue to support my nephew for Canada sponsor application and then also help him to build a career in computer science field. 

It is very good for my nephew to get some skills to help his parents to manage a restaurant. I also prefer to encourage him to get more education instead of working in industry to work for some one else. 

I did spent 30 minutes to test his coding skills, and practiced my lecturing skills during my vacation, this is the second chat. He was getting better, I still had no idea how he learns and what is his learning style.  

Here are my notes I wrote on a piece of paper about the algorithm. The algorithm is documented in detail here. 



Highlights of talk 


I spent a few minutes to explain the possible deletion distance between two words "heat" and "hit". The minimum deletion distance is 3, including deletion of two chars ('e' and 'a') in the word "heat" and one deletion of chars ('i') in the word "hit".

The naive deletion distance 5 can be implemented by deletion of 3 chars in "heat" from second char to last char, and deletion of chars in "hit" from second char to last char.

I used two words "abc" and "defg" and explained the deletion distance of two words. The possible choice to delete a char each time is 2, and there are 7 choices, so it is 27.


Actionable Item



Teaching was fun even though my nephew is a rookie in algorithm and data structure, he did not ask any question and surfed wechat while I was talking. He told me to continue and I was not sure if he understood the algorithm or not.






Research about Yichun city

Oct. 20, 2017

Introduction


It is very interesting to spend time to do research on my home town, the city of Yichun during my vacation from Oct. 5 to Oct. 20, 2017. I just like to document my learning here and see if I can make some progress later on.

I have four siblings living there, 3 sisters and one brother. One of my elder sisters is a physician working for a hospital called The Third People's Hospital of Yichun, she also teaches in the university of Yichun part time, and last few years she is also a partner for a retirement living facility in the neighborhood cities and a provider of medical advise. My young sister is the lecturer of biochemistry over 20 years in the university of Yichun; My young brother and sister-in-law invested some money, and decided to take over a small business and manage to make it profitable last 24 months, a small restaurant called 宜春陆记馄饨店 starting from 2 years ago, manage to hire a few employees last 12 months.


Vacation Experinence 


One favorite thing I did in vacation is to visit the restaurant and asked help for my daily activities. For example, I do not have china phone number, so I have to ask my sister-in-law to get me a rental car using 滴滴快车. Also I learn how people work hard in restaurant and experience so many things including talking to customers, ordering food, and catering friends in the restaurant.




China Open 2017 Quarter Final - Jelena Ostapenko

Oct. 20, 2017

Introduction


I went back to China and spent whole day on Oct. 6 to watch China open, one match I watched is for Jelena Ostapenko to play against Sorana Cirstea, a Romania ranking 37.

My favorite memory is the picture I took in the match. The coach of Ostapenko talked to Ostapenko in the short break of the match.




Quick catch up


Now it is the first day back to Vancouver after the vacation, it is 7:45 PM Oct. 20, 2017. I quickly looked up Ostapenko's coach and catch up more about the coach.

Here is one minute coaching video to show how the coach talked to Ostapenko. I like the coaching style.

One minute video is here called Ostapenko and Anabel Medina Garrigues. 

Here is the highlight of match - a quaterfinal match in China, I saw myself in the video to watch the game, video 4:18 - 4:20/ 5:06.

Jelena Ostapenko vs Sorana Cirstea Highlights China Open 2017



Actionable Items


I set a new wall paper for my cellular phone starting this Oct. 6, 2017. The picture of China open and the player Ostapenko. Actually it is the picture above I took to show the coach talking to Ostapenko in China Open. It just reminds me everyday no matter how good you are, you are always better to have a coach and get some insights.

Julia, it is better to write down 1 minute coaching from the above video:

Ostapenko and Anabel Medina Garrigues


"The problem is that you are not serving good, 35%; You are making a lot of unforced errors, so we have to, we have to miss (?) less, try to serve better.  0:20/ 0:55, you can play, of course, 6 to 1, do not say that. Do not say that. 0:24/ 0:55 When you are running, try to close the court. Do not open to her. 0:32/ 0:55 What I am doing here, you call me.  Try to complain or try to win the match. Because of that, you call me. Keep fighting, keep fighting. She is no. 6 in the world. She is not giving you the match. She will fight, you fight soon (?). And try to learn, this is good for you. "


Tuesday, October 3, 2017

Unsleep night in the city of Vancouver

Oct. 3, 2017

Introduction

I will take a flight Oct. 4 2017, in order to get rid of jet lag, I am planning sleep a few hours and then enjoy the adventure to surf the internet.

My best companion is 40 minutes video of Maria Sharapova, now it 8:27 PM. I just started second round to watch the interview, and then prepare to pack for my trip to China. The video is called Maria Sharapova on the Keys to Building Grit and Discipline.

Now it is 9:12 Pm, I am going over another 50 minutes interview with Lewis Howes, Unstoppable in Tennis. I am still packing and trying to figure out something good check list to show I am getting organized and more creative this time. The video link is here.

I have a food campaign to bring North America snacks to China, and let my relatives taste the food culture. All the snacks I bought are from Costco.


Count Down For a vacation

Oct. 3, 2017

Introduction


I like to write a short blog about how important the vacation is good for a programmer. The talk can be considered in more than 3 ways, experience the traffic tools in modern societies; second it is to catch up mobile phone app trend; third is to get to learn how to communicate face-to-face with relatives, friends, families, art or science.


Facts about living in Vancouver


I do not take any travel using airplane since last October China trip. So my experience of international travel will be fascinated. Using Canada airline and get connected to people through the travel. I am not the lady you neighbor open a bible and read very carefully, but I met one last year travel, and I also met a young lady Ph.D. just finished post doctor study in Calgary and went back to China, she explained to me how a Ph.D. these days completes 3 -5 post doctor research before she lands a permanent teaching job. Sounds fancy? Continue.

Beijing is most developed city in China, so on the plane I definitely met some parents who are helping their kids to get education in the city of Vancouver. A little bit chat about education and family etc. It seems that I am ready for vacation.


Is it a clone?


The programmer is good at copy and paste, is this a clone of vacation. Last year I went to China, took air Canada airline, watched China Open, I do exactly same thing. I like to say that the idea is the same, but I added a few modifications.

To be continued!



Sunday, October 1, 2017

University code sprint #3 - Bob's Game

Oct. 1, 2017

Introduction


It is the busy day, a Sunday. I got a flat tire yesterday, I felt lucky to get flat tire when I walked out my home around 6 PM and I saw the flat tire. The worst thing is that I get a flat tire when I am driving on the road, or I walk to the car after one day work. I should work on the tire to get it replaced since more than 3 weeks ago a young man stopped at traffic night inside the car told me that I have a tire almost flat and I need to take care of it.

I joined CAA last night and had to work on fixing the tire.

The contest I played yesterday I did not score anything, I started around 2:00 PM, and then I tried to prepare China trip next Wednesday, and then I went over the documents I had. In the evening I worked on the third medium algorithm but I spent around 2 hours, but I did not make it. It is a medium algorithm with maximum score 50. I did work on a test case: ["...",".K.","..K"], I found out that I need to handle intermediate position of K each step.

Here is the C# code I submitted a few times and only passed test case 1.



Love the failure



I always know that I am not very competitive programmer, I have to work on medium algorithm very carefully. Otherwise, I may spend time but score 0.

I plan to work on those algorithm in university codesprint #3 after the contest one by one. I like to show that I am working hard and also learning things. Plan to ask questions on code review website as well.

Piece of puzzle to learn NIM game


It is like playing chess to figure out NIM game, I put down some drawing to work on the algorithm. I figured out I failed the test case, and then I like to show my drawings. I am the engineer who was trying to figure out NIM game by myself, around 8:00 PM - 10:00 PM Sept. 30, 2017 Saturday night.

Mark the night as a hardworking Vancouver programmer Julia Chen chose to work on, let us call it NIM game night. Here is the drawing to figure out a test case for the game:



Saturday, September 30, 2017

University codesprint #3: The Snake vs the Wind

Sept. 30, 2017

Introduction

It is 2:40 PM. I plan to spend 20 minutes to read the algorithm problem statement.

Algorithm practice 



University codesprint 3: Erupting Volcanoes

Sept. 30, 2017

Introduction


It is 2:31 PM. I plan to work on the university codesprint next 10 hours. The erupting volcanoes is the algorithm to calculate the maximum value in the range of rectangle.


Anastasija Sevastova - tennis professional player

Sept. 30, 2017

Introduction



It is challenge to do some research about the player, I knew her since she beat Sharapova in fourth of U.S. Open 2017 fourth round. Today China open Sharapova revenged and beat her to play first round against her.

Study hard


The player information can be found here, and the author is tennis writer, I started to follow Steve Tignor on twitter.



Thursday, September 28, 2017

Thanksgiving campaign No. 1

Sept. 28, 2017

Introduction


I plan to do some campaign for Canada thanksgiving holiday, to express my great holiday spirit. First activity is to ask a question on code review website. I miss those people who helped me from Nov. 2016 to March 2017, I like to go back to be one member of community.

It is so nice to experience the code review again tonight. I just posted the algorithm in less than 10 minutes ago around 10:30 PM, the best programmer already edited my post to fix style issues, grammar errors, clarify the problem statement by going over the content. The user profile is 200 Success, who is the moderator.

I miss the people to review my code, help me to become a better competitive programmer starting from Nov. 2016. After 6 months break, I finally decide to go back to routine to ask questions on code review website.


Thanksgiving activities


This past year is the tough for me physically, first time in my life I feel the uncomfortable on my right knee. I experience some short memory loss compared to strong memory before, for instance, I forget a friend's name if I have not met him last 6 months. I feel different specially I have to handle a deep pocket of my big tooth left side jaw, and I feel that aging is a university and I have to work hard to catch up learning how to deal with those new challenges.

I like to ask myself what I should do to stay connected to those people helping me grow as a software programmer. Those people help me, touch my heart to make my algorithm practice so interesting and also so rewarding. One of them is JS1 who shared the great advice for my coding solution.

Here is the snapshot to show how good the work is, I learn to improve my English writing so efficiently:


Here is my code review algorithm Find the smallest substring that contains some given subset of characters. Twitter link is here. 

Follow up


Oct. 25, 2017

code review C# code is here.

Code review "LINQ and string.Split do it yourself practice"

Sept. 28, 2017

Introduction



It is time to review the algorithm again. I posted the question more than 5 month ago, the link is here.


Algorithm Practice


I had a mock interview and the peer chose to use C++ language. I did some research how to translate those four lines of C# code to C++ language.


I just could not believe that one day I can write a product using C# advanced feature like LINQ, write regular expression and groupby clause and where clause. I am so excited to set a small goal for my next project.

Time complexity analysis

Sept. 28, 2017

Introduction


It was busy day on Sept. 27, and I had a mock interview at 10:00 pm on recursive function. My issue is how to analyze the time complexity.

Algorithm Practice


C# practice is here.

If all keys in the dictionary are put into a tree, and all the nodes will be visited once using depth first search. So the time complexity should be the size of the tree. Recursive function is used, so no need to extra space to store all the nodes.





Wednesday, September 27, 2017

Canada thanksgiving day - Oct. 9 , 2017

Sept. 27, 2017

Introduction


Thanksgiving day is coming very soon. I used to spend thanksgiving in November since I stayed in United States from 1996 to 2010. This thanksgiving day I will spend time in China and have vacation in the city of Beijing, and a trip to one of mountains called Yellow Mountain, a trip to my home town - city of Yichun, and visit of the city of Shenzhen and Shanghai.

Am I ready for thanksgiving?


This month I attended the techfest in the city of Vancouver, I spent 20 dollars and got a drink, and met a few tech companies and learned a few things. So many thanks to the hard working people in Vancouver area, I learned so many things through the generosity of those employers.

Give thanks to those companies help me grow my talent? Stackoverflow, Amazon, Google, Microsoft, Vision Critical, Global Relay, Copperleaf, Viser Inc., Pramp, Refdash, Hackerrank, MP Lighting.  

Give thanks to friends all over the world, visit me in the city of Vancouver.


C# tutorial (II)

Introduction



I start from the first page of A tour of C# today. I spent one hour to study the book again, and then I did some research on the argument in the page 1. Here is the statement:

To ensure that C# programs and libraries can evolve over time in a compatible manner, much emphasis has been placed on versioning in C#’s design. Many programming languages pay little attention to this issue, and, as a result, programs written in those languages break more often than necessary when newer versions of dependent libraries are introduced. Aspects of C#’s design that were directly influenced by versioning considerations include the separate virtual and overridemodifiers, the rules for method overload resolution, and support for explicit interface member declarations.

C# tutorial 


I google using keyword "versioning in C#'s design", and I read a few articles. 

Stackoverflow link is here by Eric Lipert, and read one blog called Not every IEnumerable is Object. 

Next, I like to google what language lacks of versioning in C#'s design, Java? Or C++? I am very interested to find out.

Will come back with more. 

Tuesday, September 26, 2017

My best friend knee pain

Sept. 26, 2017

Introduction



It is the first time in my life I start to feel something uncomfortable with my right knee. I have enjoyed hundreds of hours tennis sports, but I have to spend time to study "tennis knee".

Life is my best teacher, and my knee pain is becoming my best friend. Come and go, I never know. I try to put something between with hiking, tennis sports, long hours walk.

I need the wisdom and I miss the fun to run around the tennis court. Every time I like to go outside and enjoy the outdoor, my knee pain may let me down in past few months.


Do not count wrong doings (II)

Sept. 26, 2017

Introduction


I wrote my first blog called "Do not count wrong doings" a few months ago. The link is here. And today I like to spend 10 minutes to write how I learn to make a dough after 150 lb wheat flour experience.


Hundreds of baking


Today it is the first time I was so patient to allow myself to learn how to make a dough using two cups wheat flour. I spent 20 minutes to read, and one of my research topic tonight is "how long the rise dough should last", I watched some videos and also read some articles as well.

I started to prepare a dough around 8:00 PM, I checked after 45 minutes, it is not ready, and then I did research to compare wheat flour with bleached flour. Before I started mock interview around 10:00 PM, it was not fully rise.  After I finished my mock interview around 11:47 PM, almost  three hours the dough was fully rise.

I baked great bread like a commercial wheat flour break first time, and tasted so good.

I bake so many times and so often. But it is my knee pain recently to teach me how I should do a fully research before I make a dough, be super patient and give myself learning opportunity, read more and get better understanding.

I learn and enjoy the teaching from the video and the article, the links will be added later.

Tennis champ Sloane Stephen study

Sept. 26, 2017

Introduction


It is fun to study the tennis champion of US open 2017 Sloane Stephan. I have 30 minutes to dedicate the study of the tennis player, now it is 9:17 PM, and I will have to work on mock interview starting from 9:55 PM. Let me have a good time to get educated and also entertained.

Sloane Stephen tennis star


First, let me catch a video lasting 4 minutes, called "Tennis Champ Sloane Stephens on Winning US Open". The video link is here.

Second and always, I like to watch one of her practice videos. So I can learn more her as a player, how hard she works in the practice. 14 minutes video called "Teenage Sloane Stephens on Trans World Sport" in 2013 when she was 20 years old.

Plan to study The Legacy Agency (TLA) sports marketing John Tobias. The video link is here.





Monday, September 25, 2017

Leetcode 76: Find smallest substring

Sept. 25, 2017

Introduction


It is the classical algorithm similar to Leetcode 76. I already practiced more than two times, and I stumbled on the algorithm again. The mock interview started from 10:00 PM, and I started first to work on the algorithm, first 12 minutes I spent the time to explain the idea to solve the problem, and then I spent 18 minutes to write the code and thought out loud.

I found a secret. When I am too busy at work, I need somehow to remind myself, what is most important thing to work on.

It is true that most important is to train myself with basics, and learn how to work with the peer in more efficient way.

By going over mock interview, I have chance to educate myself, get more advice, and then I can start to apply to my current job. One mock interview a time, I figure out my weakness every time.

Last mock interview I found the issue of my understanding C# Array, and I spent 4 hours to work on Csharp 2000 things. I wrote a blog and then found "Csharp 2000 things" website, and I really enjoy learning from the short snippet.

Algorithm Practice 


C# code is here. I did not finish code in 30 minutes. I need to work on the left pointer while loop.

After Mock practice



C# code is here, with unique array "xyz" and string "xxxyz", the maximum substring is "xyz".  But failed on several issues.

Line 75, 76, if the visit char is not in the hashmap, the code will have run-time exception.
Line 89, the while loop condition to check if left pointer should move should be changed, one case is that the char is not in the hashmap, or if it is in the hashmap and also its value is negative.

Continue to update C# code, next version is here. The fix is on line 106,
   map[str[left]] ++;  // once the substring is found, and then left pointer should be moved to right, increment the hashmap on the char's count.

Continue to update C# code, the fourth version is here. The run time exception bug is fixed.

Continue to update C# code, the fifth version is here. The feature is added to remove the char not in the array when left pointer is handled.

Last two practices


Review last two practices, the link is here.


Actionable Item


It is so interesting to learn from my experience. It takes me over 3 years to learn the string search algorithm using sliding window. I still remembered that in January 2015, I spent a week every day after the work, wrote a lot of code on papers and tried to figure out the algorithm. At the end of the week, I decide to become a blogger to write blogs every day to track my progress.

I failed in 30 minutes to solve the problem, and failed in a week, and then failed after a few months, I wrote a blog in June 2015, the link is here.

Plan to study the algorithm "Length of the longest substring without repeating characters" on geeksforgeeks.org.


Train my eye to catch common bugs


Those three bugs in my first writing are common ones. The first one is related to hashmap, the dictionary to store unique characters. We need to check if the key is existing in the dictionary first. The second one is to discuss two options for the character, either in the dictionary or not in the dictionary. The third one is to maintain the dictionary value by checking increment and decrement correctly.

Nothing is new in terms of bug type. All I have to do is to review the code while I am doing whiteboard testing, think out loud, and ask myself what possible bugs are in the code.


Unstoppable: My Life So Far - Maria Sharapova With Charlie Rose

Sept. 25, 2017


I watched the video to sacrifice my sleep time. Now it is 12:12 Am, I am in the middle of 20 minutes interview video. I could not believe that the conversation is so intense about how Sharapova shares her success and her great insights. 

Unstoppable: My Life So Far - Maria Sharapova With Charlie Rose. 21 minutes video is here.

Sunday, September 24, 2017

Quora research a weekend

Sept. 24, 2017

Introduction



I spent the weekend to work on quora.com and try to figure out how to work with Quora better. So I asked a few questions, and also wrote a few answers. I like to show my work and show some statistics for one weekend work.

I did sacrifice and chose not to work on mock interview, not to take pluralsight courses, not play any contest. What I did is to play with quora, and see if I can reach out more people in short time to produce something and meet new people through the internet world.

Progress report 


First, I like to show the graph with some statistics.


I got 6.3k answer views. I got those in less than 3 days. People are spending more time on Quora and get more connected. I am kind of thinking to do more research and then I just do it, with so many blogs I wrote it is not time consuming to put together something to share with people.

I tried to answer a most popular question first, I got 620 views.

How can I improve my programming skills?
Here is my answer.

Next I answered one of question about Hackerrank.

Most surprising one is this one, I got 3K views.

How often should a programmer practice mock interviews, I asked the question and also gave out the answer. My answer link is here.

Everything starts from one email last Thursday from refdash.com invitation email to share my experience, answer one question called "What is your review of Refdash.com".

Unstoppable Sharapova

Sept. 24, 2017

Interview with BBC


Plan to watch 22 minutes video interview of Sharapova called: "Unstoppable Sharapova". The link is here. Now it is 11:07 PM, I will spend 20 minutes to go over the interview.

Now it is 11:26 PM. I am planning to watch the second time, and take a few lines of notes.

21:41/ 22:31
Question: Before your suspension, you think about retiring at 30 of birthday.
Answer: I think that understanding of motivation I still have, and really the discipline I can give. ? All myself I have. (12:56) And also it is understanding of body of 30 years old woman can do. The tennis sports is ... (22:04) But if you treat it ..  (22:08) training, so many ways to train, avoid long distance running and weight lifting.

Interview with USA famous journalist


Unstoppable: My Life So Far - Maria Sharapova With Charlie Rose. 21 minutes video is here.

Think Like a Fox

Sept. 24, 2017

Introduction


It is Sunday light and I was busy working with vacation planning in the city of Beijing. I like to do some research. Think like a fox, I have three things to work on. Now it is 10:43 PM, I like to relax and have some research.

One is Chinese version, the Chinese article posted on the faccebook. Here is the link.

The 22 minutes video of commencement talk of Yale by the psychology professor, the link is here.

The speeches English transcript is here.

The professor profile is here, wiki page is here.

More research:

The one hour speech "Emotional intelligence and daily practice" on youtube more than 302K views, plan to watch this video and get some good ideas. The link is here.









University Codesprint #3

Sept. 24, 2017

Introduction


It is getting busy at work and also prepare to have a 2-weeks vacation starting from Oct. 4, 2017. I have to do some research on Asp.net framework, and also need to catch up C# programming, prepare to do some analysis of sales. So I do not have time to practice more algorithm for next contest.

It is coming. My next contest is university codesprint this coming Saturday. I like to prepare and play the contest.

It is easy to set a goal to work hard on hackerrank contest. After I won my first gold medal, I find that it takes a lot of sacrifice to attend the contest. I need to focus on the contest, spend enough hours to work on the contest.


Preparation talk


How to prepare for my next contest? I like to do some research and get prepared early.



Saturday, September 23, 2017

.Net framework study

Sept. 23, 2017

Plan to take some courses related to .NET on pluralsight.com.  I need to work on migration of Asp.net web server and database server.


Binary search practice

Sept. 22, 2017

Introduction


I had a mocking at 10:00 pm and then I was told to write the program to find a number using binary search. I failed 5 out of 6 test cases, index out of range, and then I was told to comment out the code of binary search function, and then nail down the bug related to implicit typing "var" on line 47.


Algorithm practice 


My binary search practice is here.


Coding with style 


I spent almost 40 minutes to chat with the peer about coding. I really like the conversation between two programmers. I advised the peer to write self-documented code, in other words, do not write variable name l, h which l stands for low and h stands for high. Express the intent, define a meaningful explanation variable. And also I advised the peer to do whiteboard testing, and showed him an example, run the code line by line and execute the code with the result calculated by myself.


Write simple and clean code


The peer asked me how I can have so much time to play hackerrank contest, ask code review algorithm questions, and then write blogs.

I shared a few things:

1. The blog I did code review for myself, the triangle algorithm.

2. Edit distance dynamic programming post on quora.com. The link is here.

Thoughts after mocking


I think that writing coding blog is easier compared to write code at work. To ask a question on code review website is also easy compared to solve problems at work. I think that the experience of writing blogs is very rewarding experience, my blog is becoming my best reading library.

Thursday, September 21, 2017

Recurrence practice

Sept. 21, 2017

Introduction


It was good practice to go over the algorithm using recurrence formula. The basic algebra is applied to solve the problem, but there is something missing and I need to clarify it later on.


Algorithm practice 


Here is my C# practice.

I still remembered that more than 3 months ago the first time I worked on the algorithm, I was kind of nervous for a few hours. The first 30 minutes to interview the peer using the algorithm also brought the stress for me.

Strangely, the feeling of stress is gone. Now I am getting used to work on the recurrence, simple algebra. I understand that it is important to keep training and practice daily, therefore I can build muscle for great thinking and analysis one day.


Actionable Item


Go over lecture notes by Jessica Su, the link is here.

Mathematics proof

Sept. 21, 2017

Introduction



Life is much easy as a programmer once I learn how to write clean code for humans, learn simple things like TED principle, how to break giant expression to write simple code. One thing I have to learn is to make algorithm as simple as possible, go back to my favorite topic - reasoning and analysis, my favorite exercise is to prove something based on axioms.

Today 10:00 pm I had chance to share my proof to the peer how to argue the array is still not descending after the change. The reasoning was very well welcomed by the peer, I got 5 as a reward, top points as an interviewer.

I learned the lesson first time in my life through my real experience. I was told to prove that binary search is most efficient way to solve the search algorithm from 1 to n. I learned the lesson so today I asked the peer the question how to prove his assumption. He could not do it, I showed him in quick 5 minutes talk.

I know that one day I will need some advanced mathematics skills to handle some task. Today it is the first time I showed the proof to a peer. I miss the fun to prove so many mathematics when I was young.

Algorithm practice proof 



Supposing that there is an sorted array with distinct integer, denoted as array, how to prove that new array based on array[i] - i is not descending.

My argument is simple, since the array is sorted in ascending order, we have array[i + 1] > array[i] for any i >= 0. Based on the fact that array has distinct integer, it is not possible that array[i + 1] == arr[i]. So my next argument is that the increment is at least 1, in other words, array[i + 1] - array[i] >= 1 for any i >=0. Next step, ascending distinct array {0, 1, 2, ..., n-1} has increment 1. So array[i] - i >= 0.

I was challenged by the peer what kind of interview I prepare for. I just laughed and answered his question. I learned from the real life lesson, I have to give out mathematics proof to show my real interest and talent.

Counter example


Two ascending sorted array, the difference can not be assumed to be non-descending order. The first ascending array is Array[i] = i, second ascending array is secondArray[i] = 2 * i, the new array Array[i] - secondArray[i] = - i, which is descending.

Actionable Item 



Write down my proof that binary search O(logn) is most efficient solution.

My second answer on quora.com - dynamic programming

Sept. 21, 2017

Introduction


I am nervous to post the answer on quora.com, because people can vote down/ up and it is most popular website among programmers. Sometimes I need a safe sandbox to practice my thinking and come back later to make frequent visits, and make the content more readable and have some value.

But I answered one of questions, my favorite topic "Dynamic programming".

Here is the answer: How can I get good at dynamic programming?

Quora is my new school

Sept. 21, 2017

Introduction


Surprisingly today I got an email to share my experience from refdash.com on quora.com. I understood that it is very important for me to show appreciation to all the people to help me grow my career. I did post an answer, and also set up a blog on quora.com and wrote a first post based on my previous blog. The fact is that my blog called "Mocking interview facts and tips" only has 130 views since August 2017, I like to find out if there are more readers on quora.com.

My new school 


Wednesday, September 20, 2017

Leetcode 171: Missing Ranges

Sept. 20, 2017

Plan to work on the algorithm called "Missing Ranges". The leetcode discussion link is here.

Problem statement:

Given a sorted integer array where the range of elements are [lower, upper] inclusive, return its missing ranges.
For example, given [0, 1, 3, 50, 75], lower = 0 and upper = 99, return ["2", "4->49", "51->74", "76->99"].

Understanding C# Array class

Sept. 20, 2017

Introduction


I had a mocking interview at 10:00 pm, and I like to write Array.IndexOf but I need to search Google for the help. I asked myself why it is not array.IndexOf() instead of calling an abstract class Array.IndexOf assuming that array is an object of Array class.

Here is my C# practice. I has a few issues to use Array.IndexOf instead of using hashmap to save the index.

Understanding C# Array


I like to read a few articles to get more educated on C# Array.

Read c# Array -
Read 10 minutes - C# Arrays Tutorial
https://msdn.microsoft.com/en-us/library/aa288453(v=vs.71).aspx

20 minutes reading:
http://www.c-sharpcorner.com/article/working-with-arrays-in-C-Sharp/

Study stackoverflow posts related to C# Array -

More reading:
https://www.codeproject.com/Articles/6118/All-about-abstract-classes



Csharp 2000 things



Work on C# 2000 things, the following image is highlighted by search keyword: Array


Plan to spend 10 minutes for each item related to Array, some of them are Julia's favorites.

#136, Sorting an Array of Values Based on an Array

Julia's ranking: 10 out of 10

#135, Implementing IComparable to Allow Sorting a Custom Type

9 out 10

#137, Sorting an Array Using an Independent Comparer method

9 out 10


Actionable Items



Plan to work on medium level algorithm called "Non-overlapping intervals". The link is here.


Follow up 


June 8, 2018

I spent over 20 minutes to look into more carefully about C# Array abstract class. It is true that Array.IndexOf is a static method, so that the call of the function should look like Array.IndexOf, instead of str.IndexOf. Compared to API SetValue as public  function, it will be called differently.

My second question is why IndexOf API is static but SetValue is non-static. Maybe we can read Array C# class source and then figure out why.

Leetcode 57: Insert Interval

Sept. 20, 2017

Introduction



It is definitely a good learning process to help the peer work out the optimal solution to solve intervals. I had a mock interview 10:00 PM, and I had to spend over 30 minutes to help the peer to work on an interval algorithm. The difficult part is to explain the idea to use linear algorithm to solve the problem. Also, I gave the hint to show how to get the overlap quickly using Math.Max of beginning of two intervals and Math.Min of ending of two intervals, and then I gave the hint to move to next interval if the ending value is the smaller one.

I gave out the code review about a double for loop, and explained to the peer, in order to get linear time complexity, the while loop should be used instead of using double for loop.

So after the mocking interview, I like to review interval algorithms in Leetcode.

Plan to work on hard level algorithm called Insert Interval. The link is here.

Tuesday, September 19, 2017

To be a good tester

Sept. 19, 2017

Introduction


Thing happened so quickly and I could not figure out what was going on. This past Monday I installed a few apps on my new refurbished Samsung phone, somehow, the mobile got hot the whole day and I could not get the mobile charged to full the whole day. I went home and charged the Samsung 6S to 80% battery, and left the phone on the table. Next Morning I tried to open the mobile phone around 8:00 am, the phone had 0% percent battery.

Samsung phone battery issue  


To be a software programmer and try to be a good tester, I like the challenge to figure out what the issue is. Is Samsung phone's battery bad? Or I just picked up some bad behavior to download apps not good for the phone. 

A lot of area I carefully go over. Now it is 11:53 PM, the Samsung 6S phone has 24% battery, I will let it sit until tomorrow morning and see what percentage is left. I uninstalled all apps related to maps. 



Sunday, September 17, 2017

Case study of getting better on driving

Sept. 17, 2017


Introduction



I like to drive highway and enjoy high speed driving. Today I should drive to Road 3 in Richmond from my home to meet friend visiting from Seattle, friends long back from Florida, I ended up driving 91 to Nelson exit, and then turned back to drive local highway and spent extra 20 minutes to get to the restaurant.

Here is my route in a diagram:


Analysis of Driving skills


It is the important to build a good habit, stay intelligent. I drove over 22 times to go to USA cross board last 7 years, but last 2 - 3 years I stopped driving on shopping trip instead of working more on coding blogs.

I need to do some research how to build skills smart on driving. The mistake to take wrong route on the highway reminds me how gentle I should take it, and then later I need to study the reasons, I need to catch up with some learning.

Figure out things to help me to be a good driver.

A few ideas to work on:
1. Read highway 91 or 99 wiki pages.

2. Figure out how Samsung Google map driving direction on my Samsung mobile phone came out ads when I need to get detail route while driving from road 7 to road 8.

3. Understanding Road vs Ave vs St. Directions of Road is north to south.

4. Learn to read map and thing to help to memorize the map and figure out easy mistakes to work with Google directions. Start from basics, reading some articles:

Five tips and tricks to help you better navigate google maps, here is the article.


Facts to Review 


9/18/2017

What I did is to purchase $1.00 dollar internet service, and then start to use Google map drive directions on Sept. 17, 2017. The phone was connected to the charger all the time, and then the phone got hot.

What I should do is to download the map of Vancouver area, with size around 160 MB. And then open the download map, use offline map to help drive direction. No need to connect the phone charger. Keep the phone cool as normal standby status does.

Have my idea of route first, only use the drive direction from Google map as an alternative. Understand the basics to exit early, go to No. 3 road first.

tennis coach Annacone study

Sept. 17, 2017


Introduction


I am looking for great advice for my career. I certainly have got a lot of good advice from last 6 month through over 90 mocking interview peers. But I am still looking for the tennis coaching, and observe best coach teaching. Today I will study Roger Federer's coach Annacone. I decided to study tennis player Madison, and then spent 5 minutes to study Madison twitter account, and then I came cross the book twitter of Annacone.


Study of 30 minutes


Now it is 10:19 pm. I will search google and find 3 of very good study material to entertain myself next 30 minutes.

It is 10:51 pm. I am watching 3 minutes teaching video from the coach Annacone, great teaching. The video is here called "Playsight tennis tips with Paul Annacone: Approach Shots".

It is 11:06 pm, I am in the middle of 22 minutes of teaching video called "Tennis Channel Academy - Paul Annocone (former coach of Sampras & Federer). The video link is here.

Action Items


I miss those long hours to play doubles in the city of Burnaby central park last few years. But this year I do not play so much matches. I really enjoy the learning of double tennis through the favorite video teaching. It is 11:43 pm, I am watching second time the video of following teaching, and catch up some research for my Google map and directions common mistakes.

Here it is. Tennis channel academy Tim Blenkiron, here is the link.