UNIX 2015 admission

Hello Students ,
This is me, Dr. Vijay D. Gokhale.
If you are aware of my initiative of ’Undoing Lord Macaulay Myth’ and efforts of ‘Fighting With Academic Cancer’, then you must know that you can do both with one single philosophy : ‘Life For The Knowledge, By The Knowledge And Of The Knowledge.’

So how to do that ? It begins with learning Operating System (OS). Learning any OS will do, but what if you learn that OS which gave birth to all other modern OSs?
Yes, that OS is UNIX.

Some may say that UNIX belongs to the 70’s and is thus outdated. But nothing gets outdated in knowledge. Instead, new things are built upon the strong foundation of old things and you can understand new things at their level best if you already know old things best.

Hence, UNIX is still a part of the syllabus for all Computer Science Courses by many universities worldwide including Pune University courses like MSc, MCA And Engineering.

After learning internals of UNIX, you can understand internals of any/all other OS like :
– Linux : Which is Free UNIX although it calls itself ‘GNU’.
– Mac OS X : It is stated on Apple’s website that Mac OS X is based upon Rock Solid Unix Philosophy.
– iOS : It is a small footprint of Mac OS X.
– Android : It is ‘Androdized’ Linux.
– Windows : Its concepts are inspired(?) by Unix, Mac, OS/2 and VMS.

So How to learn UNIX? Rather the question is : How to learn any OS?
According to me, there should be 4 steps :
01) Be End User of that OS
02) Be Developer of that OS.
03) Be Administrator of that OS.
04) Be Designer of that OS.

For UNIX, I sought about 27 books to accomplish above 4 steps. Believe me, after reading/understanding/applying any 5 of them ( 1 from 5 categories each ), you will be safe from academic cancer. You will deserve the job you get. UNIX will mature you.

But Learning UNIX, is not everybody’s cup of tea. It is a divine task or say तपश्चर्या.
It requires eternal patience.

The Great UNIX people also stated the same :

– UNIX and the Onion have one thing in common and that is ‘Both lead to tears as you go
deeper and deeper’: A Quote From ‘The Magic Garden Explained’ by Berny Goodheart .

This is similar to the experiences of all Saints and Angels and Yoga people when they
delve deep into their conscience to find answer to the question – “WHO AM I?”

– UNIX is based on Life’s philosophy – ‘Files have spaces and Processes have lives’ :A Quote By Kaare Christian.

This is very similar to प्रकृति-पुरुष सिद्धान्त in सांख्य तत्वज्ञान Or Adam-Eve from Bible.
Seriously, I mean it.

The first and the best book I have read about the design philosophy of UNIX is :
“The Design Of The Unix Operating System” By Maurice J. Bach, which is not at all trivial.
[ This is one of those books referred by Linus Torvalds himself before writing Linux. This is mentioned in ‘Understanding The Linux Kernel : By Cesati And Bovet’ ]

People who read ‘Bach’ ( Not for Exam-Going purpose ), will surely agree with me that this book says so many things without saying anything or just saying something. Simply speaking, there are too many ‘between-the-lines’ to understand from this book, although it is considerably small in size. Try comparing this book with K&R’s ‘C’ book or Stroustrup’s C++ book. Both are not trivial, although they are the definitively ‘must’ read.

More than two decades ago, I was a director from Drama background and thus I needed to understand the author’s ‘between-the-lines’ with all meaningful ‘pregnant pauses’. So when I read this book with all those ‘between-the-lines’, I came to know that the best way to understand this book is ‘repetition, repetition and repetition’
( भावाभ्यसनमभ्यासशीलनम् सततक्रिया|)
and the best way of ‘repetition’ is ‘teaching’. As I am also a Doctor, and a teacher of medical subjects since 1992, the obvious choice was – I started teaching this book from 2003.

For the last 12 years I am teaching this book once per year for 4.5 months from Mid-December to April-End. Ever since, I have never looked back. I have never felt lack of students. The reason is probably my teaching method of linking this book’s philosophy with the philosophy of everybody’s life. Students have also learnt this book so passionately, that a few of them had agreed to stand throughout the course when there was no place to sit, even if they paid full fees in advance. It sounds romantic but, this is a fact. You may think that all of this makes no sense. But it did and it still does!! This reminds me of Mr. Dilip Kumar, the great legendary Hindi film actor, who once said in the movie ‘दिल दिया दर्द लिया’ ( based on ‘Wuthering Heights’ ) :
“ये दिलवालोंकी बात है मुरलि, इसे दिलवालेहि समझ सकते हैं।”

So, what I am saying is : This year’s UNIX batch is starting from 14th December, 2015.
For last 12 years I am running UNIX System Design batches :

a) with a house-full quorum :
b) Without any advertisements/ banner/ pamphlets/ warrantees/ guarantees/ computers/ cubicles/ A.C.
c) With गुरुकुल-like orthodox, school environment and fees that have been decided by the students of the previous batches.
d) Without any syllabus or job or exam orientation.
e) . . . with many other Noes and Don’ts.

Then an obvious question is bound to arise :
Why am I writing this now? Is it not advertisement or marketing?

No, not at all !!!
UNIX never needs marketing, neither do I.
You don’t need to join my classes to learn UNIX.
Rather, you should do this on your own, just like I did.
You can do so by getting the list of 27 books from any previous batch student from my class and following the 4-step path I mentioned earlier.

Then Why am I doing this?
Normally my previous batch is the source for my next batch. So I have never needed any sort of campaigning.But this time, as I mentioned at the top of this draft, I came across many Engineering college faculties and students. After attending my lectures, they suggested in their written feedbacks to keep them informed about all my upcoming seminars and class-batches. I found this as an elegant way to communicate with all of them ‘at once’.

Who should not join?
First 6 lectures will be free to all. Limit will be the hall capacity.
During these 6 lectures, you will get time to decide whether to join or not.
Although, a few conditions are crucial and hence must be mentioned before-hand
(even before the introductory 6 lectures) :

– Class timing will be late in the evening : 8-30 pm to 10-30 pm.
This timing has been decided considering both ‘company going’ and ‘college going’ students. Women-safety is of utmost importance. So, please do consider joining if and only if it is possible and convenient. Although there are many girls who have already completed the course or are doing so irrespective of all obstacles. I salute them.

– This class is not for any Syllabus or Job or Exam.
Learning UNIX is learning life and everybody will agree with me to the fact that
life is neither syllabus nor job nor exam.

Language of teaching is मराठी ( there is no political motivation behind this ).
Many of my C-DAC students with ‘Hindi’ mother tongue did UNIX very well.
Unbelievable but true, one Irani and one Iraqi student have also attended UNIX lectures.
Don’t ask me whether they understood or not. The answer is simple : I don’t know.

Who should join?
– If You want to learn OS design from scratch and cannot read ‘between-the-lines’ from books OR
– If you want to learn OS design with experiences and morals from your life OR
– You want to be ‘Neo’ from ‘The Matrix’ and you are waiting for ‘Morpheus’ to give you the red-pill, THEN WELCOME AND SEE, HOW DEEP THE RABBIT-HOLE GOES !!!


Following message is from Admin , Astromedicomp.org
Admission process
Admission process will be conducted on the First Come First Serve basis, at the given venue and the provided date and time (details are following). this procedure is for new candidates only (first time UNIX batch). All candidates must bring the photo for the Identity card and the proof of photo-ID. Identity proof must be original and legitimate. One of the following is considered as the valid photo-ID proof :

  1. Aadhar Card
  2. Election card
  3. Passport
  4. Pan Card
  5. Driving License.
  6. If professional then company details with total experience , with name of the document which they will use to prove their work experience.

Admission Dates & Time:
6th Dec 2015 (Sunday)
Girls : from 1:00 PM to 2:00 PM.
Professional : from 2:00 PM to 3:00 PM.
Boys : from 3:00 PM to 5:00 PM.

Admission venue :
Anadashram, Next to NMV boys high school, Bajirao road , Pune.

Class starts : From 14th Dec 2015 ,
8:45 PM to 10:30 PM on Every Mon, Tue, Wed .

Fees:  6500/- (No part payment allowed.)


  • We are posting this notice well in advance to give you enough time to arrange the documents and to ask any queries.
  • College Identity cards will not be considered as a valid proof for the admission.
  • Sending email to admin, does not confirm your admission. You must follow the procedure on the day of admission.
  • Only Email-queries will be entertained.
  • Old Students who want to attend UNIX 2015 batch again , a separate notice will be posted on Facebook group for same.

For any queries Contact : 
Shrenik Vikam, +91-9011026305.
admin [at] astromedicomp.org

Posted in Information | Comments Off on UNIX 2015 admission

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 : http://www.global-webnet.com/blog/post/2013/11/13/WRLClassLibrary-for-Visual-Studio-2013.aspx.

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