Monday, August 29, 2011

OMG - Oh My God , a feast of ideas for Architects

Object Management Group is a consortium which is focused on the standardization of Object Oriented Distributed Computing Infrastructure. Their products are CORBA , UML and so-called MDA.

Currently , I am reading through MDA , Software Factories , Executable UML and UML 2.0. This prompted me to go to the OMG site and I found almost all the standards which I am reading on can be downloaded for free from their site.

All the OMG standard documents can be downloaded from http://www.omg.org/


Wednesday, August 24, 2011

Constraints leads to better expertise

A person whom I know well is working in a company where PHP is the primary tool. He has to transfer an Excel file which contains 600 records to a Drupal based application where MySQL is the DB backend

This person sought my help in getting a suggestion for automation.

I did following things

           a ) Showed how Excel can be automated from C# using COM interop
           b ) Showed How Excel Object model can be navigated to retrieve the data
           c ) Did download the MYSQL connector for .NET
           d ) Wrote a Small Console program which uses MYSQL connector for .net ( using C# )
          
Then came a startling discovery that the company do not have Visual Studio installation. I asked the person to export the excel file as a MSDOS based CSV file. Then , I explored various options for CSV parsing and I was amazed to find some kind of native support for CSV parsing in PHP. Used PHP database API to populate the MYSQL database.

Using mono for windows , I did show him how the C# program written can compile and run the program which was using Visual studio.

In the end , It was a nice lesson on C#/.NET , PHP csv parsing , PHP mysql database api , Excel object model , way to use TLBIMP library etc.


Sunday, August 21, 2011

Reading a book on Cost Accounting

I happen to buy a book which was published in the early 70s some time back  and I am finding it really amusing because of the rich domain vocabulary it provides. I think , Cost Accounting is the basis of all the ERP systems in this world.

Three aspects of Costs are

                      Material
                      Labour
                      Expenses ( Overhead )

When you talk about Material , we need to identify types of materials ( Materials management ) , storage of materials  ( Inventory ) , Stores , Transfer price etc.

Moment we start to think about Labour , we need to think about Wage , Salaired , Payroll computation , Human resource angle etc.

Expenses has to apportioned , If the stuff is a capital expense and we enter the world of finance.

Step back , you can see Enterprise Resource planning movement might have been started by Cost Accountant. 

After the book , I think I should re-read Eliyahu Goldratt's GOAL !


Profiler Taxonomy

I happen to attend a session @ k-mug monthly meet at Kochi , Kerala. I encountered a classification for programming language profilers

Intrusive profilers
Non-Intrusive profilers

Being a old hand at using C/C++ profilers  , I noticed the advantage of having meta data in the case of .NET CLR based profilers. They can do binary injection better than C/C++.

Thursday, August 18, 2011

I'm speaking on "Cross Platform Programming" @ ICE FOSS'11

I will be giving a talk on Cross Platform Software development @ the ICE FOSS'11 event being conducted by Federal Instituite of Science and Technology ( aka FISAT )

I am planning to cover strategies to develop cross platform/multi-platform software using FOSS tools. In a way , it will be focused on OSS tools and Free Software Foundation's GCC .

The topic includes

C/C++ cross platform development ( using MINGW/GCC )
C# cross platform development ( using Mono Project )
Java Software development
Strategies to migrate some apps to Linux from Windows
WineLib as a Software development platform
How to "Beat" Microsoft ?! ( if at all possible ! )


The details of the event can be retrieved from http://icefoss.fisat.ac.in/

Tuesday, August 09, 2011

Downloading and Installing Qt under Windows

To experiment with Qt toolkit , I did download the Qt toolkit for Windows from


If you want a version for MINGW32 go to the following link @


I also went to the following page to download Qt Creator ( IDE for Qt development ) from


The Advantage of Qt Creator is you get a copy of MINGW ( GCC under Windows ) along with the
Installation Bundle.

Happy Qt Programming ...!!

Patterns , Frameworks , Toolkits , DSLs , TDD and others !

Now a days , I am sifting through following topics

                 a ) Software Factory  Approach
                 b ) DSLs ( in Action )
                 c ) Enterprise Patterns and MDA
                 d ) UML (distilled )
                 e )  DDD
                 f )   TDD

After going through it , I understood a fundamental thruth (some degree of truth for sure )

"All these Frameworks and Concepts are only there to raise the level of abstraction when we communicate our ideas regarding Software Construction and Maintenance. These things are of not much use in a large project as people issues dominate. By Follwing these constructs , there is some chance for the community to succeed in what they are planning to achieve. This will make an Individual developer productive in his day to day activities. Unless these ideas do not percolate down to the rank and file , there is little practical value other than the cognitive nirvana !"




                

Sunday, August 07, 2011

Reading about Risk , Organizations and Philosophy of Science

Last week , I purchased three books from the Very  Short Introduction Series. The topics are Risk , Organizations and Philosophy of Science. These are practical matters for every serious Individual.

Risk is all about minimizing the exposure and Organizations for protecting the Individual from Instituitionalism . Philosophy of Science deals with principles of scientific enquiry.

Having a nice time after some time..!






Tuesday, August 02, 2011

Watched Podcast #177 @ Software Engineering Radio

I just happen to finish viewing a podcast @ http://www.se-radio.net/ . The Episode #177 is an interview with Steve Will , Chief Architect of IBM i ( OS/400 ).

The Key takeaways include

TIMI
 - Technology Independent Machine Interface. This is a akin to JVM and CLR , but does lot of binary translation behind the scene which helps one to write 128,64 and 48 bit programs . This technology is responsible for running AIX ( IBM unix ) applications on I

IBM's strategy is to Scale up as opposed to Scale Out . The  rationale has been discussed

MYSQL as a Language for manipulating Database entities and Transparent update to DB2 database . This helps to port lot of MYSQL database based applications ported to IBM i.

PHP support on IBM i necessitated by Market pull. A customized version of PHP created by Zend corporation for IBM.

Emergence of Eclipse as a formidabble development platform.

COBOL and RPG tight integration

The concept of Single Level Store.




How do you answer some stuff ?

When someone asks you "Do you know 3D Computer Graphics Programming ?" , how would you answer him. For most programmers they have got only one canonical answer. First they will take disclaimers about what they do not know ( like I am good at Polygon Processing , not good at Texture mapping ,I have worked a lot with Picking Objects , not with Geometry shaders etc, I know some ray tracing but do not have much about Radiosity  )  and finally they positively assert that they know it.

The above stuff is a good techie to techie answer. When a business person asks , his question is actually , "Do you have some idea about Computer Graphics Programming ?" . The above answer will make business people loose confidence in you. A person who knows half as you , will clinch the deal by positive assertion without disclaimers. That is why "poor" techies make better sales people !.



Moral of the story : Calibrate your answers for the audience.

Knowing Technology is a Crime in Software Services Industry ?

I chanced upon a erstwhile colleague of mine yesterday and we exchanged notes regarding what we do. In the enusing discussion , "techie career crisis" became the subject of the discussion.

The summary is as follows


Moment a Techie touches the keyboard to write some code or architect a new solution, a  command chain consisting of Project Manager/Program Manager/Delivery Manager/Account Manager/Account Directory/BU head/VP sits on top of him. He is nine level down the hierarchy in a place where rewards are based on where you are in the hierarchy. Hierarchy sense is paramount in services company. The poor Techie is in a catch 22 situation.  If he codes , he goes down or else
goes out. Always at the mercy of people who never understood technology in the first place (mostly !)


           

Monday, August 01, 2011

Visited Gangarams after six years !

When I was in Bangalore between 2004 and 2005 , I used to visit Gangarams book stall regularly. I have purchased a few titles from there. I used to spend hours between the shelves in those days.

Yesterday (August 1,2011) , I happen to go there after a period of six years ( My last visit was on August 1,2005 !) and still you can find good titles not found anywhere in Bangalore.

As usual , I purchased

                          Fundamentals of Computer Graphics by Peter Shirley,Steve Marschiner et al (Rs. 675 )
                          DSLs in Action By Debasish Ghosh (Rs. 499 )

The first book is written by an author who has written a book on Ray Tracing . I happen to purchase that book fom Ithaca,NY where Cornell university is situated. Peter Shirley was a professor at Cornell university in those times.

DSLs in action is an excellent book and I was reading it for last three hours. The way he has specified this model of computation is superb. I will write in detail about his book.