Thursday, November 16, 2017

Interesting discussion about TCP/IP Socket Programming Course Online

Couple days ago I received a message on Udemy about my course titled "TCP/IP Socket Programming for Coders and Students". The message was sent by a student of mine.
It highlighted important points about the course. I'm afraid if I'll leave it in the inbox, I will lose it. That's why I'm putting the exchange here. It will not only be more permanent, I'm sure it is going to help a lot of other people as well.

If you find the topic interesting, you may watch the full course for only $10 here:
https://www.udemy.com/tcpip-socket-programming-for-coders-using-csharp-net/?couponCode=HALF

TCP/IP Socket Programming in C# .Net for Coders and Students - Online Course at Udemy

Naeem, I haven't left a review yet, mostly because it was going to be 2.5 star review with some some pro's and con's. My suggest, add a GUI for the Client using windows forums. Showcase how to perhaps send a file to each other, and how to message one another. Client to Client (PM), Client to room full of folks ect. The course has some really nice points also, especially working with the Pub / Sub elements. While I have used YouTube to gain some great insight into this very topic, I didn't really see anything to justify paying for this, or using free YouTube videos that cover the same elements plus more. I will say you did fantastic with the pace of the videos, and your voice was easy to understand compared to other instructors. I have taken countless udemy videos and can say that you did great. I will not refund this course, because I would really love to see add the different elements, and bridge away from the console application into windows forums. I think you will find more folks paying for this because of your teaching ability, and the fact it has more then what you can get on YouTube. View some YouTube videos and see how much they show you, they even show APIs, Use of SSL, Delegates, Events, and much more. Just want you to have some honest feedback before I leave a review in a couple of days.
17 hours ago
Dear Charles, Many thanks for taking the time to write the message. I’m glad that you reached out. I used a console application on the client side for a reason. I believe we can better illustrate the benefits of asynchronous programming in a console application. Please note that we’re creating a class library project, it is very easy to reuse it in a WinForms, WPF, or Windows Service application. Building a class library was a deliberate move. Adding lectures showing how to send a file has been on my ToDo list for a while. I will be publishing videos on this topic sometime soon. The pub/sub model already covers firing and handling events, I just tried to keep it to the point because the course has already become fairly large. I think explaining delegates would be redundant. I’d love to dig deep into SSL and add that to the mix too, that’s a very good idea which didn’t cross my mind. Someone once said that I don’t teach anything about security in the course, somehow my mind couldn’t connect it with SSL. Please elaborate further on this part of your sentence “they even show APIs”. YouTube videos can be a good source for learning, but there are certain advantages of curated content which is why course markets like Udemy are flourishing. I personally take every comment, message, and rating very seriously. These things impact instructor revenues. I try my level best to improve the quality of my content. Over the past two years I’ve (luckily) learned a lot about video making and invested a significant amount of Udemy earnings into equipment & training. People generally don’t do this on YouTube. You can see that I completely revamped the course this year. The old course videos are still present as deprecated sections for reference purpose. Quality of new videos is 100% better than the old ones IMO. At the present, I am working on a new course about UDP socket programming in C#. It will come out in December, most likely. A few students talked to me about packet data analysis, maybe I’ll produce a course about that sometime next year. But since TCP/IP course is already doing well, that’s why adding new content to fortify it will be my top priority. I’ll be adding more content to this course as soon as I’m done with the UDP one. You reserve the right to take a full refund, no hard feelings. You are free to rate and review the course as you please, no hard feelings again. Although it would be nice if you could hold back a 2.5 start review until after Black Friday. That will help me with the sales. The course just recently reached a 4.5 rating which is a big deal. But, it’s your choice. Please feel free to talk back, share ideas, discuss issues, and ask questions. I’d love to interact, help, and be helped. Sincerely, Naeem Malik.
11 hours ago
Please elaborate further on this part of your sentence “they even show APIs”. This for example the client would send a token to the server to connect, and if the token is wrong then they would be refused connection. I should have said token based authentication not API sorry. I will not refund the course because you did do a great job, just left me with a lot of gaps to try and figure out. I will be taking your UDP course so get that up ASAP, i'm building a game in Unity and I want to make my own server to handle the calls. This is why I took your course, and I feel that I could make the in game chat server with what I have covered here. I viewed this course months ago with the old videos, the only reason I grabbed it this time is because the work you did revamping them all. You slowed it down to a point folks could not only follow along, but understand you. So really great work there, and always no better way to invest then into yourself. That's why I'm here taking courses learning, and trying to invest in myself as well. I would add file transfer, ssl, token system, and how to send a file two and from. I will keep this course because I feel that you will be adding more, and I want to support that. I don't like to leave negative reviews especially when I see that someone has put alot of work to make the content, and to make it clear. So no worries that's why I messaged you, and I have refunded a few courses because they were just terrible. Based on our conversation here, I will be leaving a review. One quick help question if you have time. I would like to have client / server not to share the same event args. Because smart folks exist, and can view the source code of the client to mimic the calls to the server. When you reference the event args to the client project, it compiles the server code as well for the client. Hope that you can understand what I'm trying to say lol.
a few seconds ago
Hi, I searched for SSL in C# yesterday, came to know that it is fairly simple. Take a look at this please: https://msdn.microsoft.com/en-us/library/system.net.security.sslstream(v=vs.110).aspx The "Remarks" section is good and the examples are useful. I'll distil it into video form in 2018. Here's how to transfer a file: https://msdn.microsoft.com/en-us/library/sx0a40c2(v=vs.110).aspx I didn't think from a reverse engineering perspective, but it helps to have security baked right into the architecture. Thanks for the EventArgs suggestion. Many thanks for your help. Stay in touch. Regards, Naeem.

Saturday, October 28, 2017

Windows Service Statuses and Login Types



Learn Windows Service programming for only $10 in this Udemy course: 

Windows Services Statuses

A Windows Service can have following statuses:
  1. Stopped
  2. Started
  3. Paused
  4. Pending Start
  5. Pending Stop
  6. Pending Pause


Windows Service Startup Types

A Windows Service can have multiple Startup Types which are given below. 
  1. Manual
  2. Automatic
  3. Disabled
  4. Automatic(Delayed Start)


It tells whether a service is started automatically by Windows or it is stopped, it is possible to disable a service as well and in that case, this service status column will contain the word “Disabled”. 
Learn Windows Service programming for only $10 in this Udemy course: 

Windows Service Login Account

If we see on Service Control Manager there's another column “Log On As”. This column shows the username of the Windows account a particular service is going to use. Possible values of this field are:
  1. Local System
  2. Network Service
  3. Local Service
  4. Specific User


More information can be found on the link mentioned in the description of this lecture. https://msdn.microsoft.com/en-us/library/system.serviceprocess.serviceaccount(v=vs.110).aspx
Having a specific set of credentials to log in makes it possible for Windows Services to start before a user logs-in and stays operational even when a human user is gone.
Among these types of login credentials, LocalService is the one with the fewest powers. It’s a non-privileged user on the local machine.
LocalSystem, on the other hand, is the most powerful type of user and it can do almost anything you want the machine.
Third type NetworkService is slightly more powerful than LocalService, and it can interact with various network services. Details are not relevant from the perspective of this course so I would prefer not to stress too much on the definition.

Performing operations on Windows Service

We can perform various service operations by clicking on a service entry in SCM and going to the Action menu.
It is also possible to right-click a Windows service in SCM (Service Control Manager) and select ‘Properties’ from the drop-down.
The properties dialog not only allows you to start/stop/pause/resume a service, it also shows you the file path from where a specific service is running.
Learn Windows Service programming for only $10 in this Udemy course: