Teaching my son to write software

The other day my 11 year old son asked me to teach him on how to write apps. I was thinking on what programming language I can start him with.

I didn’t want to start him with Mobile Apps as I feel that will curtail his possibilities . This meant Android Java, Objective C & Apple Swift won’t cut it. Being an ardent Microsoft language engineer I never liked Java, but that discussion is for an other day.

My friends know well about my “affair” with Visual Basic. Going with VB6 (there is a charm to this acronym’s sound) will mean he will be learning more on GUI/Drag ‘N’ Drop rather than programming and language fundamentals. Also the GUI guidelines of VB6 are rooted in Windows 95 days which are out dated in today’s iOS7/Metro/Material design world.

Next option was Visual Studio 2013 Express with VB.NET or C#.NET languages. Either of this would mean learning about objects and OOPS concepts at first class itself. I felt he will find it difficult to digest the vast surface of .NET Framework, without understanding which even Console.WriteLine(“Hello World!”); will appear to be magic for him. If he remembers software as magic (sorry Steve Jobs) he will not be curious enough to work his way through the entire process of how a program executes.

Speaking to one of my mentors (an expert teacher & coach on programming) I added Python to the list. For last few weeks I have been learning Python too as my side project but I am not at a stage where I will be able to teach my son. So reluctantly I gave up Python as the choice. I wish to teach my son Python after he is done with Basic.

After much deliberations I settled on Basic Language which is celebrating its 50th year at Dartmouth College where it was invented in 1964. Teaching my young son BASIC language in 2014 will be a fitting tribute that I can offer to this great language. Thinking of GW-BASIC brings in a nostalgic feeling for me, I started learning programming when I was about 13 (8th Standard) with GW Basic/Basica.

Having selected Basic I went looking around for MS-DOS and GW Basic, there are articles on how to get and install this combination even in Windows 8. If you want QBasic which included a  compiler and a textual based IDE for Microsoft Basic, it got shipped with every version of a Microsoft Operating System from DOS 5.0 till Windows 95 (you can get it from an old Windows 95 CD). I was not comfortable with either of this (running GW Basic or QBasic) in Windows 8 as it won’t give my son a chance to write true “Windows” programs or access modern necessities in later stages, as well as the archaic 8.3 file names he will not understand. I wanted a BASIC language in a modern avatar.

Looking around I found following three options. I just went with Free Basic, you can choose any of them (all 3 are good options).

1) Free Basic is a free open source compiler that’s fully compatible with Microsoft QBasic language. In fact almost all programs written for Quick Basic will compile with Free Basic. I found an IDE to go with it called FBIDE. Combination of FBIDE and Free Basic was awesome, it provided the simplicity of BASIC language along with ability to compile and run natively in  modern Operating Systems including Windows, Linux in both 32 and 64 bit as well as in DOS (I suppose that means MS DOS, DR DOS and FreeDOS).

2)  QB64 is a self-hosting BASIC compiler for Microsoft Windows, Linux and Mac OS X, designed to be compatible with Microsoft QBasic and QuickBASIC. QB64 implements most QBasic statements, and can run many QBasic programs, including Microsoft’s QBasic Gorillas and Nibbles games. QB64 also contains an IDE resembling the QBASIC IDE.

3) Small Basic from Microsoft, this is a commendable effort by Microsoft especially aimed for students. The site even includes complete curriculum to teach Small Basic. This is based on .NET Framework so has the same OOPS issues, but I guess they way its been presented here can be managed.

I came across Real Basic (now Xojo) which is a BASIC inspired environment allowing you to write commercial grade apps for Mac OS. Since its a business grade and paid environment I didn’t give it a try.

Before settling on “Basic” I seriously considered Pascal, Turbo Pascal was my favourite language in College, when we programmed using it on our lab’s Novell Netware lab. I consider losing Turbo Pascal (and its Delphi avatar) is a big loss to software programming field in the last two decades and I still feel sad for it. In mid 90s I worked with a friend to develop a complete student course material in Pascal for a local college. I still have the materials and accompanying projector transparency sheets, I remember the long hours I spent typing them in AmiPro word processor. AmiPro was one of the best in its heyday and light years ahead of MS Word on those days, I am surprised AmiPro even has a Facebook fan page.

Coming back to Pascal, I found a Free Open Source compiler called “Free Pascal” along with IDE ( Lazarus IDE) to go along with it.  I will be trying it out in the next few weeks, it might turn out to be a good introduction to OOPS as FreePascal supports objects.

Look below the first program in Free Basic that I thought my son



iron python programming with visual studio 2013

Learning Python

I have been reading about Python (programming language) for last few years and wanted to learn it. But over the years in my work I have become more of the Dilbert’s Pointy Haired Manager and haven’t done any actual coding for many years. So the idea to learn a language and start typing, doing real work looked daunting. As experts say, we humans are animals of habit and getting out of your comfort zone is difficult.

I said to myself let me make the first step on this, even though I was not sure whether I will pursue it further. Python.org website has all the necessary learning materials, guides, manuals and tools (all for free) to learn and program in Python.

There is a .NET Framework based implementation of Python language called IronPython which is popular with Microsoft technology developers. Iron Python compiles Python language code to an executable that runs on top of .NET Framework and Runtime. Programs written in IronPython can use both Python libraries and .NET language libraries. Microsoft through CodePlex community has released Python Tools for Visual Studio, which integrates IronPython seamlessly in Visual Studio IDE. Using PyTools Visual Studio turns into a full fledged Python IDE.

New Python Project from Visual Studio 2013

New Python Project from Visual Studio 2013

PyTools is free, so are Visual Studio Express editions, making it convenient for anyone interested to start with Python & VS. I have in my PC, Visual Studio Ultimate edition in which I installed PyTools. The installation was smooth and I got options to create a Python project in the familiar Visual Studio “New Project” wizard, which I did.

iron python programming with visual studio 2013

iron python programming with visual studio 2013

Excited on seeing the output, in my typical style I went ahead and purchased following 3 books to further learn Python:

  1. Python in Easy Steps by Mike Mcgrath (the book appears simplistic but is worth reading as the first book on Python) – Rs.209
  2. Programming Python 4th Edition by Mark Lutz (this is a big fat book of over 1650 pages, has everything about Python) – Rs.939
  3. Think Python by Allen Downey – Rs.428

Let us see if the books gather dust or I read them and learn Python!




(Backdated Post: 25/08/2000)

Being April 1st, it is appropriate for this post.

In late 2000 when the Microsoft world was going crazy on announcement .NET, it was .NET everything everywhere. Within the Microsoft user groups at that time, the joke used to be, anyone trespassing any Microsoft building in Redmond will be renamed as *.NET. So I would be called Venkat.NET if I was spotted by a Microsoft Product manager.

In this background during Microsoft Tech Ed 2000 India, in the organizing team we had to manage a 15 minute empty slot in the schedule. We couldn’t leave it free. We needed all the attendees to be in one hall, so that we could get the main hall ready without hindrance. And that was slot I used unravel for the first and only time anywhere in the world – Microsoft DOS.NET, the DOS operating system being upgraded beyond anyone’s imagination.

optimizing for performance, availability with msdos.net

msdos.net - dir outputs XML, Batch files exposed as COM+ objects, complete multi-threading & object pooling capability in MSDOS

Doing this session was fun, everyone enjoyed, yes the audience too like the spoof and laughed at it. It’s a different story that many years after this session Microsoft did re-architect and reimagine the humble command line to integrate with .NET when they released PowerShell.

Innovspark record program

Few months back J.Venkatesan Prabhu who was a Microsoft MVP from 2008-2013 contacted me about a program (Innovspark) that his company is planning to host on 2nd March at Chinmaya Hertitage Auditorium, Chetpet and invited me as one of the dignitaries to inaugurate the event. The event was to get into record books on the maximum number of software programs written in a single day, this sounded interesting & I accepted the invitation.

Today when I reached the venue there were hundreds of students overflowing in the venue, chaos on getting everyone registered, everyone in the hall was passing around USB Thumb Drives with software to be installed in their laptops & so on.  I was seated on the first row and waited. I learned the gentleman next to me was the Referee from the record book company and he said he is from India Book of Records Tamil Nadu Branch, I asked is it Limca Book of Records, he said No this India Book of Records – a name I was hearing for the first time. The inaugural event was getting delayed &  I was getting jittery feeling whether I have landed myself in a not a well planned event.

In the next 30 minutes everything fell in place, the inauguration went smooth. The chief guest of the the event Mr.R.Paneer Selvam (CEO of Rohini Theatres) kept his speech brief and so did I, stepping away from the actual event of the day – writing hundreds of software programs. Due to another appointment I had after this I had to leave the venue after the inauguration though I was curious to see how hundreds of programs were written, tested and validated.



Update 4th April: India Book of Records have officially published the event in their site as the  “Most Software Programs Developed in a single Day”. 1,075 Participants in 116 groups developed software programs (116)  in a single day, starting at 10.30am and ending at 4.00pm, on March 2, 2014, at Chinmaya Heritage Centre, Tamil Nadu.


Events like this are welcome to encourage students in Software Programming & Coding.

Password Expiry setting in Windows 7

I know that you can configure the password expiry (how long before user is prompted to reset their password) for an user in Windows Server Active Directory for all Domain Users. But how about for a standalone Windows 7 alone machine. I have got “Windows 7” installed in my Home Desktop (iMac) through Parallels. I use Windows7  for writing this blog with Windows Live Writer and for doing my mails with Outlook 2013 (which I find much better than the Outlook 2010 for Mac OS). Windows OS kept prompting me to change password every other month and I got bored of it. Though it is a good security habit to change password, in this case, it is lessor of a concern for me than convenience.

I couldn’t find the option in the usual Control Panel – User Accounts Applet. I tried firing up the Local Users and Groups snap-in for MMC console through Start-Run (lusrmgr.msc) but since this for Windows 7 Home Premium I was told that feature is not available.

Local Users and Groups snap-in for MMC (lusrmgr.msc) not present in Windows 7 Home Premium

After some searching I found this Microsoft Answers article on the command I can use to control the Password Aging parameter. To do it, launch CMD.EXE in elevated mode (Run as Administrator) and run this command: net accounts /maxpwage:unlimited

Problem solved. Now I am not prompted anymore to change password in Windows 7 Home Premium.