Thursday, 27 October 2016

CMB Automiser 3.1.3 released

CMB Automiser 3.1.3 has been released with some major bug fixes.



Bug Fixes: 

  1. Fixed strange behavior in measurements module.
  2. Fixed bugs in bill rendering.
  3. Fixed rounding behavior to match currency rounding standards.

Binary Packages

Fedora 24:  CMBAutomiser3-3.1.3-1.noarch.rpm
Windows:  cmbautomiser-win32-3-1-3.exe

Tuesday, 12 July 2016

CMB Automiser 3.1 released

CMB Automiser 3.1 has been released with some new features and bug fixes.



New features

  1. Added support for multiline heading items
  2. Added support for exporting abstract and bill to xlsx
  3. Added progressbar for progress display

Bug Fixes: 

  1. Typo in CMB preamble
  2. Measurement abstarct not added when selection exists
  3. Wrong behaviour tracking unsaved changes

Binary Packages

Fedora 21:  CMBAutomiser3-3.1.0-1.noarch.rpm 
Windows:  cmbautomiser-win32-3-1-0.exe

Sunday, 29 May 2016

CMB Automiser 3.0 released

CMB Automiser 3.0 has been released with numerous features and bug fixes. This version is a complete rewrite to support python 3 and brings along fully documented and re-factored code. The 2.x series is hereby discontinued and all future development will focus on the 3.x series.

NOTE: Version 3.0.x project files cannot be opened on version 2.x.x and vice versa.



New features

  1. CMBs can now be exported as .xlsx file.
  2. Schedule and measurement lists can now be traversed using interactive search.
  3. New dialog for schedule item selection with better usability and interactive search support.
  4. New import dialog for spreadsheet allowing import of data from any portion of spreadsheet.
  5. Exit confirmation for main window and measurement items to prevent accidental data loss.
  6. Changes to documentation to reflect new features.

Bug Fixes: 

  1. Codebase ported to python3 for future proofing.
  2. Modifying schedule after billing breaks bill.
  3. Modifying Measurements after billing breaks bill.
  4. Check feasibility before trying to add measurement items. 
  5. Unicode errors galore. 
  6. Code re-factored for readability and efficiency. 
  7. Docstrings added.

Binary Packages

Fedora 21:  CMBAutomiser3-3.0.0-1.noarch.rpm 
Windows:  cmbautomiser-win32-3-0-0.exe

Saturday, 23 April 2016

CMB Automiser Version 2.2 Released

CMB Automiser Version 2.2 has been released with bugfixes and new features.

This will be the last major release in the 2.x series and the last to support python 2.7. Issues with unicode and hackish project format has made it imperative to port project to python 3.x for future proofing. Development will now focus on the 3.x series.

Changes from Version 2.1

Bug Fixes:

  • Long tables fails to render
  • Latex fails due to small timeout value
  • Partial hack for Unicode support
  • Minor cleanup
  • Help file fails to launch on windows when program run from shortcut
  • Bill breaks when schedule items are edited

New features:

  • Items in measurements view and bills can now be edited by double clicking.
  • Measurements view now remembers cursor position during additions, edits and deletions.
  • Regular bill can now be copied as custom bill.







Thursday, 4 February 2016

School Choise: Socialised Education vs School Vouchers

The matter of choice in education involves two moral issues.
  1. Freedom of parents to choose the education they seem fit for their children.
  2. Right of the child to receive an education that would enable them to live a meaningful life they see fit.


It has been an established legal concept all over the world that a person below the legal age of consent is incapable of making his own decisions and that authority should be left to the parent/guardian; a main component of which is education. This is regarded as a natural right in most cultures. It is also widely perceived that parents provide the best care for their children. This may be because the evolution into social primates has led to the inculcation of a strong sense of kin preference in humans. It is also the reason for the preference of foster care over institutional care in developed nations. Hence education which is one of the most important part of a child's development is better served if the decision is taken by the parents.


The parents rights are only restricted by the natural rights of the child which includes the right to life, dignity, education and the freedom against physical and mental violence. Protection of these rights is the only reason why the government has the moral right to constitute laws that restrict the freedom of parents. Regarding education it would mean legislation requiring the parents to arrange/provide a descent education for enabling the child to lead a meaningful life they see fit.


Are governments better at taking decisions in matters relating to the child's education than parents? Let us look at the track record of governments.
  1. Democratic governments are always influenced by some level of tyranny of the majority. They are very likely to bring in the cultural, religious, linguistic, nationalistic, racial or economic ideals of the majority into the educational system under their control. One of the first acts of every tyrannical government invariably has been to take control of the educational system. This has been the rationale for providing constitutional safeguards to minorities for running their own educational institutions without government intervention.
  2. All government programs comes with bureaucracy, red tape, regulations, inefficiency and lack of innovation. This is a fact that is well demonstrated through out history. Government run schools/universities are not free from this fundamental nature of government. Teachers do not have an incentive for better performance. Capable teachers are paid the same as poor performers. The heavy level of unionisation means that the poor performers can never be fired resulting in lower quality of education. It can be seen that the best universities in the world are either private or publicly constituted and autonomously run with little government intervention. Government bureaucrats fixing curriculum and ground rules are simply detrimental for good education.
  3. Lack of innovation inherent in government systems prevents newer trends in education being applied to the classroom. Innovation rarely arise out of the system. Even innovations made outside the system takes years to be implemented.
  4. Socialised education is usually oriented towards mediocrity with the brilliant students restricted by the average level of instruction fixed by the system. Brilliant students need their limits challenged for achieving excellence which they are capable of. This the system is incapable of delivering.


Many economists prescribe a voucher system to utilise the competitive spirit of the free market for ensuring quality education while providing subsidized education for all. Every child will be given a voucher that can be used to pay for education at a school of his choice. Government will pay the schools fixed money for each voucher the schools receives. If a parent admits his child to a school with a higher fee than what the voucher provide, he/she makes good the difference in cash.
Why such a system would be better than the government run public education system?
  1. Firstly there is choice for the parents to select a school of choice for their child. If government run schools are functioning poorly, the parents have the choice to take their child to a private school without any financial implications.
  2. Second thing is that the schools have to compete with each other for students or perish. This will provide incentive for the schools to offer better education and adopt innovative teaching methods to achieve that objective. Poor performing schools are quickly weeded out of the system.
The government run schools should be shifted to the control of local bodies where the local community has more control over the functioning of the school. They should also be made to compete with private schools for students. This would allow the inherent demerits of socialised education to be overcome.


Parents are the best authority to take decisions about the education of their child. The authority of government to appropriate this power is justified only when the parent/guardian is not exercising his rightful duty or is incapable of exercising it. Any measure beyond this to encroach upon the this right would constitute tyranny and is to be resisted. I believe that a voucher system is a better model for running the public education system than a socialised system in which freedoms are restricted and quality compromised. Such a system would offer better quality education without encroaching on the rights of the parents.

Saturday, 26 September 2015

My forrays into Automation reloaded!

After a round of bug fixes and fine tuning, CMB Automiser Ver 2.1.3 has been released. 

This maintenance release fixes the following bugs in Ver 2.1
  1. Partial import of .xlsx files into schedule view.
  2. Items with special characters are not imported while importing from .xlsx file.
  3. Unable to render CMBs and Bills to locations having spaces in path name.
  4. Broken nnnnnT item.
  5. Error opening bill properties window when custom bill is selected as the previous bill.
  6. Total quantities displayed in measurements view are not rounded.
  7. File name not displayed in title bar.
 This release also feature the debut of the following features.
  1. Added a usage manual for CMB Automiser. The manual can be accessed from Help->Help. The usage manual also includes an introduction to public works quantity accounting using computerised measurement books for the uninitiated.
  2. New installer for windows. Now installing the CMB Automiser is easier than ever. 
  3. Full backwards compatibility with project files created with CMB Automiser Ver 2.1.0. 

 Binary Packages 

Fedora 21 :  CMBAutomiser-2.1.3-1.noarch.rpm 
Windows:  cmbautomiser-win32-ver-2-1-3.exe
Usage Manual:  cmb automiser manual.pdf

Friday, 15 May 2015

My forrays into automation

After a  Long time off the blog-o-sphere, this humble being is back with a bang!!!
    With tremendous amount of free time at his disposal and being an automation freak Mr.Manu Varkey took leave the blog-o-sphere and facebook-o-sphere and set out on a spiritual quest to automate every tiny bit of his official routine.
    It all began with this thought "I spend a lot of time on this task. I should write a program automating it!"
 (Source: . Thanks Randall, for this excellent strip. )

    Today Mr.Manu Varkey is glad to announce the first public release of his crazy automation effort!!! - the CMB Automiser Ver-2.0. The archaic excel macros where the program had its humble beginings are also released for a historical perspective! And Yes; being an ardent free software enthusiast all codes are released under the GNU GPL-3.0 license.

 CMB Automiser

CMB Automiser is a CPWD billing application using computerised measurement books. CMB Automiser has been developed in hope of being useful and as time saver for CPWD staff and contractors working in CPWD. Workflow is divided into three interfaces - Schedule View, Measurement View and Bill View. Schedule view implements an interface to input the agreement schedule/import the schedule from an ods file. Measurement View allows to input/manipulate details of CMBs and includes a number of convinience measurement item patterns. The Bill View module allows billing of these measurement items and implements part rates, excess rates for deviated items, custom previous bill support etc. 
    Both CMBs and Bills can be rendered to pdf from the respective modules. In addition Bill View also exports final bill variables into an ods file for further processing.



From Source: 

CMB Automiser source can be downloaded from and can be installed using python install. It has been tested with Python 2.7 and TeX Live 2014, and has the following extra dependencies.
Python Modules:
undo - included along with application.
ezodf - included along with application.
libxml - Not included
dill - Not included
Latex Modules:
xr-hyper, hyperref, longtable, tabu, lastpage, geometry, hyphenat,
xstring, forloop, fancyhdr

Binary Packages

Fedora 21 :  CMBAutomiser-2.0.0-1.noarch.rpm


 Excel Macros

CMB automiser (Excel) 

The grand ancestor of CMB Automiser. This app based on excel macro infrastructure is no longer maintained and should be considered abandoned for lack of portability and stability in favour of Gtk, Python and Latex powered CMB Automiser.

Excel Estimate Pro

First foray into excel based macro programming. Uses standard schedule of rates and analysis to generate estimates and justification statements. Being excel based, it is inherently not portable and less stable. A sequel to this app is planned as a full blown app or as a module of CMB Automiser if time permits.

Drawing Estimater

Uses export data from Autocad drawings coupled with specially designed block library and layers to create automated electrical estimation from AutoCad drawings. The program while fine for personal use is cumbersome for a third party to use. While the concept being exotic further development is hampered by proprietary nature of the CAD ecosystem.


CMB automiser (Excel):  cmb template - ver 1_4_8.xlsm
Excel Estimate Pro:  SCHEDULE VER 5.xlsm, DAR 13 2014 NOV REV1.xls
Drawing Estimator:  DRAWING