Computer Fundamentals Seminar by Dr. Vijay Gokhale

Hi all,
We have a Seminar on Computer Fundamentals by Dr. Gokhale Sir.


Things We Think We Know But We Don’t Know And We Shy To Say “Don’t Know”

01) Steps to learn computer :  If We Know This In Advance, We Can Save Computers From                                                        Our “Bad Touch”.

02) Human Body & Computer Analogy :  It Is The Question? Do you Know Just I Did?

03) Why 8 :  In Our World Everything Is In 10’s, 100’s And 1000’s.                                                                    Then Why The Hell It Is In 8’s In Computers?

04) The Current : Life Begins Here . . . . .

05) Data Bus : Nerves Of Computer.

06) Units : Bit To GeopByte.

07) Input Devices : For Human : पंच ज्ञानेन्द्रिय, For Computer : Known 16 input devices.

08) Output Devices : For Human : पंच कर्मेन्द्रिय, For Computer : Known 6 Output Devices.

09) Some Unknowns About Graphics Cards : GPGPU/CUDA/OpenCL Terminology.

10) Storage Devices : Magnetic, Electronic, Optic.

11) Disks : PATA, SATA, SCSI, SSD Flash etc.

12) Data Representation : The World Is Full Of Representation : Matrix I, II, III                                                                     In Our Body It Is All Over “Sodium” i.e. Na+                                                                                     For Computer It Is All Over “Copper” i.e. Cu++

13) BIOS, Chipset And Bridges : That We Call “Welcome On The Board” i.e. Motherboard.

14) Host Controller Interfaces : How Data Buses Know Their Devices?

15) Memory : Which We Have Much . . . Much More But Still We Depend Upon RAMs &                              ROMs.

16) Real Mode & Protected mode : How I, We, President Barack Obama And Machine                                                                        “Wakes-Up” Twice?

17) Memory Organisation Models : Expanded, Extended, Heap And Pointers

18) Interrupts: IVT & Basic Device Drivers.

19) CPU : Brain Of Computer.                                                                                                                                  16 Types Of CPU – Not 16 CPUs.

20) 80×86 : It will be never outdated.                                                                                                                        Just like our Mother and Father. Are they outdated?

21) Operating System : Our Body Is Hardware And संस्कार Is Software.                                                                                    What Are Kernel And Shell?                                                                                                                  Types Of Kernel?

22) User Mode And Kernel Mode : Our “Evil” Lives In “User Mode”, But Our God Lives In                                                                  “Kernel Mode”.

23) Booting : First Breath Of Life.

24) SDK And Toolchain : Where Is That Factory Which Creates “Lives”?

25) Virtual Machine : Here We Start Dumping Our Garbage And Start Becoming “Slaves”.

26) Compiler, Linker, Loader : What They Really Are And Who Is Dependant On Whom?

27) Memory Addresses : Where Bits Live !

28) What Is Program : Firmware Or Vapourware Or Software?

29) Program Organisation : I Found That Only A Few(?) Developer Found This.

30) Books : That Is How I Did It.

Fees: 1200 /- (Cash only).
Venue: C building,
Sunbeam Institute Of Information Technology,
Plot No. R/2, Market Yard Road,
Behind Hotel Fulora, Gultekdi, Pune.
Map link :

Saturday , 20th February 2016 from 2:00 PM to 8:30 PM
Sunday,     21st February 2016 from 11:00AM to 8:30 PM

Enrollment :
Monday, Tuesday, Wednesday from 8:00pm to 10:30pm.
Enrollment Place: Anadashram, Next to NMV boys high school, Bajirao road , Pune.

For enrollment following volunteers can help you.
• Tushar Gopale
• Fatema Amreliwala
• Dhananjay Sathe

For any queries :

Note :
1) No certificates will be provided for seminar.
2) Seats are available according to First Come First Serve basis at venue.
3) If seats are remaining then on the spot admission will be done at venue. Please come before a hour for same.

Posted in Information | Comments Off on Computer Fundamentals Seminar by Dr. Vijay Gokhale

Javascript Automation Client

 Run method:
1) Just open the html client page in Internet Explorer.
2) Accept the warnings given by IE and click on ‘Allow blocked contents
3) Provide two sample integer values in Num1 and Num2‘s text boxes
4) Click on ‘Call COM Method’ button and Click on ‘Yes’ if prompted by browser.
5) Check the output in message boxes prompted by IE.
I have tested it on Internet Explorer 11 , Windows 8.1 x64bit and 32bit COM Automation component(same which is used for Python Client). Only limitation of Java Script client is, it runs only on Internet Explorer.
Download : JavaScript Client
by : Jeevan Gaikwad
Posted in Information | Tagged , , , | Comments Off on Javascript Automation Client

Automation Python Client(32bit) and more

I have written a python script to use our COM Component in Python. I learned basic Python syntax for our client. I have used Python 2.7.10(32bit) version on Windows 8.1(64bit). I have added the extension comtypes to Python installation which supports Python 32 bit. That’s why I had to create our 32bit Automation server component. This extension allows us to support COM components. I have tested the Python Script and working good. :) Please find the attached script file.
It took 2 days to work around this and for Java script client(did not get success). I have also tried C client. It’s very good. I feel, it actually gives us a idea about how CPP’s class must be written in C(header file for C client is highly noteworthy) and also gives clear idea about virtual function table, its actual use via lpvtbl pointer.
As you said, C# does not use our IDispatch but directly calls those two methods via custom interface, I had put message boxes in the IDispatch’s functions and observed the same behavior. In case of VB client, it uses our IDispatch. In case of Python client, I observed that it is not using IDispatch but directly calls CoCreateInstance for our provided interface(here it’s IMyMath). It uses our registered type library. We can easily call QI in Python client to get desired interface pointer.

1) Download Python 2.7.10(32bit)
2) Download comtypes extension
3) comtypes documentation
4) Python Client help on codeproject

Our sessions on why Java/.NET came and now why WinRT introduced, were really good. I enjoyed them and we got the clear idea “How should we start learning a technology and How it should be taught”. Thank you.

Note: Rename PythonClient from .txt to .py

By: Jeevan Gaikwad

Posted in Information | Tagged , , | Comments Off on Automation Python Client(32bit) and more

COM Automation Program via command line instructions

To develop COM Automation program through Visual Studio takes significant efforts to make custom settings. To reduce these efforts and to compile and link programs easily, command line instructions have been provided in this file.
Automation Commands

Posted in Information | Tagged , , , , | Comments Off on COM Automation Program via command line instructions

Inside COM book programs

Please download the programs from following link
COM Programs From Dale Rogerson’s Inside COM

Posted in Information | Comments Off on Inside COM book programs

WRL Class Library

Download the code from here

reference :

Posted in Information | Tagged , | Comments Off on WRL Class Library

Program for WinRT batch

Download program from here

Posted in Information | Tagged , | Comments Off on Program for WinRT batch

COM Automation Code

Download code from here

Posted in Information | Tagged , , , | Comments Off on COM Automation Code

Unix System Programs

Assignment by Bhagyashree Pandit (UNIX Dec 2013 batch)

Q : Why did you do this programs?
Bhagyashree : As UNIX was in the syllabus of my last semester, Theory as well as University practical. So, sir (Dr Vijay Gokhale) told in class to refer Advanced Programming in the UNIX Environment – By W. Richard Stevens (now referred as book), as it gives the practical idea of “The Design of the UNIX Operating System by Maurice J. Bach”.
So when I start reading this book, first I solved the practical assignments with the help of this book, after that sir told me to do programs given in this book, so I started solving the same and I finished the last chapter of the book last month only.

Q : How it helped you to understand UNIX operating system ?
Bhagyashree : Well, it’s worth in many ways. First, if you know UNIX, you can understand many other operating systems since UNIX seems to be as the base (or Mother ) of most operating systems (for eg: OSX ) and secondly, many servers runs on UNIX. Also, it is fun knowing stuff most people never heard of. It can never hurt to learn as much as your interest is peaked, since I am still a student.

Most importantly you realize ‘why’ we are doing the things inside the operating system as the way we are doing. While reading operating system algorithms in Bach, it always remains back of the mind that we have to provide ‘such and such’ system call to the application programmer using which application programmer is going to write his application.

And if application programmer is to get that built in behaviour via system call then operating system has to implement it. To implement that behaviour, all this is going on. That’s how the logical chain proceeds. That means as an application programmer, I just call a fork() to create a new process. While learning allocreg, attachreg etc. I keep that in mind.

Programs are uploaded here

Posted in Information | Tagged , , , | Comments Off on Unix System Programs

Lets change with time

[ For My Present/Past/Future Students Only ]

Hello Students,
Straight from my shoulders, I am going to bang on the target directly.

Here is that Bang :

I am planning to change the course structure of our June-to-December curriculum to add the newest advancement in Microsoft Windows Development, that is — WinRT. This is to include new style of Desktop apps, called “Metro/Store Apps” along with their painless porting to Microsoft Windows Tablets, Surfaces and Mobiles.

June 2014 to December 2014; Monday/Tuesday/Wednesday; 8.30 PM to 10.30 PM

Anandashram ( Next to NMV School, Bajirao Road, Near ABC Chowk, Pune ).


  • Win32 :
    • Event Driven Architecture ( Hello Windows )
    • DLL
    • Using needed Win32 Command Line Developer Tools
  • COM :
    • Basics,
    • DLL ClassFactory Server/Client,
    • Containment ( Philosophy only ),
    • Aggregation Server/Client ( if possible ),
    • DLL Automation Server/Client,
    • Using needed COM related Command Line Developer Tools
  • WinRT :
    • Basics ( Hello WinRT ), Under The Hood,
    • C++11 & C++/CX ( As Needed ),
    • XAML Syntax ( Whenever Needed Only ),
    • Asynchronous Programming,
    • WinRT Component,
    • Using Windows Runtime Library
    • Interoperability
    • Porting to Windows Phone 8
    • Using needed WinRT Command Line Developer Tools
  • IDE :
    • Microsoft Visual Studio 2012/2013 on Windows 8.x

Rs. 10,000/- ( Rupees Ten Thousand Only )


It has been the tradition of the class since it’s inception that class fee is decided with the consent of the students. This is for the first time, I am declaring the panel of those students with their opinions Consolidated Replies about fees, who participated in the discussion process. After going through the student’s opinions, I chose to go for less than the average.

Some may find above announcement ‘well enough’. But for those who want to know “Why”,may continue from here ___



Why I want to stop teaching .net framework architecture ?

I have been teaching Win32, COM and .NET Framework, for this particular period of June-to-December, either in full-length mode ( 6 months each ) or in partial mode ( 2 + 3 + 1 = 6 months, all-in-one ), since the year 2002, which is a considerably long duration.

As any doctor has to go to the root of the disease to treat a patient, same applies to any other professions and therefore, for computer developers too.

I have always felt very sorry for our “most Indian IT-developer mentality” of choosing the EASY than choosing the RIGHT. They only give a very infamous argument, the so called “The Deadline”, to hide their incompetence. Currently very few have just heard about Win32 and many even don’t know ( or they do not want to know ) about COM and say that Win32 and COM are outdated. Are they really?

I have only one line to say about Win32 ( and that is enough ) : Win32 is the “only” doorway to enter the Windows OS. Thats it. Period.

COM is “the technology” which shoulders the burden of ‘being the key underlying and essential technology’ for the existence other mighty technologies/softwares such as :-

  • – All DirectX Technologies
  • – All the MS Office Applications
  • – Media Player
  • – Movie Maker
  • – IIS, Internet Explorer
  • – Windows Explorer, Windows Shell Extensions
  • – MTS, Speech, Telephony, Messaging, Audio/Video Streaming
  • – and many many more ( many are yet unknown to me )

.Net Lovers/Developers/labours, please hold your breath : CLR is itself written in Win32 and COM ( Don Box ).

In short Win32 and COM are so basic ( and hence many say it is so advanced ) that they are must for every aspiring Windows Developer.

This fact compelled me to study “the basics” and therefore obviously I followed the long way.

In Object Oriented Principles, every abstraction is made for “rapid development” but not for the “core development”.In other words, if you know the “core development”, then and then only you can go for the “rapid development”. Much in the same manner as any IDE is made for those who can manage the things without the IDE from the “command line”, but now want to go rapidly to save the time using IDE.

Today how many of us know each and every command that gets executed when we press any button in an IDE? We just don’t know. In my quite long and painful teaching experience, very few working individuals knew that cl.exe is the C/CPP compiler for Visual C++ IDE. That is why I first started learning and then teaching Win32 and COM.

I teach Win32, because, in my experience no other development philosophy can teach event mechanism, message loop, event handlers and callback mechanism, as elegantly as Win32,not even Cocoa, Java and .Net. Rather they say “message Loop is there but you don’t need to know it”. Actually speaking, the message loop is the Heart of any Window-based application ( Charles Petzold/Jeff Prosise ). How could any genuine developers live without knowing it?It is as absurd as imagining “a doctor who does not know anything about Heart” and as you know, first of all, I am a Doctor.

[ NOTE : In reality, learning above concepts is possible using XWindows/Xlib in Unix/Linux.But it is far easier and intuitive to learn them in Win32. Many will agree with me. ]

I teach COM, because, first, I love it; second, that was the technology I used in my first real-world project (API/SAPI/TAPI /DirectX ) and third, after facing complexity of COM ( as everybody says COM is difficult ), facing other complexities is NOTHING. My past COM students might recall the days of Aggregation /Automation /Marshalling.

The reason I was teaching .Net framework architecture ( without syntax ) was that the CLR itself is written Win32 and COM foundations ( Don Box ). Learning .Net is to apply the philosophy of ‘binary contract’ given by COM. Though I like philosophy of .Net framework,I personally never liked somebody to collect my garbage if I still have my hands and feet working well. So although I love “CLR Via C#” by Richter and “Advanced .Net Debugging” by Mario very much, I don’t like managed world as my area of development. It may be due to my inherent nature to live in ‘unsafe real world’ rather than in ‘verifiably type-safe matrix’.

Why am I switching myself to teach WinRT?
As per my reading, .Net is geared mainly towards WEB and not for the domains where “speed does matter” like System programming, fast/fluid/immersive/responsive UI, Graphics or DirectX and many more.

Therefore, there had been a prolonged demand for the Native Development Environment which has now been fulfilled by the Microsoft’s mobile technologies, better known as ‘WinRT’. And Microsoft once again has put its faith in its legendary, immortal, showstopper methodology i.e. ‘COM’ to build ‘WinRT’.

To quote straight from the horse’s mouth, ‘Everything old, comes back as gold’.

Surprisingly almost every article/video/book about WinRT, repeatedly convince their audience, that it is NATIVE and it is COM. Microsoft needed to shout “native, native and native” so loudly because of failure of .Net based WPF ( Reference : MSDN Channel 9 videos ). They also mention it very promptly that COM for WinRT is easier than legacy COM, though conceptually both are similar.

Finally, for many days I wanted to teach some technology which has many real-world applications of COM and yet it is easy to deliver to all sorts of students ( Teaching DirectX to everyone is difficult ) who are ready to embrace it with the breadth of Win32 and the depth of COM.

Oh Sorry, I forgot to mention that an “able” WinRT programmer, single handedly and independently, can deploy his/her Metro/Store Apps on Windows Store and can earn a lot of money by working from home.AFTER ALL, AT THE END OF THE DAY, EVERYTHING COMES TO MONEY !!!

Posted in Information | Tagged , , | Comments Off on Lets change with time