Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

Tuesday, September 11, 2012

Programs are Poems


Programs and poems are two very much similar things. I would say that in a programming language, a well written program is as noble as a poem.
Compiling a poem requires knowledge of grammar underlying a language. This is so even when it comes to programming except that the word grammar is referred to as the syntax of a programming language.
A program is often inspired by details which a common individual seeks. While a poem is the expression of what an individual sees.
Programming is recognized by the format in which it is written. It is a norm for most programming languages to have clear demarcations to indicate purpose such as the use of ‘:’ and “;’ in c, c++,m Java, ...

Today we have innumerable editors what color specific words such as the key words in a specific color so as to give the programmer a better feel of the programming experience.

The loss of a punctuation mark can give a completely un-in-intended meaning in a program as well as a poem.
Yes the advent of internet has had its own impact in both these fields. It has enabled people who are new to a language to do come up with amazing creations. While websites like ‘stackoverflow’ provide snippets required to execute the intention of a programmer, it is known that a good duration of experience can move a real difference between a a well written program, good performing, sensitive program and total chaos.
Wrong choice of words while writing a poem/program can make all the difference in perception. As length of poem/program increases, a user takes longer to comprehend the implications. Since people cant really rely on programming languages to talk to one another, often the programs contain comments. Comments are essential to clarify the intentions with which the coding was done and thus serve to help optimize itself. Certain parts of the program can be progressively replaced by computationally efficient and syntactically convenient alibi. Like programmers have a choice of logic, poets too have a choice of conveyance.

Just as a person can be trained to program, so can be done in terms of poems. How ever not everyone turns up a work of art.

It takes attitude, innovation and passion to excel at programming. The right choice of code for a particular purpose can drastically reduce the effort in completing a project. And also reduce the effort later spent in debugging it (^_~). Good programs get appreciations and awards once in a blue moon, because Programming has been looked at in a totally different perspective as of today.
We see that great works like Shakespear’s getting a lot of recognition, however the same attitude is not seen towards programming giants. A well written program has the effect of mesmerizing an onlooker like the “list comprehension” in python.
Yes most of us aspire to write great programs but because of lack of right guidance at the right time, we see cases, where an attempt to write a brilliant poetry ends up in as a messy paragraph not standing out as a status of a poem.
In most languages, a good rhyming sentence is considered an appreciable poem. In programming, a well indented code is similarly said to be appreciable written program. The change in scenario is quite noticeable because, poems are meant to be read out loud, while that’s not the case of a programming language. A fresh mind and adequate concentration is required to write a poem/program.
One might argue that poems generally tend to carry a deep sense of emotions, this is not something we seen in a program and this difference comes from the fact that programming languages cannot be used between people to abuse each other or show love one has for another in strict linguistic sense. At best one can write a program for emotion recognition and write appropriate functions to handle the circumstance.
Programs are written for a machine to understand what humans tend to convey. Even thought the program tends to convey the requirements, there are glitches and performance penalties when time of execution is not considered in many cases. Such too is the case when it comes to poetry. A person reciting a poem is generally expected to recite it in a more or less agreeable tone to have the full impact of the poem under recital.
Programs have evolved only recently in the history of our species. Yet we have developed different styles and types of languages, in which we express and convey the desired results, from the rate at which computer programs are evolving, it can be said that the programs are here to stay and inspire generations of programmers yet to come.


Sunday, January 8, 2012

My work experience at E Surveying Solutions


My work experience at E Surveying Solutions
I have worked in E Surveying Solutions in almost all of my Engineering vacations. It is a company my Uncle (Mother’s youngest brother), Mr. Kotaa Krishna Kamath (aka KKK) started after his previous work at Relyon Softech as Director, Founder and developer. I have done some small assignments at Relyon Softech such as setting up Interview Question Paper, Correcting Interview Answer sheets, reporting bugs in Saral Paypack and merging PDF documents of state-wise school surveys using PDFmerge. Though these assignments are very simple to complete, I was in first PUC when I did it (first PU is similar to 11th standard). Also I had no knowledge of any of these products. It was however notable that nobody qualified the aptitude paper that I set and they decided to revert to the old paper set after testing my paper for one day.

In the starting days of the company, when i first approached him, I wished to know a little about the work and help him in whatever way that I could. He showed me what I was supposed to do and was happy with whatever part I did.

My uncle is a Mechanical Engineer, who started a company that makes Softwares for Civil Drawing generation. The first thing one can notice about this is that, it’s a cross disciplinary company that is a combination of Mechanical, Computer Science and Civil Engineering, and I being an Electronics and Communication Engineer learnt a few basic works at the company.

My first assignment was to collect a list of Surveyors for his company to sell products to. The company makes Civil Software for Surveyors that will generate drawings in 2D and 3D for data collected from Ground Works, Drainage Channels, Road Elevation Data, Irrigation Canals, etc.

During the first assignment, I used to sit all day long making list of Surveyor’s all across the country. This work was important because, there is no list readily available online. It was my first experience with Microsoft Excel and though it began to feel monotonous, it left me with a good experience with the software. Also, when this work was first done, his office had just one computer so I had to go to a Browsing Centre to make the list. The next assignment was to make Crossword Puzzle that contained words to be organized into puzzle. As it turns out, It is so much easier to set a crossword puzzle than to solve them (^_^). I was also required to collect comics that contained survey jokes for a magazine Idea that he had in mind.

The next time when I went to ESS, I was given assignments which I could do at home, I was expected to find 30 bugs in his software, and after I did so, I had the rest of the day for myself, most often, I used to sit on an assignment about an hour before I had to go the office find the bugs and report the bugs to him. I approached him late during my next holidays, so that was the only assignment that I did. 

The bugs were reported as in standard testing format where Path to the window type of bug and a brief description of the nature of the bug were meant to be sent. The bugs were mostly of the Font type, tab-order reversal, alignment of various entities in a window, and the order in which the softwares gave the Run Time Error. 


Additionally the customers using this software were very fond of Key-board shortcuts so we began adding shortcut features to all the entities in the software. Later on we finalized with a common format for all shortcut display. My part was only to check if all the keys and tabs had a unique shortcut.

However, in my next holidays when i approached him, he showed me how I could test his softwares thoroughly. I learnt a little of Black Box testing. His product E Survey Sections was becoming a very good success in Survey industry. He was still running the company all by himself. He took me to 2 places where he did his marketing. It was fun to see how varied his customers and their offices were. Additionally it was discovered that different resolutions, themes and other default settings also affected the working of the software, and new test cases were added as an when new challenges were encountered in testing.

The company makes softwares which can be run independently on their own, but when the software is combined with the output of Excel and CAD, and the kind of people who have working knowledge in them have limitless uses for his softwares because While drawings can be accurately drawn in CAD, the data tabulation and analysis features given by Excel, run hand in hand and make the biggest of difficulties look simple and help in automation of work.

The next holidays when I got there, I did a thorough black box testing of his various softwares, now there were different softwares to deal with specific requirements from customers. E Survey CAD, E Survey Lisps, E Quick Sections, E Topodraw were some of them. It was about time that the testing procedures were standardized and we began noting down some instances of test cases that needed to be done on each product from there on. It was at the end of this holidays that new employees like Praveen, Shashank, Hamsa had joined the Company. Just before I left for the next semester college, my last assignment was to teach them how to test softwares and I kind of gave them an overview of all the products. Another assignment which I remember doing at that time was a report on GPS and various historical advancements that could make a good use of the GPS facility. 

This was particularly needed because survey was looking for various benefits from GPS and the Total Station Land Navigation Equipment which was needed for the survey was often with errors. The softwares developed from company could generate the required drawings directly from the Total Station Data.

The next holidays when I got there, I was required to learn basics of CAD. So we started going to Kruthi Centre for learning CAD as part of the training. I had basic knowledge of AutoCAD until then, but I learnt so much more at Kruthi about 2D, 3D drafting and the newly introduced features of AutoCAD such as export of tables to Excel directly from AutoCAD. I even got to learn AutoDesk Inventor software. The best part however was that the Training was fun, interesting, the company paid for it and I had to work only half a day during training. It was also the time when I learnt how to make video tutorials using SnagIT software, so I made videos of AutoCAD of the training that we had been to, so that employees could learn from the videos instead. In most cases, the person using the softwares was required to use Notepad ++, Excel, AutoCAD so in short, I have learnt a lot of these softwares. The company had made an irrigation project called Ayacut and had released a special software by the name Ayacut to deal with various parameters in designing Irrigation channels.

In the next holidays my uncle began with teaching me Visual Basics, it is a fun to learn programming language, however, seems like I neglected it a bit while I had the chance and went back to testing the softwares after the first assignment on VB. If you ask me, he is the only person who can teach VB in that fashion. Learning VB also helped me report bugs more accurately, because I now knew the different window components such as tabs, menu-bars, panes, textboxes, buttons, radio buttons, checkboxes, dropdown menus and many more. I wrote a code that did the same as Microsoft Calculator using VB. 


By this time, the customers of ESS had begun to ask for help files. And documentation of all the products began. At first the theory behind the working of various theorems. One particular assignment I had done under this was Simpson’s one third rule of integration. This was so because the next semester we had Simpson’s Rules in our syllabus. Documentation helped me learn a lot about text formatting and indentation along with table and picture manipulation under Microsoft Word.

The next holidays when I got there, I learnt that the company had now over 26 products in the market (which included E Survey CAD, E TopoDraw, E Contours, E Survey Lisp, Ayacut, E EarthWorks, Crispy Lisp, E Survey Section, Survey Aid )(I particularly had fun with E Contours, having learnt CAD I had a knowledge of how I could manipulate a drawing), each tailor-made for specific requirements. In this Holiday, however, I was required to make AutoCAD ribbons, Since Customization was part of the CAD training at Kruthi, I knew where to begin this assignment, however I only managed to make rough ribbon outlook that did nothing when buttons were pressed. I thought it needed some kind of ‘Lisp’ knowledge and began looking for solutions in Lisp, unfortunately this was not so, however, in my quest, i learnt about different versions of AutoCAD such as AutoCAD 14 and all succeeding versions of AutoCAD and learnt how each version varied from the next. One of the Assignments during these holidays was to analyze Bazier splines (Bazier Smooth Polylines) and to check out how they weighed against AutoCAD’s spline feature. Shashidhar had just joined the company and he was a programmer. I was required to explain to him how the spline Equation worked and he was required to program it. This was the first time I learnt Maths online (^_~). It is amazing how splines can approximate to real world curves. 

Additionally Delaunay’s Triangulation was a part of the next assignment and it was fun to study it. This triangulation was needed for AutoCAD to generate drawings quickly and efficiently by reducing the overhead in calculating the easiest way to draw in a drawing with several thousands of points. 

Lisp is a very easy to learn programming language, though lisp is mostly used for CAD purposes (because it was designed that way) today Lisp serves several applications. 

I also learnt additional CAD softwares such as GStarCAD, ZWCAD and BricsCAD. The Lisp Script needed to be tested in these softwares for consistency and it was essential that all these softwares responded for the various Lisps.

In my last and final holidays of engineering, when I first got there, I was required to find Google Earth API for finding the Z co-ordinate of a point at any point on earth, given the X, Y coordinates. I learnt a few special features that were present in Google Earth while on this assignment. It was something totally different from all my previous assignments and fun in its own way. After this assignment was done, I tested E SurveyLisps, E SurveyCAD and E TopoDraw where bugs regarding calculation errors and output representation needed reporting.

After this was done for the next 10 or so days, I got an opportunity to make ribbons again, only this time, the company had found a very good solution to making ribbons automatically and I was required to test consistency of spelling, shortcuts and representations of various fields in the ribbon. It was a good learning experience. After I completed this assignment, I was required to test the source-code of the softwares and make corrections wherever I felt appropriate.

This work was really amazing. I got to learn how complex a software code can become if not handled properly. Punctuation (in warnings and message box) and Comments can play a colossal role in writing a code. We at ESS were now planning on starting projects under Water supply and Water Management.

I was given an Excel sheet and find out how water distribution calculations were taking place at different points of the Excel sheet. I had to first document the findings and report it to the developers there. I learnt a lot on how complicated a City’s water design can be. There are several mathematical aspects that need to be taken care of while designing a Sewage system and rain water drain. After a satisfactory amount of study was done, we decided to organize a water supply design workshop on EPAnet. This workshop was organized at Hotel Parijatha GateWays and most of my uncle’s Customers enthusiastic in this software had come from different parts of India. It was fun to organize and learn the software firsthand from the people from EPAnet. It was fun learn, download tutorials, burn the contents and label the CDs for the workshop.

It was also the time we started looking for customers on an international level. Our products had been proved to be consistent in Dubai, Philipines and Africa. However the standards needed a makeover and work began on how to solve problems regarding different file formats such as CSV. Different countries follow different formats of data representation such as a choice between comma or space to separate numerals, to represent decimals as subscript, superscript, comma, semicolon etc. And we needed to make solutions to these entities based on requirements. Further, the company had undertaken good measures to help customers learn from help videos which can be found on their youtube channel. Then company has also begun to provide details of various CAD and Excel usage information to beginners in the field from their blog CivilCADSoft.com.


One of the most remarkable thing that happened during this tenure was however that I got called for a meeting on deciding what changes needed to be done to improve their YouTube videos. It was as if a meeting is no different than any other conversation, except that you need to be sure about whatever you have to put across.

Work Culture:
I have seen a lot of variation in work culture during my service to ESS. The office starts at 9:30 and you can go home when your work for the day is done. I don’t really know the closing time but I suppose it is 6:00 PM because that’s when everyone else usually left. Afternoon there is break of 1 hour for lunch. Evening everyone takes break for snacks at about 5:00 PM, however, not everyone leaves the office at the same time. The company provides support by Phone, TeamViewer and Skype. Some people go a bit late for the break because at least one person is required to provide support at any time. Interviews are conducted and candidates who pass the aptitude are called for a technical round based on performance. Employees are given a definite assignment which they are required so complete by a specified time. Mr. Indrajeet makes amazing drawings using different drawing tools for the company products and other company requirements. And I would like to thank Mr. Arshal for the countless number of chocolates that he used to distribute. 

P.S. The company has now been renamed to E Surveying Softech India (Pvt.) Ltd.


What did I learn from all this?
* I got to use my knowledge in properly formatting text documents which has helped me in several report submissions. 
* I learnt the importance of Punctuality and time-management.
* I got to apply a lot of what i already knew and learnt many new skills.
* I spent my holidays in a pleasant way.
* I got good exercise walking 2 Km everyday, something that I very much need now at Manipal.
Some quick links to the company's resources:
  1. Esurveying - www.esurveying.net
  2. ESurveyCAD - www.esurveycad.com
  3. Blog Survey Drawing - http://blog.surveydrawing.net
  4. Esurvey Earth - http://esurveyearth.com
  5. Esurvey Lisp - www.esurveylisps.com
  6. Quick help for all the products - help.esurveycad.com
Jobs Around The World