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.

References:
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 to .py

Steps and Program By: Jeevan Gaikwad (UNIX 2014, WinRT 2015, RTR 2017)

2 Nov. 2015
8:35 PM

Tags: , ,


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

5 Sep. 2014
12:00 AM

Tags: , , ,


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 :

What?
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.

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

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

Which?

  • 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

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

NOTE :

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 ___

IF  INTERESTED  ONLY :

Why?

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 !!!
]

1 Jan. 2014
4:00 PM

Tags: , ,


Invitation by Wen-mei Hwu

Invitation to Gokhale sir by Dr. Wen-mei Hwu to assist coursera cuda heterogeneous/GPU parallel computing.

Wen-mei W. Hwu is the Walter J. (“Jerry”) Sanders III-Advanced Micro Devices Endowed Chair in Electrical and Computer Engineering in the Coordinated Science Laboratory of the University of Illinois at Urbana-Champaign. Dr. Hwu received his Ph.D. degree in Computer Science from the University of California, Berkeley, 1987.
From 1997 to 1999, Prof. Hwu served as chairman of the Computer Engineering Program at the University of Illinois. In 2007 he introduced a new engineering course in massively parallel processing, which he co-taught with David Kirk, Chief Scientist of NVIDIA. In 2008, he was named co-director of one of two Universal Parallel Computing Research Centers sponsored by Microsoft and Intel.

Invitation by Wen-mei Hwu

Invitation by Wen-mei Hwu

3 Dec. 2013
3:30 PM


Achievement : The Adobe Certified Expert

Hello Students ,
After Apple Final Cut Master Pro and Parallel Programming (Coursera) certification, recently I (Dr. Vijay D. Gokhale) Successfully completed certification of “Adobe Certified Expert for Premiere Pro CS6“.
I am so excited even after 11 certifications, since it was tremendously difficult. Yes, even much much more difficult than all Apple certification. Apple never sent such a mail that you can see in this attachment, appreciating the certified person. Apple’s mails were all of official format. As usual, I am more willing to share this to all of students.

Certificate-Mail-By-Adobe

Certificate-Mail-By-Adobe

Regards,
Dr. Vijay D. Gokhale

14 Nov. 2013
11:54 AM


|| गुरु खरा तोची जाणावा ||

गुरु कसा असावा?
असा प्रश्न विचारण्यात आला.
काय द्यावे उत्तर हेच कोण उमजे ना.

गुरु कुठला असावा?
असा प्रश्न विचारण्यात आला.
काय करू देवा वाचा कोणाचीच फुटेना.

मग एके दिवशी भेटली एक व्यक्ती,
आणि मग सुचली एक युक्ती.
गुरु म्हणजे ज्ञानाचा झरा.
गुरु म्हणजे आसमंत सारा.
गुरु उन्हात सावली.
गुरु साक्षात माउली.

संस्काराचा पाया आई घरात उभारी,
तोच करी भक्कम गुरु ज्ञानाच्या द्वारी.

आई आपल्या देते दाणा हा टिपायला,
म्हणे दाणा देयील बळ उद्या आकाशात उडायला.

गुरु हेच तर करी,फरक करू नका काही.
मग गुरूंनाच आपण आई का म्हणू नाही?

गुरु म्हणजे आरसा असावा , खरं तेच सांगणारा,
गुरु म्हणजे देव मानवा, जनास आवडणारा .

गुरु म्हणजे माणूस जाणावा हाडा मांसाचा,
माणसातल्या देवाशीच गुंफण घालणारा .

मी पाहिलंय मझ्या गुरूंना प्राण पणान शिकवताना,
हसत मुखाने सहन करतात ते खूप मूक यातना.

ठेवा थोडी जाण त्या महान माणसाची,
जो काळजी करत नाही त्या कपाळावरच्या दवबिंदू पुसण्याची,

गुरु समवेत वसते सरस्वती ठायी ठायी,
अर्पिते ह्या ओळी फक्त आपल्या सरांच्या पायीं.


सोनल सुनील सालकाडे.

4 Jan. 2012
5:59 PM